暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DM8备份还原实验

DataBaseNotes 2022-09-13
478

DM8备份还原实验

一、 备份介绍

1.1、备份的意义

数据库备份是DBA日常最重要的工作内容。

备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据还原并恢复到可用状态。


1.2、DM8备份类型

DM8备份类型分为物理备份和逻辑备份。

物理备份是直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备份集中。物理备份过程中,不关心数据的具体内容是什么,也不关心数据也属于哪一张表。

逻辑备份是指利用dexp导出工具,将指定对象(库、模式、表)的数据导出到文件的备份方式。逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。

本文实验就是物理备份与还原实验。

以后有机会再专门讲解逻辑备份与还原(dexp/dimp)。


1.3、DM8物理备份

DM8可以执行物理备份操作的工具有很多,如disql、manager、dmrman、console都可以满足我们的备份还原需求,有时候我们也可能不单独使用某一种工具,而是多种工具配合使用,以达到最佳备份还原效果。本文的备份还原(物理备份)也是混合这几种工具使用。

DM8多个备份工具的差异和区别,请参考官方文档《DM8 backup and recovery》。

 

二、数据库归档模式

联机备份数据库的前提条件是数据库需要开启归档模式,同时我们也强烈建议生产库必须开启归档模式。

DM8有三种开启归档模式的方法:1.manager工具开启归档模式;2.命令行方式开启归档模式;3.手动修改ini配置文件方式。

下面我们实际操作一下这三种开启归档模式的方式。


2.1、manager工具开启归档

2.1.1 启动manager工具

登录到达梦数据库所在服务器后,切换到dmdba(达梦数据库的安装用户)账号,进入 $DM_HOME/tool目录,执行如下命令:

./manager

在弹出的用户界面中,输入DM8的数据库管理员登录信息(包括数据库服务器名称/地址、数据库服务的端口号、用户名、口令),连接到DM8数据库服务器。


2.1.2 查看归档模式

登录成功后,右键点击manager工具中左侧导航区的[localhost(server)]节点,选择[manage server(M)-管理服务器]选项。

在弹出的管理服务器界面中,点击[系统概览],可以看到右侧显示的归档模式默认值为否,如图2.1所示。

图2.1 默认归档模式

2.1.3 开启数据库配置模式

在管理服务器界面中,点击[系统管理],在右侧的[状态转换]中,依次勾选点击[配置],[转换],弹出提示对话框,点击[确定]按钮,此时数据库处于配置模式,不能进行读写操作。具体信息如图2.2所示。

图2.2 开启数据库配置模式

2.1.4设置归档配置

在管理服务器界面中,点击[归档配置],在右侧的归档模式中点击[归档],在[归档目标]总填写归档文件存放路径,在[文件类型]中选择LOCAL,在[文件大小]输入单个归档文件的最大大小,在[空间限制]处输入归档所在目录的最大使用量。如图2.3所示。

图2.3 归档配置参数设定

2.1.5 查看归档模式

在管理服务器界面中,再次点击[系统概览],可以看到归档模式的值已经变更成[是] ,如图2.4所示。

图2.4 再次检查数据库归档模式

2.1.6 打开数据库

在管理服务器界面中,点击[系统管理],在状态转换中,点击[打开],然后依次点击[转换]按钮,在弹出的提示对话框中点击[确定]按钮,这样操作后,DM8数据库就处于归档状态,并且可以提供读写服务,具体信息如图2.5所示。

图2.5 打开数据库读写模式

2.1.7 再次检查归档配置

再次点击管理服务器界面中的[归档配置],可以发现归档模式已经开启,并且处于灰色无法编辑状态,说明我们开启归档模式成功,如图2.6所示。

图2.6 查看数据库归档配置


2.2、使用命令行方式开启归档模式

通过命令行方式开启归档模式,需要先启动disql,并以DBA身份连接到数据库服务,然后执行如下命令即可:

--修改数据库为 MOUNT 状态(数据库不提供读写服务)
ALTER DATABASE MOUNT;

--配置本地归档,归档存放路径为/dmdata/arch,归档类型为local,单个归档文件大小最大限制为1024MB,归档可使用的最大空间大小为102400MB,归档合并刷盘缓存大小为16MB,HANG_FLAG 参数表示本地归档写入失败系统是否挂起,值1表示本地归档写入失败系统挂起。

ALTER DATABASE ADD ARCHIVELOG 'DEST = dmdata/arch, TYPE = local,FILE_SIZE = 1024,SPACE_LIMIT = 102400,ARCH_FLUSH_BUF_SIZE=16,HANG_FLAG=1';

--开启归档模式
ALTER DATABASE ARCHIVELOG;

--修改数据库为打开状态(数据库可以提供读写服务)
ALTER DATABASE OPEN;


2.3、手动编辑dmarch.ini文件配置归档

