集群示例:
主 | 备 | 备 | |
---|---|---|---|
IP地址 | 192.168.1.10 | 192.168.1.11 | 192.168.1.12 |
服务名 | DmServiceDAMENG1 | DmServiceDAMENG2 | DmServiceDAMENG3 |
端口(默认) | 5236 | 5236 | 5236 |
安装目录 | /dm/dmdbms | /dm/dmdbms | /dm/dmdbms |
备份目录 | /dm/backup | /dm/backup | /dm/backup |
数据目录 | /dm/DAMENG | /dm/DAMENG | /dm/DAMENG |
监视器:
单节点 | |
---|---|
IP地址 | 192.168.1.13 |
服务器 | DmServiceMONITOR |
端口(默认) | 5236 |
安装目录 | /dm/dmdbms |
数据目录 | /dm/dameng_monitor |
一、备库脱离集群
1、进入主备机群监视器服务器192.168.1.13,通过非确认监视器将备库踢出集群
su - dmdba
cd /dm/dmdbms/bin
./dmmonitor /dm/dameng_monitor/monitor_noconfirm.ini
进入非确认监视器以后:
login
输入用户名和密码
detach database DAMENG3(将备库2踢出集群)
2、进入到备库2:192.168.1.12,停守护进程和数据库进程
su - dmdba
cd /dm/dmdbms/bin
./DmDmWatcherServiceDAMENG3 stop
./DmServiceDAMENG3 stop
这样以后备库2就可以作为单机数据库使用了,在使用一段时间以后,有新的资源了,用户要求仍然将备库2加回到集群中去,但是这个时候可能备库2已经和主库的有了很长时间的数据差,主库之前的归档已经没有了,那么就需要借助主备近期的备份来还原备库,再将备库拉起来。
二、备库回归集群
1、停192.168.1.12数据库
cd /dm/dmdbms/bin
./DmServiceDAMENG3 stop
2、将192.168.1.10的备份传送至192.168.1.12
cd /dm/backup
scp -r DB_DAMENG1_FULL_2023_09_06_23_00_55 192.168.1.12:/dm/backup
3、192.168.1.12还原备份数据
cd /dm/dmdbms/bin
#检查备份包
./dmrman
check backupset '/dm/backup/DB_DAMENG1_FULL_2023_09_06_23_00_55'./dmrman CTLSTMT="RESTORE DATABASE '/dm/DAMENG3/dm.ini' FROM BACKUPSET '/dm/backup/DB_DAMENG1_FULL_2023_09_06_23_00_55'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm/DAMENG3/dm.ini' FROM BACKUPSET '/dm/backup/DB_DAMENG1_FULL_2023_09_06_23_00_55'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm/DAMENG3/dm.ini' UPDATE DB_MAGIC"
4、启动192.168.1.12,修改状态、oguid
cd /dm/dmdbms/bin
./DmServiceDAMENG3 start
登录进数据库:
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45221); #根据实际oguid来修改
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
5、192.168.1.12启动dmwatcher
cd /dm/dmdbmd/bin
./DmDmWatcherServiceDAMENG3 start
6、检查非确认监视器中数据库状态是否为standby,是否为valid
检查192.168.1.12数据是否与192.168.1.10一致,可根据最新数据或数据量验证