systemctl status firewalld
# 或
firewall-cmd --state
systemctl stop firewalld.service
systemctl start firewalld.service
完成搭建后,需要用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 on ‘10.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切换主备机
注册数据服务据库类似,需要用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
文章
阅读量
获赞