重建库要选定一个当前有效库或者一个历史备份。下面以单节点备库 B 数据损坏,重新配置数据为例,备库重建流程:
重新初始化数据库 dmdba用户
su - dmdba
./dminit path=/opt/dmdbms/data
[dmdba@db1 ~]$ cd /dm8/dmdbms/bin
[dmdba@db1 bin]$ ./dminit path=/dm8/dmdbms/data
( 如 果 不 想 重 新 初 始 化 数 据 库 , 一 定 要 删 除 d m w a t c h e r . c t l 以 及 b a k _ c t l 目 录 里 面 的 文 件 )
先关闭主的数据库,然后用dmrman进行主库备份
./dmrman
[dmdba@localhost bin]$ ./dmrman
backup database '/dm8/dmdbms/test1/dm.ini' backupset '/home/dmdba/bakfull'; |
backup database '/dm8/dmdbms/test1/dm.ini' backupset '/home/dmdba/bakfull';
注意,如果主库 dm.ini 中的 USE_AP 设置为 1,则需要先启动 dmap 服务。
将备份文件拷贝至 B 所在的机器上,执行脱机还原与恢复
[dmdba@localhost bin]$ scp -r /home/dmdba/bakfull/ 192.168.111.30:/home/dmdba/
[dmdba@localhost bin]$ scp -r /home/dmdba/bakfull/ 192.168.111.30:/home/dmdba/
备库:
./dmrman
|
配置 B 的 dm.ini、dmmal.ini、dmarch.ini 和 dmwatcher.ini 配置文件( 如 果 之 前 的 配 置 文 件 还 在 也 可 以 继 续 使 用 ) \color{#FF0000}{(如果之前的配置文件还在也可以继续使用)}(如果之前的配置文件还在也可以继续使用)
以 Mount 方式启动 B
cd /dm8/dmdbms/bin
./dmserver /dm8/dmdbms/test1/dm.ini mount
cd /dm8/dmdbms/bin
./dmserver /dm8/dmdbms/test1/dm.ini mount
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);
启动 B 的守护进程
./dmwatcher /opt/dmdbms/data/DAMENG/dmwatcher.ini
执行以上步骤后,恢复 B 的准备过程已经完成。接下来,数据守护系统会将 B 作为备库重加入数据守护系统,A 的守护进程会自动通知同步数据到 B,最终恢复主备库数据到一致状态。