手动编辑dmarch.ini来配置归档模式的步骤如下:

(1)在达梦数据库DM8配置文件dm.ini所在的目录下新建dmarch.ini,并在其中输入如图2.7所示内容。

(2)编辑dm.ini文件,在其中设置参数 ARCH_INI=1
(3)重新启动数据库实例,此时数据库就已经运行在归档模式下。

图2.7 dm.ini和dmarch.ini参数设置

2.4、验证归档模式是否开启

用户以DBA身份连接到达梦数据库,并执行以下SQL语句:

select arch_mode from v$database;

如果返回结果为“Y” 就代表归档模式开启成功了。通过manager工具执行结果如图2.8所示。

图2.8 arch_mode查询结果


 

三、数据库备份

3.1 使用manager工具进行数据库备份

参考2.1.1 启动manager工具登录成功后,点击manager工具左侧导航区的[备份]节点,右键点击[库备份],选择[新建备份]选项。在弹出的新建库备份界面中,点击[常规],可以看到右侧[备份名]和[备份集目录]会自动生成(建议默认无需修改),在[备份描述]中填写db_full_bak ,在[备份类型]中选择完全备份,如图3.1所示。

图3.1 新建库备份之完全备份

在新建库备份界面,点击[高级选项],在右侧可以设置[备份压缩]、[压缩级别]、[备份日志] 、[加密类型]、[加密密码]、[加密算法]、以及备份的[速度限制](这个速度限制的功能很赞,可以防止备份导致I/O过大,拖垮DB业务性能)等等选项如图3.2所示。此处不做过多介绍,具体选项含义参考官网文档 《DM8 backup and recovery》

图3.2 新建库备份高级选项


3.2 使用disql命令行方式备份数据库

通过命令行方式完全备份,需要先启动disql,并以DBA身份连接到数据库服务,然后执行如下命令即可:

backup database full to "DB_amber_FULL_2022_08_22_11_32_53" backupset 'DB_amber_FULL_2022_08_22_11_32_53' device type disk backupinfo 'db_full_bak';


3.3 使用manager配置增量备份

参考2.1.1 启动manager工具登录成功后,点击manager工具左侧导航区的[备份]节点,选择[库备份]节点,右键选择[新建备份]选项。在弹出的新建库备份界面中,点击[常规],可以看到右侧[备份名]和[备份集目录]会自动生成(建议默认无需修改),在[备份描述]中填写db_incr_backup ,在[备份类型]中选择增量备份,然后点击[确定]按钮即可,如图3.3所示。

图3.3新建库备份之增量备份

3.4 使用disql配置增量备份

通过命令行方式增量备份,需要先启动disql,并以DBA身份连接到数据库服务,然后执行如下命令即可:

backup database increment with backupdir '/dmdata/backup' to "DB_amber_INCRE_2022_08_22_12_26_47" backupset 'DB_amber_INCRE_2022_08_22_12_26_47' backupinfo 'db_incr_backup';


3.5 使用manager配置归档日志备份

参考2.1.1 启动manager工具,登录成功后,点击manager工具左侧导航区的[备份]节点,选择[归档备份]选项,右键选择[新建归档备份]选项。在弹出的新建归档备份界面中,点击[常规],可以看到右侧[备份名]和[备份集目录]会自动生成(建议默认无需修改),在[备份描述]中填写arch_backup ,在[备份类型]中选择备份所有归档,然后点击[确定]即可,如图3.4所示。

图3.4 新建归档备份

3.6 使用disql命令行备份归档日志

通过命令行方式备份归档日志,需要先启动disql,并以DBA身份连接到数据库服务,然后执行如下命令即可:

backup archivelog all to "ARCH_2022_08_22_11_35_29" backupset 'ARCH_2022_08_22_11_35_29' backupinfo 'arch_backup';


3.7 manager查看备份文件

备份完成后,重新点击manager工具左侧导航区的[备份],依次点击[库备份]和[归档备份]选项,并刷新。可以看到刚刚执行的完全备份/增量备份和归档备份,如图3.5所示。

图3.5 库备份文件查看

四、数据库还原

4.1 关闭数据库

    还原数据库前,需要关闭运行中的数据库服务器。用户可以通过杀进程的方式关闭数据库,但是建议通过服务命令来停止数据库,关闭达梦数据库的命令如下:

DmServiceDMSERVER  stop

图4.1 关闭数据库

4.2 使用console工具还原数据库

4.2.1 打开console工具

dmdba(达梦数据库的安装用户)账号,进入 $DM_HOME/tool目录,执行如下命令:

./console

在弹出的用户界面中,点击[Backup And Restore]选项,然后可以看到右侧的备份信息。

点击右侧[Refresh Backups(R)]来展现库的备份文件及信息,如图4.2所示。

图4.2 备份文件信息

