注册
达梦8数据守护集群搭建
培训园地/ 文章详情 /

达梦8数据守护集群搭建

扣扣 2023/06/06 1143 1 0

1、环境准备
检查selinux、firewalld是否关闭
准备三台机器,分别为主、备、监视器
主库与备库需要安装数据库软件与初始化实例,监视器服务器只需要安装数据库软件
dwprimary host02 192.168.36.163
dwstandby host03 192.168.36.161
dwmon host01 192.168.36.166
1685931350012.png

2、主库备份、备库还原
(1)192.168.36.163主库备份
[dmdba@host02 ~]$ cd /dm8/bin
[dmdba@host02 bin]$ systemctl stop DmServiceDMSVR01.service
[dmdba@host02 ~]$ cd /dm8
[dmdba@host02 ~]$ mkdir backup
[dmdba@host02 ~]$ ./dmrman
RMAN>backup database '/dm8/data/DM01/dm.ini' backupset '/dm8/backup/full';

将主库上的备份文件拷贝到备库/dm8/backup目录下
[dmdba@host02 ~]$cd /dm8/backup/full

[dmdba@host02 full1]$scp -r . 192.168.36.161:/dm8/backup

(2)192.168.36.161备库还原
[dmdba@host02 ~]$ cd /dm8/bin
[dmdba@host02 bin]$ systemctl stop DmServiceDMSVR02.service
[dmdba@host02 bin]$./dmrman
RMAN> RESTORE DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/backup'
RMAN> RECOVER DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/backup'
RMAN>RECOVER DATABASE '/dm8/data/DM01/dm.ini' UPDATE DB_MAGIC

3、192.168.36.163主库修改dm.ini
vim进入dm.ini文件后,利用/ INSTANCE_NAME搜索进行修改
[dmdba@host02 ~]$cd /dm8/data/DM01

[dmdba@host02 ~]$ vim dm.ini
INSTANCE_NAME = DMSVR01
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60 #接收数据守护进程超时时间
ALTER_MODE_STATUS = 0 #是否允许修改数据库模式primary、standby。0表示不允许
ENABLE_OFFLINE_TS = 2 #不允许备库的表空间offline。0表示允许,1表示不允许,2表示禁止
MAL_INI = 1 #打开mal
ARCH_INI = 1 #打开归档
RLOG_SEND_APPLY_MON = 64 #默认64,主库表示指定统计最近主库到备库归档发送的时间;备库表示做了多少次日志重演

4、192.168.36.163主库修改dmmal.ini
[dmdba@host02 ~]$cd /dm8/data/DM01

[dmdba@host02 DM01]$ vim dmmal.ini
MAL_CHECK_INTERVAL = 60 #单位秒
MAL_CONN_FAIL_INTERVAL = 60
[MAL_INST1]
MAL_INST_NAME = DMSVR01
MAL_HOST = 192.168.36.163
MAL_PORT = 55101
MAL_INST_HOST = 192.168.36.163
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DMSVR02
MAL_HOST = 192.168.36.161
MAL_PORT = 55121
MAL_INST_HOST = 192.168.36.161
MAL_INST_PORT = 5236
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121

5、192.168.36.163主库修改归档dmarch.ini
[dmdba@host02 ~]$ cd /dm8
[dmdba@host02 ~]$ mkdir arch
[dmdba@host02 ~]$cd /dm8/data/DM01

[dmdba@host02 DM01]$ vim dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档
ARCH_DEST = DMSVR02 #备机实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档
ARCH_DEST = /dm8/arch #归档路径
ARCH_FILE_SIZE = 128 #归档文件大小
ARCH_SPACE_LIMIT = 0 #单位M。归档空间限制,0表示不限制;如果超过50G,就会把之前的删掉,这样就不用写脚本来删除了。

6、192.168.36.163主库修改dmwatcher.ini
dmwatcher.ini守护进程配置
[dmdba@host02 ~]$cd /dm8/data/DM01

[dmdba@host02 DM01]$ vim dmwatcher.ini
[GRP1] #守护进程的组名
DW_TYPE = GLOBAL
DW_MODE = MANUAL #切换模式,auto自动,MANUAL手动,建议配置MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 60 #数据库故障认定时间
INST_OGUID = 12345 #OGUID数据守护唯一标识,一套守护集群中的所有节点必须一致
INST_INI = /dm8/data/DM01/dm.ini
INST_AUTO_RESTART = 1 #是否自动重启数据库实例,1是可以自动重启
INST_STARTUP_CMD = /dm8/bin/dmserver #重启数据库的命令
RLOG_SEND_THRESHOLD = 0 #用于指定主库发送日志到备库的时间阈值,默认0不设阈值
RLOG_APPLY_THRESHOLD = 0 #用于指定备库重演日志的时间阈值,默认0不设置阈值

