注:手册中的所有IP地址、路径和配置参数,均为参考示例。实际操作请以真实生产环境执行为准。
前期检查
准备数据库备份恢复的配置前提和必要信息
- 确认达梦数据库的配置文件dmarch.ini已经创建并配置
示例内容如下:
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/dmdbms/DAMENG/arch/ #本地归档存放路径
ARCH_FILE_SIZE = 1024 #单个归档大小,单位MB
ARCH_SPACE_LIMIT = 51200 #归档上限,单位MB
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_02 #实时归档目标实例名
- 确认dm.ini中的日志归档开关打开
示例内容如下:
ARCH_INI = 1 #打开归档配置
- 如果是第一次配置需要重启数据库实例服务器,之前已经配置日志归档的跳过此步
重启命令示例内容如下:
cd /home/dmdba/dmdbms/bin
./DmServiceDMSERVER restart
- 在集群中的主库在被恢复之前,确认组OGUID
grep OGUID dmwatcher.ini
grep OGUID dmmonitor.ini
cd /home/dmdba/dmdbms/bin
./disql sysdba/SYSDBA
SQL>SELECT OGUID FROM V$INSTANCE;
SQL>SELECT DB_MAGIC FROM V$RLOG;
- 确认DMAP服务已启动
示例内容如下:
ps -ef |grep dmap
注意:以下示例中执行命令的路径以实际执行环境为准。
一、联机备份(建议备份主库):
在disql中,执行联机备份。 示例内容如下: cd /home/dmdba/dmdbms/bin ./disql sysdba/SYSDBA 执行联机完全备份数据库 示例内容如下: BACKUP DATABASE FULL BACKUPSET '/app/bak/db_full_bak_01'; 输入exit命令,退出disql环境 |
二、拷贝主库备份镜像到备库服务器
scp -r /app/bak/db_full_bak_01 dmdba@192.168.0.2:/data/dmbak |
三、脱机恢复:
- 停止监视器,停止守护服务,停止数据库实例服务
cd /home/dmdba/dmdbms/bin ./DmMonitorServiceGRP1_01 stop
cd /home/dmdba/dmdbms/bin ./DmWatcherServiceWatcher stop
cd /home/dmdba/dmdbms/bin ./DmServiceGRP1 stop |
- 启动dmrman备份恢复工具
cd /home/dmdba/dmdbms/bin
./dmrman
- 执行脱机还原
- 在主库上执行:
RESTORE DATABASE '/app/data/DAMENG/dm.ini' FROM BACKUPSET 'db_full_bak_01';
RECOVER DATABASE '/app/data/DAMENG/dm.ini' FROM BACKUPSET 'db_full_bak_01';
RECOVER DATABASE '/app/data/DAMENG/dm.ini' update db_magic;
-
- 在备库上执行:
RESTORE DATABASE '/app/data/DAMENG/dm.ini' FROM BACKUPSET 'db_full_bak_01';
RECOVER DATABASE '/app/data/DAMENG/dm.ini' FROM BACKUPSET 'db_full_bak_01';
RECOVER DATABASE '/app/data/DAMENG/dm.ini' update db_magic;
- 启动服务,配置OGUID 值、主库Primary 模式和备库standby模式
主库启动服务并配置执行操作,注:OGUID根据恢复之前查询的值进行配置
示例如下:
cd /home/dmdba/dmdbms/bin
./DmServiceGRP1 start
./disql sysdba/SYSDBA
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(443331);
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
备库启动服务并配置执行操作,注:OGUID根据恢复之前查询的值进行配置
示例如下:
cd /home/dmdba/dmdbms/bin
./DmServiceGRP1 start
./disql sysdba/SYSDBA
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(443331);
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
- 启动守护进程,在主库和备库上分别执行
cd /home/dmdba/dmdbms/bin
./DmWatcherServiceWatcher start
- 启动监视器
cd /home/dmdba/dmdbms/bin
./DmMonitorServiceGRP1_01 start
注意:以上示例中执行命令的路径和参数值以实际执行环境为准。
2、脱机备份和恢复
- 脱机备份(建议备份主库)
cd /home/dmdba/dmdbms/bin ./DmMonitorServiceGRP1_01 stop
cd /home/dmdba/dmdbms/bin ./DmWatcherServiceWatcher stop
cd /home/dmdba/dmdbms/bin ./DmServiceGRP1 stop
cd /home/dmdba/dmdbms/bin ./dmrman BACKUP DATABASE '/app/data/DAMENG/dm.ini' FULL BACKUPSET '/app/bak/offline_bak'; |
二、拷贝备份镜像到备库服务器
scp -r /app/bak/db_full_bak_01 dmdba@192.168.0.2:/data/dmbak |
三、脱机恢复
- 停止监视器、守护服务和实例服务
因为脱机备份时,已经停止,此处确认已经停止集群即可。
如果备份镜像是从其他集群A内拷贝过来,要恢复到集群B,那么请先停止B集群。
步骤参考脱机备份步骤中的停止集群命令。
- 启动dmrman备份恢复工具
cd /home/dmdba/dmdbms/bin
./dmrman
- 执行脱机还原
- 在主库上执行:
RESTORE DATABASE '/app/data/DAMENG/dm.ini' FROM BACKUPSET 'offline_bak';
RECOVER DATABASE '/app/data/DAMENG/dm.ini' FROM BACKUPSET 'offline_bak';
RECOVER DATABASE '/app/data/DAMENG/dm.ini' update db_magic;
-
- 在备库上执行:
RESTORE DATABASE '/app/data/DAMENG/dm.ini' FROM BACKUPSET 'offline_bak';
RECOVER DATABASE '/app/data/DAMENG/dm.ini' FROM BACKUPSET 'offline_bak';
RECOVER DATABASE '/app/data/DAMENG/dm.ini' update db_magic;
- 启动服务,配置OGUID 值、主库Primary 模式和备库standby模式
主库启动服务并配置执行操作 注:OGUID根据恢复之前查询的值进行配置
示例如下:
cd /home/dmdba/dmdbms/bin
./DmServiceGRP1 start
./disql sysdba/SYSDBA
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(443331);
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
备库启动服务并配置执行操作,注:OGUID根据恢复之前查询的值进行配置
示例如下:
cd /home/dmdba/dmdbms/bin
./DmServiceGRP1 start
./disql sysdba/SYSDBA
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(443331);
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
- 启动守护进程,在主库和备库上分别执行
cd /home/dmdba/dmdbms/bin
./DmWatcherServiceWatcher start
- 启动监视器
cd /home/dmdba/dmdbms/bin
./DmMonitorServiceGRP1_01 start
注意:以上示例中执行命令的路径和参数值以实际执行环境为准。