关于DCP考点之一(集群搭建配置、实时主备、主备切换)
1、安装VMware Workstation Pro虚拟机,新增一台虚拟机选择CENTOS7,关于怎么安装虚拟机参考知乎https://zhuanlan.zhihu.com/p/1897326521334617069
2、在安装完成的第一台虚拟机上安装银河麒麟v10的操作系统,
3、安装完后操作系统后,在第一台操作系统上安装好达梦数据库,然后使用虚拟机克隆的功能,克隆复制出3台主机(这样子3台主机都已经安装好达梦数据库了,省去了要安装3次达梦数据库的工作),如果3台主机的达梦数据库版本不一致,有可能不能实现,我当时只有监视器使用的版本不一样,后面发现监视器看不到守护。
4、到这主机准备完成了,首选关闭三个服务器的防火墙,同时设置禁止防火墙开机启动。
sudo systemctl status firewalld # 检查 firewalld 状态
sudo systemctl status iptables # 检查 iptables 状态
sudo systemctl stop firewalld # 停止防火墙
sudo systemctl disable firewalld # 禁止开机启动
sudo systemctl status firewalld # 应显示 "inactive (dead)"
sudo firewall-cmd --state # 应返回 "not running"
sudo systemctl start firewalld # 重新启动
sudo systemctl enable firewalld # 设置开机启动
5、将三台机器上网,分配好ip,(192.168.65.131-主;192.168.65.130-备;192.168.65.132-监视器),实际情况按自己IP为准
6、开始准备配置文件:
dm.ini (达梦安装目录中修改部分内容,不需要新增,/home/dmdba/dmdbms/data/DAMENG/dm.ini 中的文件修改的参数),主机和备机都要修改使用
INSTANCE_NAME = DMSERVER01 #示例名称
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
dmmal.ini (达梦安装目录下新增 vim /home/dmdba/dmdbms/data/DAMENG/dmmal.ini),主机和备机都要修改使用
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.65.131 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST =192.168.65.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 5240 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 192.168.65.130
MAL_PORT = 61141
MAL_INST_HOST = 192.168.65.130
MAL_INST_PORT = 5236
MAL_DW_PORT = 5240
MAL_INST_DW_PORT = 33141
dmarch.ini(达梦安装目录下新增 vim /home/dmdba/dmdbms/data/DAMENG/dmarch.ini),主机和备机都要修改使用
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER01 #实时归档目标实例名,主机配置DMSERVER01,备机配置DMSERVER02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 500000 #单位 Mb,0 表示无限制,范围 1024~4294967294M
dmwatcher.ini(达梦安装目录下新增 vim /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini),主机和备机都要修改使用
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #手工切换 AUTO自动切换模式必须部署一个确认监视器
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 888888 #守护系统唯一 OGUID 值
INST_INI = /home/dmdba/dmdbms/data/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
dmmonitor.ini(达梦安装目录下新增 vim /home/dmdba/dmdbms/data/DAMENG/dmmonitor.ini),只需要在监视器服务器新增使用
MON_DW_CONFIRM = 0 #普通监视器
MON_LOG_PATH = /dm8/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 888888 #组GRP1的唯一OGUID值
#IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 192.168.65.131:5240
MON_DW_IP = 192.168.65.130:5240
7、主库:正常关闭主库开启使用dmrman进行主库备份,
disql
sql> conn SYSDBA/Dameng@123
sql> dmrman
RMAN> backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' backupset '/dm8/backup/FULLDB';
将备份的文件使用scp 发送到备库准备还原使用
scp -r FULLDB dmdba@192.168.65.130:/dm8/backup
上面的配置文件可以在主库配置好使用scp发送到备库
RMAN> restore database to '/home/dmdba/dmdbms/data/DAMENG' from backupset '/dm8/backup/FULLDB'
如果原来有文件,可以先删除或者加参数 overwrite
RMAN> restore database to '/home/dmdba/dmdbms/data/DAMENG' overwrite from backupset '/dm8/backup/FULLDB'
RMAN> recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' update db_magic;
至此主机和备机的数据库完全一致了。
8、主库前端启动到mount状态(达梦安装的bin目录下执行)
[dmdba@localhost bin]$ ./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount
登录主库disql:设置OGUID和主库状态
sql> SP_SET_OGUID(888888)
sql> alter database primary;
sql> select mode$,oguid from SYS.V$INSTANCE
9、备库前端启动到mount状态(达梦安装的bin目录下执行)
[dmdba@localhost bin]$ ./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount
登录备库disql:设置OGUID和主库状态
sql> SP_SET_OGUID(888888)# 一定要和主库一致
sql> alter database standby;
sql> select mode$,oguid from SYS.V$INSTANCE
10、主库开启守护(在安装的bin目录下执行)
[dmdba@localhost bin]$ ./dmwatcher /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
并输入命令进行验证,并查看SYS_STATUS是否处于open状态
show
11、备库开启守护(在安装的bin目录下执行)
[dmdba@localhost bin]$ ./dmwatcher /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
并输入命令进行验证,并查看SYS_STATUS是否处于open状态
show
12、正常情况下,主备库已经都自动启动、打开。如果不能正常同步,需要进一步检查。
13、配置监视器(参数文件前面已经准备,而且配置好放在指定目录下)
登录到监视器服务器,只需要安装达梦数据,可以不需要启动实例,在达梦安装目录bin下
[dmdba@localhost bin]$ ./dmmonitor /home/dmdba/dmdbms/data/DAMENG/dmmonitor.ini
开启监视可以看到主机和备机的状态,需要注意dmwatcher.ini和dmmonitor.ini中"GRP1"保持一致
监视器搭建完成。
14、注册服务 使用root用户在达梦安装目录下的script/root/ 下执行
主库注册守护服务
[root@localhost bin]$ ./dm_service_installer.sh -t dmwatcher -p DMW01 -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
主库启动服务
[root@localhost bin]$ systemctl start DmWatcherServiceDMW01
备库注册守护服务
[root@localhost bin]$ ./dm_service_installer.sh -t dmwatcher -p DMW01 -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
备库启动服务
systemctl start DmWatcherServiceDMW02
监视器注册监视服务
./dm_service_installer.sh -t dmmonitor -p DMMON -monitor_ini /home/dmdba/dmdbms/data/DAMENG/dmmonitor.ini
监视器启动服务
systemctl start DmMonitorServiceDMMON
15、在监视器服务器上查看可转的备用库
choose switchover
Can choose one of the following instances to do switchover:
1: DMSERVER02
使用切换 switchover
switchover
使用过程中有警告需要输入yes确认,和登录
switchover
此操作需谨慎, 将会导致主库发生切换, 是否继续使用GRP1.DMSERVER02执行SWITCHOVER操作(YES/NO/Y/N)?
yes
[monitor] 2025-08-03 14:35:59: 未登录监视器或服务器公钥发生变化,请重新登录!
login
用户名:SYSDBA
密码:
[monitor] 2025-08-03 14:36:36: 登录监视器成功!
switchover
此操作需谨慎, 将会导致主库发生切换, 是否继续使用GRP1.DMSERVER02执行SWITCHOVER操作(YES/NO/Y/N)?
yes
文章
阅读量
获赞