达梦DCP学习(一、实时主备群集搭建及切换)
环境介绍:
使用VM15+银河麒麟V10操作系统+达梦8数据库
一、为小白的自己记录曾经的疑问
1、数据库名与实例名是有区别的,不能弄混
2、群集中两节点数据库名可以相同,但实例名必须不同
3、搭建过程中的出现的报错就是你错了,仔细看报错提示去排错吧
二、数据库环境配置
1、在群集搭建之前需要确认好相关配置参数,包括端口号等,注意其中PORT_NUM为数据库使用端口号,在数据库初始化时设定,其他端口号可自行指定,无特定要求,oguid为群集标识编号,可随意指定同群集必须一致。
角色 |
数据库名 |
实例名 |
PORT_NUM |
MAL_INST_DW_PORT |
MAL_HOST |
MAL_PORT |
MAL_DW_PORT |
oguid |
主节点 |
DAMENG |
DMSERVER |
5236 |
45101 |
192.168.186.150 |
55101 |
65101 |
12306 |
备节点 |
DAMENG |
DMSERVER1 |
5236 |
45121 |
192.168.186.149 |
55121 |
65121 |
12306 |
监控 |
DAMENG |
无 |
5236 |
|
192.168.186.151 |
|
|
12306 |
2、是否初始化数据库实例,主节点与备节点可初始化数据库,监控节点无需初始化数据库
三、群集搭建操作
1、主节点与备节点关闭数据库服务,主节点进行停机备份,将备份文件传到备节点,并在备节点进行三步还原,至此主备节点数据完全一致
cd /dm8/bin
./DmServiceDMSERVER stop #主备节点均停机
./dmrman
RMAN>backup database ‘/dm8/data/DAMENG/dm.ini’ full to backup_file1 backupset ‘/dm8/backup/backup_file1’; #注意备份的目录需要手动创建
可看到备份完成
缺图,待截图,待补充
使用scp将备份文件传输至备节点
cd /dm8/backup
scp *.* 192.168.186.149:/dm8/backup
缺图,待截图,待补充
然后在备节点中进行数据库恢复
cd /dm8/bin
./dmrman
RMAN>restore database ‘/dm8/data/DAMENG/dm.ini’ from backupset ‘/dm8/backup’;
RMAN>recover database ‘/dm8/data/DAMENG/dm.ini’ from backupset ‘/dm8/backup’;
RMAN>recover databsee ‘/dm8/data/DAMENG/dm.ini’ update db_magic;
缺图,待截图,待补充
至此完成备库数据库恢复,主备节点数据库数据完全一致
2、主节点修改dm.ini、dmarch.ini、dmmal.ini、dmwatcher.ini,注意除dm.ini文件原始即存在外,其余文件均不存在需手动创建,因此尤其注意文件名不能写错(之前写错了dmwather.ini,结果报错)
dm.ini注意调整配置内容如下
INSTANCE_NAME = DMSERVER #主节点实例名
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
dmarch.ini新增内容如下
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER1 #在主节点配置中写备节点的实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
dmmal.ini新增内容如下
MAL_CHECK_INTERVAL = 60
MAL_CONN_FAIL_INTERVAL = 60
[MAL_INST1]
MAL_INST_NAME = DMSERVER #主节点的实例名
MAL_HOST = 192.168.185.150
MAL_PORT = 55101
MAL_INST_HOST = 192.168.185.150
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DMSERVER1 #备节点的实例名
MAL_HOST = 192.168.185.149
MAL_PORT = 55121
MAL_INST_HOST = 192.168.185.149
MAL_INST_PORT = 5236
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121
dmwatcher.ini新增内容如下
[GRP1] #群集名称
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 60
INST_OGUID = 12306
INST_INI = /dm8/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
相关文件如上配置完毕后,启动数据库
cd /dm8/bin
./dmserver /dm8/data/DAMENG/dm.ini mount
此时显示数据库状态为普通配置状态。
缺图,待截图,待补充
新开ssh窗口
cd /dm8/bin
./disql
依次执行如下语句,手动将主库配置为主
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); #配置允许手动调整数据库状态
SQL>sp_set_oguid(12306);
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
配置完毕后重新登录数据库,此时数据库状态显示为主库配置状态
缺图,待截图,待补充
3、备节点修改dm.ini、dmarch.ini、dmmal.ini、dmwatcher.ini,同样文件名不能弄错
dm.ini注意调整配置内容如下
INSTANCE_NAME = DMSERVER1 #备节点实例名
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
dmarch.ini注意新增内容如下
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER #备节点该处写主节点实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
dmmal.ini注意新增内容如下
MAL_CHECK_INTERVAL = 60
MAL_CONN_FAIL_INTERVAL = 60
[MAL_INST1]
MAL_INST_NAME = DMSERVER #主节点的实例名
MAL_HOST = 192.168.185.150
MAL_PORT = 55101
MAL_INST_HOST = 192.168.185.150
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DMSERVER1 #备节点的实例名
MAL_HOST = 192.168.185.149
MAL_PORT = 55121
MAL_INST_HOST = 192.168.185.149
MAL_INST_PORT = 5236
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121
dmwatcher.ini注意新增内容如下
[GRP1] #群集名称
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 60
INST_OGUID = 12306
INST_INI = /dm8/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_APPLY_THRESHOLD = 0
同样相关文件如上配置完毕后,启动数据库
cd /dm8/bin
./dmserver /dm8/data/DAMENG/dm.ini mount
此时显示数据库状态为普通配置状态。
缺图,待截图,待补充
新开ssh窗口
cd /dm8/bin
./disql
依次执行如下语句,手动将主库配置为主
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); #配置允许手动调整数据库状态
SQL>sp_set_oguid(12306);
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
配置完毕后重新登录数据库,此时数据库状态显示为备库配置状态
缺图,待截图,待补充
4、监控节点配置dmmonitor.ini
cd /dm8/bin
vi dmmonitor.ini
dmmonitor.ini注意新增内容如下
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/data/log #注意由于监控节点未初始化数据库,因此该路径可能不存在需要-p手动创建
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 12306
MON_DW_IP = 192.168.1.30:65101
MON_DW_IP = 192.168.1.20:65121
配置完毕后启动监控
cd /dm8/bin
./dmmonitor /dm8/bin/dmmonitor.ini
在此可看到对应群集状态
缺图,待截图,待补充
保持该窗口不关闭
show #查看群集当前状态
缺图,待截图,待补充
switchover #进行群集主备切换,由主切备
缺图,待截图,待补充
5、配置注册相关服务以便开机自启
时间原因,未进行测试配置,缺失,待补充
./dm_service_installer.sh -t dmserver -p DMSERVER -m mount -dm_ini /dm8/data/DAMENG/dm.ini
./dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /dm8/data/DAMENG/dmwatcher.ini
./dm_service_installer.sh -t dmmonitor -p DMMONITOR -monitor_ini /dm8/data/DAMENG/dmmonitor.ini
四、实时主备群集关闭及启动顺序
目前从培训老师处得知对应群集关闭顺序为:
1、关闭监视器
2、关闭主库守护进程
3、关闭备库守护进程
4、关闭主库实例
5、关闭备库实例
但实际未进行测试,同样,开机顺序同样未进行测试
时间原因,未进行测试配置,缺失,待补充
实际上述内容或有错漏,后续会另行补充编辑修正
发布记录:
第一次初始发布,2023年7月3日10点