注册
达梦主备守护集群搭建分享
培训园地/ 文章详情 /

达梦主备守护集群搭建分享

孟子的孟 2023/08/30 723 0 0

一、首先规划主备IP以及使用到的端口
数据库名 实例名 PORT_NUM MAL_INST_DW_PORT(接收消息) MAL_HOST MAL_PORT MAL_DW_PORT(数据守护端口、发送消息)
DM02 DMSVR02 5237 45101 192.168.43.100 55101 65101
DAMENG DM2 5236 45121 192.168.43.101 55121 65121
查看实例名称:
/dm8/bin/disql sysdba/YMYqaz123@localhost:5238
Select * from v$instance;
Select * from v$database;

1.关闭主库
Cd /dm8/bin
./DmServiceDMSERVER stop

2.主库修改参数文件
cd /dm8/data/DAMENG
cp dm.ini dm.ini.bak
Vi dm.ini
INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 5246
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0 --表示不能手动更改数据库模式,只能让监视器自己去改变
ENABLE_OFFLINE_TS = 2 --表示备库的表空间是不能被手动offline
MAL_INI = 1 --打开邮件系统
ARCH_INI = 1 --打开归档
RLOG_SEND_APPLY_MON = 64 --redo日志传输速率 64M

vi dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DMSVR02
MAL_HOST = 192.168.43.100
MAL_PORT = 55101
MAL_INST_HOST = 192.168.136.100
MAL_INST_PORT = 5237 # 实例的对外服务端口,和 dm.ini 中 的 PORT_NUM 一致
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101

[MAL_INST2]
MAL_INST_NAME = DMSVR03
MAL_HOST = 192.168.143.101
MAL_PORT = 55121
MAL_INST_HOST = 192.168.136.101
MAL_INST_PORT = 5236
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121

vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSVR03 --在主库配置要写 备库的实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm88/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

vi dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 888888
INST_INI = /dm88/DM02/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

3.主库-全库冷备
[dmdba@DMDB1 bin]$ mkdir -p /dm88/DM02/backup/
[dmdba@DMDB1 bin]$ ./dmrman CTLSTMT="BACKUP DATABASE '/dm88/DM02/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm88/DM02/backup/BACKUP_FILE_01'"

./dmrman backup database '/dm88/DM02/dm.imi' backupset '/dm88/DM02/bak/FULLBAK0825'

4.备库恢复全备
[dmdba@DMDB2 bin]$ cd /dm8/bin
[dmdba@DMDB2 bin]$ ./DmServiceDM2 stop
[dmdba@DMDB2 bin]$ mkdir -p /dm8/backup

--主库拷贝文件到备库:
cd /dm8/backup/BACKUP_FILE_01
scp * dmdba@192.168.136.101:/dm8/backup

备库启用DMAP服务:
[dmdba@DMDB2 bin]$ cd /dm8/bin
./DmAPService start

方法1:--备库恢复:(基于已经有数据库实例的情况下,恢复到dm.imi)
./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DM2/dm.ini' FROM BACKUPSET '/dm8/backup'"

./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DM2/dm.ini' FROM BACKUPSET '/dm8/backup'"

./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DM2/dm.ini' UPDATE DB_MAGIC"

方法2:--备库恢复(考试环境,只有数据库软件,没有实例。且主库是在关机下做的冷备)
./dmrman
restore database to '/dm8/data/DAMENG' from backupset '/dm88/DM02/bak/FULLBAK0825'
Recover database '/dm8/data/DAMENG/dm.ini' update db_magic 冷备可以直接更新魔数

启动主库到mount状态:
Cd /dm8/bin
./dmserver /dm8/data/DAMENG/dm.ini mount

主库重新开一个窗口:
./disql 进入:./disql sysdba/YMYqaz123@localhost:5236
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(888888);
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit 重新disql进入,验证是否是 “处于主库配置状态”

5.备库配置参数文件 --因为主库改了恢复过来,所以主要改实例名,改为DM02
Cd /dm8/data/DM2
Vi dm.ini
INSTANCE_NAME = DM2
PORT_NUM = 5238
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
vi dmmal.ini (注意:如果多次配置,MAL端口提示会占用,重新换一个 55111之类的)
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM01
MAL_HOST = 192.168.136.100
MAL_PORT = 55101
MAL_INST_HOST = 192.168.136.100
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101

