注册
达梦数据库数据守护集群搭建实战问题
技术分享/ 文章详情 /

达梦数据库数据守护集群搭建实战问题

DM_116987 2022/11/09 2165 1 1

达梦数据库数据守护集群问题整理

主备机防火墙管理

  • 搭建达梦数据库数据守护集群时,一定要注意主机和备机的防火墙都应处于关闭状态。
  • 查看防火墙状态
systemctl status firewalld # 或 firewall-cmd --state
  • 关闭防火墙
systemctl stop firewalld.service
  • 开启防火墙
systemctl start firewalld.service

守护集群主库处于mount状态问题

完成搭建后,需要用dmwatcher将数据库由mount状态拉起到open状态,但是等操作完monitor后,回来再访问主机,发现又变为了配置状态。怀疑是dmwatcher有问题,于是在主机上重新启动了dmwatcher守护进程。

[dmdba@kylin ~]$ dmwatcher /dm8/data/DMOA/dmwatcher.ini DMWATCHER[4.0] V8 DMWATCHER[4.0] IS READY

再次查看主库的状态,发现主库仍然处于mount状态,
查看主库的dmwatcher日志

[dmdba@kylin log]$ tail -0f dm_dmwatcher_DMDW1_202110.log 2022-10-30 22:31:42.930 [INFO] dmwatcher P0000020612 T0000139923596203840 dw2_conn_mgr_thread create, connect ip:10.228.10.16, port:5236, from_flag:0 2022-10-30 22:32:48.981 [INFO] dmwatcher P0000020612 T0000139923596203840 DMWATCHER[4.0] group(GRP1) initialized succeed. GUID(7EF96A5E7EF96A5E26F9D02F7841ABD7) 2022-10-30 22:33:48.997 [INFO] dmwatcher P0000020612 T0000139923596203840 DMWATCHER[4.0] IS READY 2022-10-30 22:35:49.917 [INFO] dmwatcher P0000020612 T0000139923485456128 dw2_send_port_set to dmserver vio(3) set, mid(-1), to name:DMOA, ip:127.0.0.1 2022-10-30 22:35:49.990 [ERROR] dmwatcher P0000020612 T0000000000000020617 Can’t connect to DM server on10.228.10.16’ port(5236) errno(111)

从日志可以看到一条错误信息,发现主库访问不到备库的5236端口
测试端口的情况:从主库链接备库的5236端口:

[dmdba@kylin log]$ telnet 192.168.2.18 5236 Trying 192.168.2.18… telnet: connect to address 192.168.2.18: Connection refused

链接端口失败,检查备库上端口是否开启:

[dmdba@kylin DMOA]$ lsof -i:5236

备库上5536为开启,同样检查主库上的5536是否开启,开启的进程是哪个

[dmdba@kylin log]$ lsof -i:5536 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dmwatcher 21412 dmdba 4u IPv6 422116 0t0 TCP *:5236 (LISTEN)

上面结果表示,5235端口应该由dmwatcher进程开启,发现是由于备库的dmwatcher进程未启动,导致的主库无法切换成open状态。
在备库上启动dmwatcher进程

[dmdba@kylin ~]$ dmwatcher /dm8/data/DMOA/dmwatcher.ini

再次通过disql查询主库状态时发现正常!

主备机数据迁移

在进行主备集群搭建时,需要将主机的数据备份后,导出到备机,并进行数据库还原。如果备份失败,需要检查达梦数据库DmAPService是否开启。
注意要使用root账户,在达梦服务管理工具中,通过可视化界面查看AP服务状态。

--使用root账户 [dmdba@kylin ~]$ cd /dm8/tool [dmdba@kylin ~]$ ./dmservice.sh

达梦数据库数据守护集群参数配置

主机 192.168.1.30 primary
备机 192.168.1.20 standby
监视器 192.168.1.18 监视器

1. 规划好端口,关闭防火墙

数据库名 实例名 PORT_NUM MAL_INST_DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT DMDW GRP1_RT_01 5246 45101 192.168.1.30 55101 65101 DMDW GRP1_RT_03 5246 45121 192.168.1.20 55121 65121

2.在主机和备机上分别检查实例名称是不是一致的

su - dmdba cd/dm8/bin ./disql sysdba/Dameng123@localhost:5426 select * from v$instance; 查看实例名

3.关掉两个实例

--在bin中 ./DmServiceGRP1_RT_01 stop

4. 用dmrman备份一下主机数据

mkdir /dm8/backup 在bin中 ./dmrman RMAN>BACKUP DATABASE '/dm8/data/DMDW/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/BACKUP_FILE_01'

successful后,可以在/dm8/backup 中查看备份文件

5. 将备份文件cp到备机上
现在20(备机)上 mkdir /dm8/backup/01
再回到30(主机)在backup/01目录下 用*.*传全部,-r传文件

scp *.* 192.168.1.20:/dm8/backup scp -r bak_20221011 10.9.193.222:/dm8/data/DM01/bak

6. 到备机20上确认是否传成功了,然后恢复
在20上(DMAPSERVICE要启动着)

cd /dm8/bin ./dmrman RESTORE DATABASE '/dm8/data/DMDW/dm.ini' FROM BACKUPSET '/dm8/backup' RECOVER DATABASE '/dm8/data/DMDW/dm.ini' FROM BACKUPSET '/dm8/backup' RECOVER DATABASE '/dm8/data/DMDW/dm.ini' UPDATE DB_MAGIC exit

二.设置主库

7.修改主机的dm.ini配置,一行一样查了修改