根据图4.2所展示的备份文件信息,选择某个备份文件,然后点击[Properties(I)]选项来展示更详细的信息。如图4.3、图4.4所示。

图4.3 备份文件元信息

图4.4基目录/备份文件目录信息

4.2.2 还原完整备份

根据图4.2所展示的备份文件信息,此时选择完整备份文件[DB_amber_FULL_2022_08_22_12_24_33],点击右侧的[Restore(O)]选项,进行还原完整备份作业,如图4.5所示,之后在弹出的界面中选择[OK]完成还原操作。。

图4.5 执行restore操作

等待还原完成后会再次弹窗提示[Restore success],如图4.6所示。

图4.6 Restore success


4.3 恢复数据库/归档

在[Backup And Restore]选项窗口,根据图4.2所展示的备份文件信息,选择相应的备份文件[DB_amber_FULL_2022_08_22_12_24_33],点击右侧的[Recover(H)]选项进行恢复作业,如图4.7所示,并在弹出的界面选择[OK]完成恢复作业。

图4.7执行recover操作


恢复完成后会再次弹窗提示[Recover success],如图4.8所示。

图4.8 Recover success

4.4. 更新db_magic

现在到了最关键一步,更新db_magic。若不执行更新db_magic的步骤,则启动时会报错误:Instance DMSERVICETEST startup failed,且无法直接启动数据库服务。

在[Backup And Restore]选项窗口,根据图4.2所展示的备份文件信息,选择相应的备份文件[DB_amber_FULL_2022_08_22_12_24_33],点击右侧的[Update Magic(I)]选项。进行update db_magic,如图4.9所示。在弹出的界面要输入正确的被还原的[INI path(S)]路径地址。否则还原会失败,指定好后再次点击[OK]按键。

图4.9 点选Update Magic(I)

更新完db_magic后会再次弹窗提示[Recover success],如图4.10所示。

图4.10 Recover success


 

五、启库验证

登录到达梦数据库所在服务器后,切换到dmdba(达梦数据库的安装用户)账号,进入 $DM_HOME/bin目录,启动数据库,执行如下命令:

nohup ./dmserver path=/dmdata/amber/dm.ini &

然后以DBA身份连接到达梦数据库,并执行以下SQL语句:

select status$ from instance;

如果返回结果为“OPEN” 就代表数据库可以正常访问,即可以提供业务服务。也说明我们还原实验成功,如图5.1所示。

图5.1 启库验证

 

六、dmrman备份还原

1、dmrman备份

登录到达梦数据库所在服务器后,切换到dmdba(达梦数据库的安装用户)账号,进入 $DM_HOME/bin目录,执行如下命令启动dmrman软件:

./dmrman

然后在[RMAN>]窗口执行如下完整备份命令:

backup database ‘/dmdata/amber/dm.ini’ full;

在[RMAN>]窗口也可以执行如下归档备份命令:

backup archive log database ‘/dmdata/amber/dm.ini’;

执行结果如图6.1所示。

图6.1 完整备份和归档备份

2、查看备份集

[RMAN>]窗口执行如下命令查看备份集的详细信息情况:

show backupset '/dmdata/backup/DB_amber_FULL_20220822_134550_703551';

执行结果,如图6.2、图6.3、图6.4所示。

图6.2 backupset的备份详细信息(一)

图6.3 backupset的备份详细信息(二)

图6.4 backupset的备份详细信息(三)

3、检验备份有效性

[RMAN>]窗口执行如下命令查看备份集的有效性:

CHECK BACKUPSET '/dmdata/backup/DB_amber_FULL_20220822_134550_703551';

执行结果,如图6.5所示。

图6.5 验证备份的有效性

4、dmrman还原

[RMAN>]窗口依次执行如下命令进行数据库的还原:

(1)还原完整备份

RESTORE DATABASE '/dmdata/amber/dm.ini' FROM BACKUPSET '/dmdata/backup/DB_amber_FULL_20220822_134550_703551';

(2)恢复完整备份

RECOVER DATABASE '/dmdata/amber/dm.ini' FROM BACKUPSET '/dmdata/backup/DB_amber_FULL_20220822_134550_703551';

(3)还原归档备份

RECOVER DATABASE '/dmdata/amber/dm.ini' WITH ARCHIVEDIR '/dmdata/backup/ARCH_LOG_20220822_134620_854319';

(4)更新db_magic

RECOVER DATABASE '/dmdata/amber/dm.ini'  UPDATE DB_MAGIC;


经过以上四步后,就完成了整个数据库的还原,如图6.6所示。

图6.6 dmrman还原流程


    至此,整个DM8备份还原实验结束。如有不足之处,敬请谅解和指正。

关于DM8的备份还原,具体详细步骤,请参考官网文档《DM8 backup and recovery》。

谢谢!


文章转载自DataBaseNotes,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论