7、192.168.36.163主库修改模式为primary
[dmdba@host02 bin]$ cd /dm8/bin
[dmdba@host02 bin]$ ./dmserver /dm8/data/DM01/dm.ini mount #启动到mount
重开一个终端,手动修改数据库模式为primary
[dmdba@host02 bin]$ disql sysdba/SYSDBA
处于普通配置状态
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(12345);
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SQL>exit
[dmdba@host02 bin]$ disql sysdba/SYSDBA
主库处于配置状态
SQL>登录数据库

8、192.168.36.161备库修改dm.ini
vim进入dm.ini文件后,利用/ INSTANCE_NAME搜索进行修改
[dmdba@host03 ~]$cd /dm8/data/DM01

[dmdba@host03 ~]$ vim dm.ini
INSTANCE_NAME = DMSVR02
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

9、192.168.36.161备库修改dmmal.ini
[dmdba@host03 ~]$cd /dm8/data/DM01

[dmdba@host03 DM01]$ vim dmmal.ini
MAL_CHECK_INTERVAL = 60
MAL_CONN_FAIL_INTERVAL = 60
[MAL_INST1]
MAL_INST_NAME = DMSVR01
MAL_HOST = 192.168.36.163
MAL_PORT = 55101
MAL_INST_HOST = 192.168.36.163
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DMSVR02
MAL_HOST = 192.168.36.161
MAL_PORT = 55121
MAL_INST_HOST = 192.168.36.161
MAL_INST_PORT = 5236
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121

10、192.168.36.161备库修改dmarch.ini
[dmdba@host03 ~]$ cd /dm8
[dmdba@host03 ~]$ mkdir arch
[dmdba@host03 ~]$cd /dm8/data/DM01

[dmdba@host03 DM01]$ vim dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSVR01 #主库实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

11、192.168.36.161备库修改dmwatcher.ini
[dmdba@host03 ~]$cd /dm8/data/DM01

[dmdba@host03 DM01]$ vim dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 60
INST_OGUID = 12345
INST_INI = /dm8/data/DM01/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_APPLY_THRESHOLD = 0

12、192.168.36.161备库修改模式standby
[dmdba@host03 ~]$cd /dm8/bin

[dmdba@host03 bin]$./dmserver /dm8/data/DM01/dm.ini mount
重新开一个终端

[dmdba@host02 bin]$ disql sysdba/SYSDBA
#处于普通配置状态
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(12345);
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SQL>exit
[dmdba@host03 bin]$ disql sysdba/SYSDBA
#处于备库配置状态

13、主备库启动守护进程
两个节点都要执行
守护进程启动后会把数据库启动到open状态,,如果启动不了,则检查配置文件是否有错误
[dmdba@host03 ~]$ cd /dm8/bin
[dmdba@host03 bin]$./dmwatcher /dm8/data/DM01/dmwatcher.ini

[dmdba@host03 bin]$ disql sysdba/SYSDBA
image.png
image.png

14、192.168.36.166搭建监视器dmmonitor
192.168.36.166这台服务器只要安装数据库软件即可,不需要初始化实例
[dmdba@host01 ~]cd /dm8/
[dmdba@host01 dm8]$ vim dmmonitor.ini
MON_DW_CONFIRM = 0 #有故障是否自动切换。1确认模式自动切换,0监控模式不自动切换
MON_LOG_PATH = /dm8/log #确认这个路径存不存在
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32 #单位M
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 12345
MON_DW_IP = 192.168.36.163:65101 #守护进程的IP地址与监听端口(MAL_HOST IP,端口不变)
MON_DW_IP = 192.168.36.161:65121

[dmdba@host01 ~]cd /dm8/bin
[dmdba@host01 bin]$ ./dmmonitor /dm8/dmmonitor.ini
image.png

15、测试
主库执行
SQL>create table t1(id int);
SQL>insert into t1 values(1);
SQL>commit;
备库立即就能查询到t1表的值
SQL>seelct * from t1;

16、数据守护集群手动切换主备
监视器:监控数据守护系统管理数据守护系统、确认状态信息、发起故障自动接管命令---确认模式
监控模式:MON_DW_CONFIRM 参数的默认值是 0,表示监控模式;MON_DW_CONFIRM 参数值为 1 时,表示监视器运行在确认模式下。
确认模式普通模式
监视器的一些命令:
show
login
switcherover:切换指定组的指定库为primary库
192.168.36.166上执行主备切换
[dmdba@host01 ~]cd /dm8/bin
[dmdba@host01 bin]$ ./dmmonitor /dm8/dmmonitor.ini
login #输入login
用户名:sysdba #数据库用户名
密码:******* #sysdba密码
image.png
手动输入:switchover
image.png
image.png
登录原主库192.168.36.163:显示处于备库打开状态
image.png
登录原备库192.168.36.161:显示处于主库打开状态
image.png
switchover重新切换回来
登录192.168.36.163:显示处于主库打开状态
登录192.168.36.161:显示处于备库打开状态

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服