cd /dm8/data/DMDW/ vi dm.ini dm.ini ---------- INSTANCE_NAME = GRP1_RT_01 PORT_NUM = 5246 DW_INACTIVE_INTERVAL = 60 ALTER_MODE_STATUS = 0 ENABLE_OFFLINE_TS = 2 MAL_INI = 1 ARCH_INI = 1 RLOG_SEND_APPLY_MON = 64

8.粘贴主机的dmmal.ini配置,需要根据实际修改端口号和IP

dmmal.ini MAL_CHECK_INTERVAL = 5 MAL_CONN_FAIL_INTERVAL = 5 [MAL_INST1] MAL_INST_NAME = GRP1_RT_01 实例名 MAL_HOST = 192.168.1.30 ip MAL_PORT = 55101 随便写个通的端口号 MAL_INST_HOST = 192.168.1.30 MAL实例ip MAL_INST_PORT = 5246 实例端口 MAL_DW_PORT = 65101 随便写个通的端口号 MAL_INST_DW_PORT = 45101 实例守护的端口号 [MAL_INST2] MAL_INST_NAME = GRP1_RT_03 MAL_HOST = 192.168.1.20 MAL_PORT = 55121 MAL_INST_HOST = 192.168.1.20 MAL_INST_PORT = 5246 MAL_DW_PORT = 65121 MAL_INST_DW_PORT = 45121 --多备的话可以继续往后加

9.粘贴主机的dmarch.ini配置,需要改一下实例名

dmarch.ini [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = GRP1_RT_03-- !!!!!主机写备机的实例名 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/arch ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0 (MB,0表示不限制)

10.粘贴主机的dmwatcher.ini配置

dmwatcher.ini [GRP1] ---主机都叫这个 DW_TYPE = GLOBAL DW_MODE = AUTO DW_ERROR_TIME = 10 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 10 INST_OGUID = 453331 -------实例OGUID 识别标识 INST_INI = /dm8/data/DMDW/dm.ini INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /dm8/bin/dmserver --不用改,监视器配置文件 RLOG_SEND_THRESHOLD = 0 RLOG_APPLY_THRESHOLD = 0

11. dmdba mkdir /dm8/arch 建归档文件夹

12.启动主库,以mount方式

./dmserver /dm8/data/DMDW/dm.ini mount

13.登录数据库,用OGUID设置成主库,再把参数关掉

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);

打开数据库显示,处于主库配置状态

三.设置备库

14.修改备机的dm.ini配置,一行一样查了修改

dm.ini INSTANCE_NAME = GRP1_RT_03 PORT_NUM = 5246 DW_INACTIVE_INTERVAL = 60 ALTER_MODE_STATUS = 0 ENABLE_OFFLINE_TS = 2 MAL_INI = 1 ARCH_INI = 1 RLOG_SEND_APPLY_MON = 64

15.创建备机的dmmal.ini配置

dmmal.ini MAL_CHECK_INTERVAL = 5 MAL_CONN_FAIL_INTERVAL = 5 [MAL_INST1] MAL_INST_NAME = GRP1_RT_01 MAL_HOST = 192.168.1.30 MAL_PORT = 55101 MAL_INST_HOST = 192.168.1.30 MAL_INST_PORT = 5246 MAL_DW_PORT = 65101 MAL_INST_DW_PORT = 45101 [MAL_INST2] MAL_INST_NAME = GRP1_RT_03 MAL_HOST = 192.168.1.20 MAL_PORT = 55121 MAL_INST_HOST = 192.168.1.20 MAL_INST_PORT = 5246 MAL_DW_PORT = 65121 MAL_INST_DW_PORT = 45121

16.创建备机的dmarch.ini配置

dmarch.ini [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = GRP1_RT_01 --!!!!主库 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/arch ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0

16.创建备机的dmarch.ini配置

dmwatcher.ini [GRP1] DW_TYPE = GLOBAL DW_MODE = AUTO DW_ERROR_TIME = 10 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 10 INST_OGUID = 453331 INST_INI = /dm8/data/DMDW/dm.ini INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /dm8/bin/dmserver RLOG_APPLY_THRESHOLD = 0

17.以 Mount 方式启动备库

cd dm8/bin ./dmserver /dm8/data/DMDW/dm.ini mount ./disql sysdba/Dameng123@localhost:5246 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);

连接数据库,会显示处于备库配置状态

18.在30和20上启动守护进程,自动将mount变成open

cd /dm8/bin ./dmwatcher /dm8/DMDW/dmwatcher.ini

连接数据库,会显示处于主库/备库打开状态

19.在主库上面建一张表,在备库上面可以查询到

20.想看整个集群状态,需要搭建一下监视器,在监视器服务器上也要事先安装达梦数据库,不用初始化实例

cd /dm8 然后粘贴进来 dmmonitor.ini MON_DW_CONFIRM = 1 MON_LOG_PATH = /dm8/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.1.30:65101 -----端口是前面的MAL_DW_PORT数据守护端口 MON_DW_IP = 192.168.1.20:65121(MAL_DW_PORT)---必须是外网的?

21.启动监视器

cd /dm8/bin ./dmmonitor /dm8/dmmonitor.ini

可直接查看查看主和备机状态open
在监视器里可以 login
然后swithover切换主备机

注册DMWATCHER服务

注册数据服务据库类似,需要用root账号

cd /dm8/script/ ./dm_service_installer.sh -t dmserver -p 服务名后缀(前缀是定死的,后缀一般为数据库实例名称) -dm_ini /dm8/data/DMTEST/dm.ini ./dm_service_installer.sh -t dmwatcher -p DMSVR02 -watcher_ini /dm8/data/DM01/dmwatcher.ini
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服