重建库要选定一个当前有效库或者一个历史备份。下面以单节点备库 B 数据损坏,重新配置数据为例,备库重建流程:
1.重新初始化数据库
./dminit path=/opt/dmdbms/data
如果不想重新初始化数据库,一定要删除dmwatcher.ctl 以及 bak_ctl 目录里面的文件;
2.启动 DIsql 登录主库 A,执行联机备份
SQL> BACKUP DATABASE FULL BACKUPSET '/opt/dmdbms/BACKUP';
注意,如果主库 dm.ini 中的 USE_AP 设置为 1,则需要先启动 dmap 服务。
3.将备份文件拷贝至 B 所在的机器上,执行脱机还原与恢复
./dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/BACKUP'"
./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/BACKUP'"
./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
4.配置 B 的 dm.ini、dmmal.ini、dmarch.ini 和 dmwatcher.ini 配置文件(如果之前的配置文件还在也可以继续使用)
5.以 Mount 方式启动 B
./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
6.DIsql 登录 B,设置 OGUID,修改备库模式
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453332);
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
7.启动 B 的守护进程
./dmwatcher /opt/dmdbms/data/DAMENG/dmwatcher.ini
执行以上步骤后,恢复 B 的准备过程已经完成。接下来,数据守护系统会将 B 作为备库重加入数据守护系统,A 的守护进程会自动通知同步数据到 B,最终恢复主备库数据到一致状态。
8.如恢复原来B库的主库状态,可执行以下操作
执行普通监视器
cd /home/dmdba/dmdbms/bin
./dmmortor /data/dmdata/DAMENG/dmmortor_pt.ini
login #登录监视器,输入管理员用户名和密码
show #查看确认集群组名(登录不登录监视器均可查看监视器)
switchover GRP1.DM1 #登录监视器后,切换GRP1组的DM1节点为主库模式
文章
阅读量
获赞