注册
备份文件有效性检验
专栏/培训园地/ 文章详情 /

备份文件有效性检验

DM_sms 2024/03/13 799 1 0
摘要

一、概述

在实践中,经常会遇到需要对数据库备份文件的有效性进行检查。一般建议搭建一测试环境,在测试环境上对正式环境的备份文件的还原恢复,并查看测试库数据的有效性。本文整理了测试环境搭建的注意事项,以及几种常见的备份还原场景,以供参考。

二、环境搭建

测试环境搭建须注意以下事项:

  1. 尽量保证测试环境与正式环境服务器的操作系统及 CPU 保持一致;
  2. 检查数据库磁盘空间,规划测试环境服务器的磁盘空间,尽量与源库一致;
  3. 测试环境新建用户和用户组;
    创建用户所在的组:groupadd dinstall -g 2001
    创建用户:useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
    修改用户密码:passwd dmdba
  4. 测试环境数据库安装,可通过以下两种方式:
    方式一:检查正式环境数据库版本,在测试环境安装同版本的数据库,安装步骤可参考:https://eco.dameng.com/document/dm/zh-cn/ops/installation-install.html
    方式二:拷贝正式环境的整个安装目录到测试环境,注意 IP 一定不要弄错,拷贝完成后在目标库查看是否有相应的文件夹。
    scp -rp dmdbms 192.168.100.18:/home/dmdba
  5. 查看源库的数据文件目录,在测试库建立相同的文件路径;
  6. 在测试库初始化实例,初始化参数参照源库的dminitxxxxxxxx.log文件,一定要保证目标库与源库的初始化参数一致;
  7. 修改测试库dm.ini参数,根据操作系统内存,修改dm.ini中的buffer和max_buffer的大小,同时设置 arch_ini 为 1;
  8. 注册服务,在../bin/service_template 目录下,有 DmService 服务,cp 到 bin 目录下,并修改文件中的 DM_HOME 路径和d m.ini 文件路径。
  9. 启动服务前,查看服务状态./DmService status,并执行./DmService start。
  10. 注册DMAP服务,DMAP可以在/etc/init.d中查找,或在源库中拷贝过来,同样需要修改 DM_HOME 参数路径。
  11. 启动服务前,查看服务状态./DmAPService status,没报错,再执行./DmAPService start。

三、拷贝备份和归档文件到测试库

要求:

  1. 备份文件要求全备与增量备份的时间具有连续性。例如要最新的增量备份(9月27日),就要拷贝“最新的增量备份”之前的最近一次全备(例如9月25号的全库备份),以及全备到27日中间的所有增量备份(9月26日和9月27日的增量备份)。
  2. 归档要求拷贝包括最新一次增量备份时间之后的所有归档文件。
##拷贝备份文件:
scp -rp /data/dmdbms/dbbak/DB_DAMENG_FULL_2021_09_25_23_30_17 192.168.100.18:/home/dmdba/bak
scp -rp /data/dmdbms/dbbak/DB_DAMENG_INCREMENT_2021_09_26_23_30_17 192.168.100.18:/home/dmdba/bak
scp -rp /data/dmdbms/dbbak/DB_DAMENG_INCREMENT_2021_09_27_23_30_17 192.168.100.18:/home/dmdba/bak

##拷贝归档文件:
scp -rp ARCHIVE_LOCAL1_2021092723*.log ARCHIVE_LOCAL1_20210928*.log 192.168.100.18:/home/dmdba/bak/arch_bak

四、目标库备份还原

4.1 全库备份还原

##关闭数据库服务后,在dmrman中,执行以下命令
./dmrman
##检验备份集是否正确
CHECK BACKUPSET '/home/dmdba/bak/DB_DAMENG_FULL_2021_09_25_23_30_17';
##还原
RESTORE DATABASE '/home/dmdba/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/bak/DB_DAMENG_FULL_2021_09_25_23_30_17';
##恢复
RECOVER DATABASE '/home/dmdba/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/bak/DB_DAMENG_FULL_2021_09_25_23_30_17';
##更新数据库魔数
RECOVER DATABASE '/home/dmdba/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

4.2 全库 + 增量备份还原

##关闭数据库服务后,在dmrman中,执行以下命令
./dmrman
##检验备份集是否正确
CHECK BACKUPSET '/home/dmdba/bak/DB_DAMENG_INCREMENT_2021_09_27_23_30_17';
##还原
RESTORE DATABASE '/home/dmdba/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/bak/DB_DAMENG_INCREMENT_2021_09_27_23_30_17 ';
##恢复
RECOVER DATABASE '/home/dmdba/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/bak/DB_DAMENG_INCREMENT_2021_09_27_23_30_17 ';
##更新数据库魔数
RECOVER DATABASE '/home/dmdba/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

4.3 全库 + 增量 + 归档还原到当前最新时刻

##关闭数据库服务后,在dmrman中,执行以下命令
./dmrman
##检验备份集是否正确
CHECK BACKUPSET '/home/dmdba/bak/DB_DAMENG_INCREMENT_2021_09_27_23_30_17';

##还原
RESTORE DATABASE '/home/dmdba/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/bak/DB_DAMENG_INCREMENT_2021_09_27_23_30_17 ';

##恢复
RECOVER DATABASE '/home/dmdba/data/DAMENG/dm.ini' WITH ARCHIVEDIR '/home/dmdba/bak/arch_bak';

##更新数据库魔数
RECOVER DATABASE '/home/dmdba/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

4.4 全库+增量+归档还原到指定时间点

##关闭数据库服务后,在dmrman中,执行以下命令
./dmrman
##检验备份集是否正确
CHECK BACKUPSET '/home/dmdba/bak/DB_DAMENG_INCREMENT_2021_09_27_23_30_17';

##还原
RESTORE DATABASE '/home/dmdba/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/bak/DB_DAMENG_INCREMENT_2021_09_27_23_30_17 ';

##恢复
RECOVER DATABASE '/home/dmdba/data/DAMENG/dm.ini' WITH ARCHIVEDIR '/home/dmdba/bak/arch_bak' UNTIL TIME '2021-09-28 12:30:00';

##更新数据库魔数
RECOVER DATABASE '/home/dmdba/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服