DM8备份恢复实战

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DM8备份恢复实战相关的知识,希望对你有一定的参考价值。

概述
DM 数据库中的
数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式进行管理,数据页是最小的数据存储单元。任何一个对 DM 数据库的操作,归根结底都是对某个数据文件页的读写操作。因此,DM 备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。还原与恢复是备份的逆过程。还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定 LSN。恢复结束以后,数据库中可能存在处于未提交状态的活动事务,这些活动事务在恢复结束后的第一次数据库系统启动时,会由 DM 数据库自动进行滚。

基本概念

DM 数据库的表空间是一个逻辑概念,其目的主要是为了方便数据库的管理,数据库的所有对象在逻辑上都存放在某个表空间中,而物理上都存储在所属表空间的数据文件中。一个表空间由一个或多个数据文件组成。数据文件是数据库中最重要的文件类型,是真实数据存储的地方。DM 中数据文件的扩展名为.dbf,分为系统默认生成的数据文件和用户自己创建的数据文件两类。在创建 DM 数据库时,系统会自动创建 5 个表空间:SYSTEM 表空间、ROLL 表空间、MAIN 表空间、TEMP 表空间和 HMAIN 表空间。DM 自动为这几个自动创建的表空间分别生成默认的数据文件:SYSTEM.DBF、ROLL.DBF、MAIN.DBF 和 TEMP.DBF,HMAIN 表空间没有默认的数据文件。用户也可以创建自己的表空间,由用户创建的表空间统称为用户自定义表空间,在创建自定义表空间时需要为表空间指定数据文件。用户可通过为已存在的表空间增加数据文件或创建一个新的表空间来创建数据文件。因此,DM 中的表空间有以下几类:SYSTEM 表空间存放了 DM 数据库全局字典信息和全局系统数据,是 DM 数据库能够正常运行的必要前提,默认对应数据文件 SYSTEM.DBF。CREATE TABLE 等 DDL 操作会修改 SYSTEM 表空间数据。ROLL 表空间存放 DM 数据库运行过程中产生的所有回滚记录。DM 中几乎所有的数据库修改操作都会生成回滚记录,并保存在 ROLL 表空间的数据文件中。ROLL 表空间是数据库全局对象,不论修改哪一个表空间,生成的回滚记录都是写入 ROLL 表空间,该表空间由系统自动维护,默认数据文件为 ROLL.DBF。TEMP 表空间存放临时表数据以及数据库运行过程中产生的临时数据。在数据库运行过程中,SORT、HASH JOIN 等操作都可能会生成临时结果集,它们作为临时数据存放在 TEMP 表空间中。TEMP 表空间是数据库全局对象,由系统自动维护。若数据库重启,保存在 TEMP 表空间中的所有数据都会丢失。TEMP 表空间的默认数据文件为 TEMP.DBF。MAIN 表空间在创建用户时,如果没有指定默认表空间,系统自动指定 MAIN 表空间为用户默认的表空间。HMAIN 表空间 DM 的 HUGE 表空间,用来存放 HUGE 表数据文件。HMAIN 表空间和 HUGE 表相关知识可参考《DM8 系统管理员手册》用户自定义表空间:即用户通过创建表空间相关操作生成的表空间。


DM冷备 备份工具DMRAN

备份前准备:确保数据库是关闭状态,确保DMap服务时开启状态

技术图片

使用达梦冷备工具DMRMAN进行全库备份
技术图片
备份成功backup successfully!,会在指定目录生成指定名字的备份集
.bak为备份集名称,.meta为备份元数据信息
技术图片
假设数据库出现故障,故障的可能原因很多例如软硬件故障,意外断电导致的磁盘损坏或坏块等等最终的结果就是数据库无法使用,需要利用备份做恢复。
下面介绍通过DMRAN进行恢复

技术图片

restore database ‘/dm/data/DCA/dm.ini‘ from backupset ‘/dm/bak/20200709‘ 成功完成还原操作提示 restore successfully.这时尝试启动数据库
无法启动数据库,提示需要recover恢复和更新魔数
这里简单说一下几点:
1,DM8中数据库恢复需要还原restore 还原,recover 恢复,update db_magic更新魔数 三部分。
2,DM7中只有还原resore,recover恢复两部分。
技术图片

以上我们只完成了还原操作,接下来进行恢复和更新数据库魔数。
至此数据库恢复全部完成请注意上面提到恢复的完整步骤及不同版本恢复时的区别。
recover database ‘/dm/data/DCA/dm.ini‘ update db_magic;
技术图片

数据库可以正常打开

技术图片

总结:达梦冷备工具DMRMAN是达梦自带的工具无需安装,备份前需要,关闭数据库和确保Dmap服务启动,恢复需要注意不同版本的区别。


上面简单的介绍了达梦冷备和恢复的方式,前提需要关闭数据库,这样的要求在关键核心业务中是不可想象的,所以生产环境的备份热备方式比较常见,热备也叫联机在线备份,冷备也成脱机备份。

热备份基本要求:
1,数据库是打开的
cd /dm8/bin/
技术图片

2,Dmap服务是启动的
技术图片
3,配置归档

a) 数据库启动到配置模式
open状态
alter database mount;
技术图片
b)配置归档文件
技术图片

c) 开启归档
技术图片
d) 打开数据库

技术图片
也可以用DM 管理工具去配置 打开归档 此方法暂不介绍
技术图片

下面开始DM热备演示,本例只演示全库热备份表空间热备份以及表空间的还原操作其他对象的备份和恢复操作请参考DM8备份与还原手册里面有非常详细的介绍。
DM 共支持 9 个级别(1~9 级)的压缩处理,级别越高压缩比越高,但相应的压缩速度越慢、CPU 开销越大。支持并行备份,加密备份等。
备份数据库同时可以通过增加备份集描述信息来方便的区分备份集的类型
技术图片
技术图片

备份dmhr表空间
技术图片

为了确保备份集的可恢复性需要对备份集做校验,达梦提SF_BAKSET_CHECK 函数对备份集进行校验。
定义:
INT SF_BAKSET_CHECK(
device_type varchar,
bakset_pathvarchar(256)
)
参数说明:
device_type:设备类型,disk 或 tape。
bakset_path:待校验的备份集目录。
返回值:
1:备份集目录存在且合法;否则报错。

技术图片

查看备份集信息为了方便管理和使用备份:
注意如果备份路径指定的不是备份的默认路径,需要通过函数手动添加指定的备份目录,否则会出现无法搜索到备份集的问题。
技术图片

使用联机备份恢复表空间:
模拟DMHR表空间损坏,这里手工删除它的数据文件即可。
查看DMHR表空间的数据文件位置,
技术图片
删除DMHR表空间的数据文件

技术图片

使用DMHR表空间的热备份恢复DMHR表空间

技术图片

技术图片
使用DM管理工具启动数据库
技术图片
dmhr表空间已经恢复回来,
技术图片
DMHR 表空间状态Online 至此使用DMHR表空间联机备份恢复完成。
技术图片

以上是关于DM8备份恢复实战的主要内容,如果未能解决你的问题,请参考以下文章

DM8数据库增量备份和恢复

sqlserver 2008 备份恢复实战

MySQL备份和恢复实战

MySQL5.7增量备份恢复全实战

Oracle数据库备份恢复高级培训视频课程(案例实战深入全面)

mysql增量备份与恢复实战