[MAL_INST2]
MAL_INST_NAME = DM2
MAL_HOST = 192.168.136.101
MAL_PORT = 55121
MAL_INST_HOST = 192.168.136.101
MAL_INST_PORT = 5238
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121

vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM01 --在备库配置写主库的实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

vi 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/DM2/dm.ini --备库的ini文件路径
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

以 Mount 方式启动备库,如果启动着先关闭:
Cd /dm8/bin
./DmServiceDM2 stop
./dmserver /dm8/data/DM2/dm.ini mount

备库重新开一个窗口 进入数据库配置OGUID:
./disql sysdba/YMYqaz123@localhost:5236
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(888888);
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

exit 重新disql进入,验证是否是 “处于备库配置状态”

6.主、备库启动守护进程
主备库模式都配置好之后,分别在主库、备库启动守护进程
主:
./dmwatcher /dm88/DM02/dmwatcher.ini

备:
./dmwatcher /dm8/data/DM2/dmwatcher.ini
此时主备会自动打开,主备重新开一个窗口进入disql,会提示处于主/备库打开状态。
分别在主、备检查的归档状态是否正常:显示VALID则为正常
select * from v$arch_status;

netstat -nltp |grep dmwatcher
7.配置监视器-第三台主机
删除实例 cd /dm8 ./uninstall -i
-- 第三台主机配置监视器:不需要初始化实例,只需要安装好数据库软件即可。
配置文件可以随便放:比如
vi /dm8/dmmonitor.ini
MON_DW_CONFIRM = 1 --监视器类型。1是确认监视器,自动切换。 0是普通监视模式。
MON_LOG_PATH = /dm8/data/log --监视器日志
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0 --日志总空间大小,0表示无限制,可以设256~4096,单位MB
[GRP1] --守护组的名称(跟上述主备的配置一样)
MON_INST_OGUID = 453331 --OGUID也是和主备的配置一样
MON_DW_IP = 192.168.136.100:65101 --主库守护端口
MON_DW_IP = 192.168.136.101:65121 --备库守护端口

启动监视器:
cd /dm8/bin/
./dmmonitor /dm8/dmmonitor.ini
日志会显示主备的信息,DW_STAT_FLAT为VALID。状态为有效。 输入show
help

---额外插入,学习配置非确认监视器(找第四台服务器配置)
配置文件可以随便放:比如
vi /dm8/dmmonitor_unconfirm.ini
MON_DW_CONFIRM = 0 --监视器类型。1是确认监视器,自动切换。 0是普通监视模式。
MON_LOG_PATH = /dm8/data/log --监视器日志
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0 --日志总空间大小,0表示无限制,可以设256~4096,单位MB
[GRP1] --守护组的名称(跟上述主备的配置一样)
MON_INST_OGUID = 453331 --OGUID也是和主备的配置一样
MON_DW_IP = 192.168.136.100:65101 --主库守护端口
MON_DW_IP = 192.168.136.101:65121 --备库守护端口
在主库执行关闭;shutdown
8.注册服务
考试完要把守护进程注册到操作系统里,这样考完试重启机子,整个服务还能正常启动

主、备库用root用户执行:
cd /dm8/script/root
[root@DMDB2 root]# ./dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /dm8/data/DAMENG/dmwatcher.ini
(./dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /dm88/DM02/dmwatcher.ini)

./dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /dm8/data/DAMENG1/dmwatcher.ini
(./dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /dm88/DM03/dmwatcher.ini)

第三台监视器执行:
cd /dm8/script/root
./dm_service_installer.sh -t dmmonitor -p DMMONITOR -monitor_ini /dm8/dmmonitor.ini

把服务注册到集群
Root执行;
./dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini
/dm8/data/DAMENG/dm.ini

9.切换
./dmmonitor /dm8/dmmonitor.ini 登录监视器切换主备角色
login
切换前需要登录,一般是登录主库,用sysdba登录。
switchover
主备角色切换成功

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服