达梦8数据守护安装与配置
1.基础环境
三台主机都安装了数据库软件。
用途 | 操作系统 | 主机名 | ip地址 | 数据库名 | 实例名 | PORT_NUM | MAL_INST_DW_PORT | MAL_PORT | MAL_DW_PORT |
---|---|---|---|---|---|---|---|---|---|
主节点 | kylin10 | kylin10 | 192.168.15.11 | DMMENG | DMSERVER01 | 5236 | 45101 | 55101 | 65101 |
备节点 | kylin10 | kylin10_2 | 192.168.15.11 | DMMENG | DMSERVER02 | 5236 | 45102 | 55102 | 65102 |
监视主机 | kylin10 | kylin10_3 | 192.168.15.11 | DMMENG |
2.数据备份与还原
1.备份主节点数据库实例并将备份文件拷贝到备节点:
先停止主节点数据库,再执行数据库备份。不然会报 [-137]:服务器正在运行或者存在其他进程正在操作同一个库 的错误。
[dmdba@lylin bin]$ ./DmServiceDMSERVER stop
[dmdba@lylin bin]./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/BACKUP_FILE_01'"
[dmdba@lylin bin]$ scp -r /dm8/backup 192.168.15.12:/dm8
2.在备节点执行数据库恢复
先停止备节点数据库,再执行恢复
[dmdba@lylin bin]$ ./DmServiceDMSERVER stop
./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
3.修改数据库各种文件
修改前记得先备份文件
修改dm.ini参数文件
主库:
INSTANCE_NAME = DMSERVER01 ##增加01
PORT_NUM = 5236 ###默认
DW_INACTIVE_INTERVAL = 60 ###默认
ALTER_MODE_STATUS = 0 ###默认0改1
ENABLE_OFFLINE_TS = 2 ###默认1改2
MAL_INI = 1 ###默认0改1
ARCH_INI = 1 ###默认0改1
RLOG_SEND_APPLY_MON = 64 ##默认
备库:
将dm.ini文件拷贝至备节点并及那个INSTANCE_NAME修改为DMSERVER02
scp -r /dm8/data/DAMENG/dm.ini 192.168.15.12:/dm8/data/DAMENG/
INSTANCE_NAME = DMSERVER02
配置dmmal.ini参数文件(主备一致)
主节点创建dmmal.ini文件,并新增下面参数。
MAL_CHECK_INTERVAL = 60
MAL_CONN_FAIL_INTERVAL = 60
[MAL_INST1]
MAL_INST_NAME = DMSERVER01
MAL_HOST = 192.168.15.11
MAL_PORT = 55101
MAL_INST_HOST = 192.168.15.11
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 192.168.15.12
MAL_PORT = 55102
MAL_INST_HOST = 192.168.15.12
MAL_INST_PORT = 5236
MAL_DW_PORT = 65102
MAL_INST_DW_PORT = 45102
将 dmmal.ini拷贝至备节点:
scp -r dmmal.ini 192.168.15.12:/dm8/data/DAMENG
一般按照实际情况只需要主要修改下面参数就行了,其他端口保持默认即可。
[MAL_INST1]
MAL_INST_NAME = DMSERVER01
MAL_HOST = 192.168.15.11
MAL_INST_HOST = 192.168.15.11
MAL_INST_PORT = 5236
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 192.168.15.12
MAL_INST_HOST = 192.168.15.12
MAL_INST_PORT = 5236
配置dmarch.ini
ARCH_DEST参数指向对端实例名,其他参数保持默认即可:
主库:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
备库:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
配置dmwatcher.ini文件(主备一致)
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 60
INST_OGUID = 453331
INST_INI = /dm8/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_APPLY_THRESHOLD = 0
4.启动主备库至mount状态,并修改主备库模式
主库
启动主库至mount模式
[dmdba@lylin bin]$ ./dmserver /dm8/data/DAMENG/dm.ini mount
将主节点模式改为主库:
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453331);
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
备库
[dmdba@lylin bin]$ ./dmserver /dm8/data/DAMENG/dm.ini mount
将备节点模式改为备库:
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453331);
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
5.启动主备库守护进程
启动守护进程数据库会自动从mount拉起到open状态。
主备都执行
./dmwatcher /dm8/data/DAMENG/dmwatcher.ini
6.验证主备同步
主机:
create table test.dwtest(a int,b nvarchar(20));
备机:
select * from test.dwtest;
主机:
insert into test.dwtest values(1,'sdfs');
commit;
备机:
select * from test.dwtest;
7.配置监视主机
vim /dm8/dmmonitor.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/data/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.15.11:65101
MON_DW_IP = 192.168.15.12:65102
[dmdba@lylin10_3 bin]$ vim /dm8/dmmonitor.ini
[dmdba@lylin10_3 bin]$ ./dmmonitor /dm8/dmmonitor.ini
help 帮助
show 显示各种状态信息
login 登录监视器
switchover 进行主备切换
8.注册数据库服务
生产环境一般会将数据库实例、数据守护进程和监视器注册为服务
数据库实例一般在创建的时候就已经注册服务,而且因为配置集群直接用服务方式启动也只会启动到mount状态,所以这里不用重复做了。
./dm_service_installer.sh -t dmserver -p DMSERVER -m mount -dm_ini /dm8/data/DAMENG/dm.ini
注册数据守护服务并开启自启动
./dm_service_installer.sh -t dmwatcher -p DMDW -watcher_ini /dm8/data/DAMENG/dmwatcher.ini
systemctl start DmWatcherServiceDMDW
systemctl enable DmWatcherServiceDMDW
注册监视服务并开启自启动
./dm_service_installer.sh -t dmmonitor -p DMMONITOR -monitor_ini /dm8/data/DAMENG/dmmonitor.ini
systemctl start DmMonitorServiceDMMONITOR.service
systemctl enable DmMonitorServiceDMMONITOR.service
8.常用维护
关闭数据守护:
实时主备集群关闭有顺序要求:
1、关闭监视器
2、关闭备库守护进程
3、关闭主库守护进程
4、关闭主库实例
5、关闭备库实例
9.报错汇总
9.1启动守护进程后主备数据库始终处于mount状态,到不了open状态。
报错日志:
2023-12-15 23:51:05.105 [ERROR] dmwatcher P0000003843 T0000000000000003848 Can’t connect to DM server on ‘192.168.15.12’ port(65102) errno(113)
检查备机端口
[dmdba@lylin10_2 bin]$ lsof -i:65102
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dmwatcher 3534 dmdba 6u IPv6 50243 0t0 TCP *:65102 (LISTEN)
主机telnet备机端口不通
检查备机防火墙备机防火墙是关闭的。
感觉是虚拟机问题,中午笔记本无线网卡用不了强制重启过。恢复快照最后正常了。
9.2其他错误
如果参数文件配置错误,启动数据库和数据守护的时候会提示你在那行出现错误。仔细检查一下修改后一般能正常启动。
目前配置数据守护暂未发现其他报错。