写在前面
1. 一定要关闭防火墙;
2. 注意文件权限;
3. 数据库服务要以mount方式注册和启动。
4. 配置完成后,一定要以同一用户启动进程和监视器,且注意启动和关闭顺序。
目录
一、安装数据库
二、集群搭建:
三、主备切换
四、主备库故障切换
要使用dmdba用户安装数据库。
服务器IP |
服务器作用 |
系统版本 |
10.9.13.20 |
主库 |
kylin10 |
10.9.13.21 |
备库 |
kylin10 |
10.9.13.22 |
监视器 |
kylin10 |
初始化实例:在两台机器上分别初始化实例,并启停一次,
配置读写分离集群:
1. 在主库上使用dmdba用户脱机备份,备份为db_full_bak01
su dmdba cd /home/dmdba/dm8/bin ./dmrman ctlstmt="backup database '/home/dmdba/dm8/data/DAMENG/dm.ini' full to db_full_bak01 backupset '/home/dmdba/dm8/data/DAMENG/db_full_bak01'" |
将备份文件发送到备库中:
su - dmdba scp -r /home/dmdba/dm8/data/DAMENG/db_full_bak01/192.168.96.129:/home/dmdba/dm8_1/data /DAMENG |
2. 在备库上进行备份还原更新
su dmdba 还原: ./dmrman ctlstmt="restore database '/home/dmdba/dm8_1/data/DAMENG/dm.ini' from backupset '/home/dmdba/dm8_1/data/DAMENG/db_full_bak01'" 恢复: ./dmrman ctlstmt="recover database '/home/dmdba/dm8_1/data/DAMENG/dm.ini' from backupset '/home/dmdba/dm8_1/data/DAMENG/db_full_bak01'" 更新: ./dmrman ctlstmt="recover database '/home/dmdba/dm8_1/data/DAMENG/dm.ini' update db_magic" |
3. 配置主库:dm.ini dmmal.ini dmarch.ini dmwatcher.ini
dm.ini修改如下参数:
INSTANCE_NAME=DMSERVER ARCH_INI=1 MAL_INI=1 ALTER_MODE_STATUS= 0 ENABLE_OFFLINE_TS = 2 |
配置主库dmmal.ini
配置主库dmarch.ini
配置主库dmwatcher.ini
4. 用dmdba用户将配置文件发送到备库
scp dmmal.ini dmarch.ini dmwatcher.ini @10.9.13.21:/home/dmdba/dm8_1/data/DAMENG |
并在备库检查三个文件是否属于dmdba:dinstall
若不属于,用以下语句修改权限:
chown -R dmdba:dinstall dmmal.ini |
5.配置主库OGUID
在数据库bin目录下执行./dmserver /home/dmdba/dm8/data/DAMENG/dm.ini mount
在另一个窗口执行,打开disql,修改oguid和数据库模式
sp_set_oguid(453331); alter database primary; |
再去开启实例的窗口执行exit,关闭实例
6. 配置备库:dm.ini dmarch.ini OGUID
备库文件的配置只需在传过来的文件中进行修改
同样在备库中修改dm.ini参数
INSTANCE_NAME=DMSERVER1 ##将实例名改为DMSERVER1便于进行区分 ARCH_INI=1 MAL_INI=1 ALTER_MODE_STATUS= 0 ENABLE_OFFLINE_TS = 2 |
修改dmmal.ini
修改dmarch.ini
配置dmwatcher.ini
7. 以mount方式启动备库
./dmserver /home/dmdba/dm8_1/data/DAMENG/dm.ini mount
打开disql
修改oguid
sp_set_oguid(453331); alter database standby; #修改数据库模式为备库 |
配置监视器
配置dmmonitor.ini文件
8. 使用root用户注册监视器服务,在/script/root目录下执行
./dm_service_installer.sh -t dmmonitor -monitor_ini /home/dmdba/dm8_test/data/DAMENG /dmmonitor.ini -p DMSERVER |
此时主备集群已经搭建完毕
接下来启动主备
启动顺序为:主库实例——备库实例——主库守护进程——备库守护进程——监视器服务
启动方式,均在bin目录下执行:
启动数据库实例:./dmserver /home/dmdba/dm8/data/DAMENG/dm.ini mount
启动守护进程:./dmwatcher /home/dmdba/dm8/data/DAMENG/dmwatcher.ini
启动监视器:./dmmonitor /home/dmdba/dm8_test/dmmonitor.ini
关闭顺序为:监视器服务——备库守护进程——主库守护进程——主库实例——备库实例
执行:exit 退出
执行show可查看集群运行状况
手动切换主备库:
在进行主备切换前,先检查一下数据库是否满足以下条件:
1. 主备状态正常
2. 确认监视器已启动
主备切换要用到非确认监视器
启动非确认监视器:./dmmonitor /home/dmdba/dm8_1/data/DAMENG/dmmonitor.ini
并登录监视器:
login
SYSDBA
SYSDBA
手动切换主备库:
此时主备库已经切换,可以在监视器中进行查看
由于上述操作
主库实例:DMSERVER1
备库实例:DMSERVER
1.备库故障:
(1)备库正常停守护:当数据库守护服务停止时,监视器监控不到备库信息
启动备库守护时:
备库守护进程状态切换如下:
(2)备库停服务:监视器监控到备库异常重启备库服务后监视器收到备库信息,备库重新加入到集群当中
(3)备库kill实例进程:监视器监控到备库异常,并很快将备库服务重新拉起继续提供服务。
(4)备库重启:当备库服务器重启,监视器会先收不到备库消息,当备库服务器重新启动后备库服务又重新加入到集群中,作为备库继续提供服务
2.主库故障
(1)主库正常停守护和服务:发生主备切换
(2)主库kill实例进程:监视器监控到主备异常,发生主备切换,主库的服务被守护拉起后,主库变为备库。
(3)主库重启:当重启主库数据库服务器时,监视器失去主库消息,开始主备切换,将备库切换为主库,服务器重启后,监视器收到消息,重新加入集群,并作为集群备库继续提供服务。
如果还有任何问题,欢迎到达梦云适配中心提问哦!
社区 | 达梦云适配中心 (dameng.com)