DM8主备守护集群

1.IP地址配置规划

1.1 IP地址配置

服务器名称IP地址实例名称操作系统
DM01192.168.1.101DM01中标麒麟7
DM02192.168.1.102DM02中标麒麟7

1.2 端口配置

服务器类型数据库名实例名PORT_NUMMAL_INST_DW_PORTMAL_HOSTMAL_DW_PORT
主机服务器DMDM015236331416114152141
备机服务器DMDM025236331426114252142
监视器____________

2.初始化数据库

主库和备库两台机器上,都按以下方法初始化数据库(示例),注意主库与备库的数据库名相同,服务名不同,注意区分。

主库安装

dmdba@yankai-linux:/dm8/bin$ ./dminit path=/dm8/data  DB_NAME=DMDB INSTANCE_NAME=DM01
# cd到/dm8/script/root目录下
root@yankai-linux:/dm8/script/root# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMDB/dm.ini -p DM01
# 打开数据库服务
dmdba@yankai-linux:/dm8/bin$ systemctl start DmServiceDM02
# 连接disql
[dmdba@localhost ~]$ disql SYSDBA/SYSDBA
 
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.175(ms)
disql V8
SQL> create user test identified by "dameng123";
操作已执行
已用时间: 10.264(毫秒). 执行号:51400.
SQL> create table test.t01 (id int ,name varchar(20));
操作已执行
已用时间: 7.493(毫秒). 执行号:51401.
SQL> exit

备库安装

dmdba@yankai-linux:/dm8/bin$ ./dminit path=/dm8/data  DB_NAME=DMDB INSTANCE_NAME=DM02
# cd到/dm8/script/root目录下
root@yankai-linux:/dm8/script/root# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMDB/dm.ini -p DM02
# 打开数据库服务
dmdba@yankai-linux:/dm8/bin$ systemctl start DmServiceDM02
# 连接disql
[dmdba@localhost ~]$ disql SYSDBA/SYSDBA
 
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.175(ms)
disql V8
SQL> create user test identified by "dameng123";
操作已执行
已用时间: 10.264(毫秒). 执行号:51400.
SQL> create table test.t01 (id int ,name varchar(20));
操作已执行
已用时间: 7.493(毫秒). 执行号:51401.
SQL> exit

3.备份还原

3.1 备份主库

备份主库,关闭主库实例、执行备份脚本

# 关闭主库实例
dmdba@yankai-linux:/dm8/bin$ systemctl stop DmServiceDM01.service
# 执行备份脚本
dmdba@yankai-linux:/dm8/bin$ ./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DMDB/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/'"
dmrman V8
BACKUP DATABASE '/dm8/data/DMDB/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[39586], file_lsn[39586]
Processing backupset /dm8/backup                              [Percent:100.00%][Speed:0.00M/s][Cost:00:00:05][Remaining:00:00:00]
backup successfully!
time used: 00:00:07.461
dmdba@yankai-linux:/dm8/bin$ cd /dm8/backup/
dmdba@yankai-linux:/dm8/backup$ ls
backup.bak  backup.meta

3.2 还原备库

还原备库,备库执行数据恢复,先关闭实例,再执行恢复。

# 关闭备机实例
dmdba@yankai-linux:/home/yankai/Desktop$ cd /dm8/bin
dmdba@yankai-linux:/dm8/bin$ systemctl stop DmServiceDM02
dmdba@yankai-linux:/home/yankai/Desktop$ cd /dm8/bin
# 执行恢复
dmdba@yankai-linux:/dm8/bin$ ./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DMDB/dm.ini' FROM BACKUPSET '/dm8/backup'"
dmrman V8
RESTORE DATABASE '/dm8/data/DMDB/dm.ini' FROM BACKUPSET '/dm8/backup'
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:14][Remaining:00:00:00]
restore successfully.
time used: 00:00:15.959
dmdba@yankai-linux:/dm8/bin$ ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DMDB/dm.ini' FROM BACKUPSET '/dm8/backup'"
dmrman V8
RECOVER DATABASE '/dm8/data/DMDB/dm.ini' FROM BACKUPSET '/dm8/backup'
file dm.key not found, use default license!
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[39586], file_lsn[39586]
备份集[/dm8/backup]备份过程中未产生日志
recover successfully!
time used: 00:00:20.981
dmdba@yankai-linux:/dm8/bin$ ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DMDB/dm.ini' UPDATE DB_MAGIC"
dmrman V8
RECOVER DATABASE '/dm8/data/DMDB/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[39586], file_lsn[39586]
recover successfully!
time used: 00:00:02.776

4.配置参数文件

4.1 主库配置文件

dm.ini

dmdba@yankai-linux:/dm8/data/DM$ vi dm.ini 
INSTANCE_NAME = DM01
PORT_NUM = 5236                   #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60        #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0             #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2             #不允许备库OFFLINE表空间
MAL_INI = 1                         #打开MAL系统
ARCH_INI = 1                        #打开归档配置
RLOG_SEND_APPLY_MON = 64          #统计最近64次的日志发送信息

dmarch.ini

dmdba@yankai-linux:/dm8/data/DM$ vi dmmal.ini
MAL_CHECK_INTERVAL= 5
MAL_CONN_FAIL_INTERVAL = 5
#MAL 链路检测时间间隔
#判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DM01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.1.101 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141
MAL_INST_HOST = 192.168.233.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口
#MAL 系统监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DM02
MAL_HOST = 192.168.1.102
MAL_PORT = 61142
MAL_INST_HOST = 192.168.233.132
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142

dmarch.ini

dmdba@yankai-linux:/dm8/data/DM$ vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DM02 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DM/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

dmwatcher.ini

dmdba@yankai-linux:/dm8/data/DM$ 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 #守护系统唯一 OGUID 值
INST_INI = /dm8/data/DM/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver #打开实例的自动启动功能
RLOG_SEND_THRESHOLD = 0
#dm.ini 配置文件路径
#命令行方式启动
#指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0
#指定备库重演日志的时间阈值,默认关闭

4.2 备库配置文件

dm.ini

dmdba@yankai-linux:/dm8/data/DM$ vi dm.ini 
INSTANCE_NAME = DM02
PORT_NUM = 5236                   #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60        #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0             #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2             #不允许备库OFFLINE表空间
MAL_INI = 1                         #打开MAL系统
ARCH_INI = 1                        #打开归档配置
RLOG_SEND_APPLY_MON = 64          #统计最近64次的日志发送信息

dmarch.ini

dmdba@yankai-linux:/dm8/data/DM$ vi dmmal.ini
MAL_CHECK_INTERVAL= 5
MAL_CONN_FAIL_INTERVAL = 5
#MAL 链路检测时间间隔
#判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DM01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.1.101 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141
MAL_INST_HOST = 192.168.233.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口
#MAL 系统监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DM02
MAL_HOST = 192.168.1.102
MAL_PORT = 61142
MAL_INST_HOST = 192.168.233.132
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142

dmarch.ini

dmdba@yankai-linux:/dm8/data/DM$ vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DM01 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DM/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

dmwatcher.ini

dmdba@yankai-linux:/dm8/data/DM$ 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 #守护系统唯一 OGUID 值
INST_INI = /dm8/data/DM/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver #打开实例的自动启动功能
RLOG_SEND_THRESHOLD = 0
#dm.ini 配置文件路径
#命令行方式启动
#指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0
#指定备库重演日志的时间阈值,默认关闭

5.修改主备库模式

启动主库

dmdba@yankai-linux:/dm8/bin$ ./dmserver /dm8/data/DM/dm.ini mount
file dm.key not found, use default license!
version info: develop
Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V8 1-1-144-20.11.06-129436-ENT  startup...
Database mode = 0, oguid = 0
License will expire on 2024-5-9
file lsn: 40751
ndct db load finished
ndct fill fast pool finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
SYSTEM IS READY.

设置OGUID并修改数据库模式

dmdba@yankai-linux:/dm8/bin$ ./disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 4.292(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
DMSQL 过程已成功完成
已用时间: 15.355(毫秒). 执行号:0.
SQL> SP_SET_OGUID(453331);
DMSQL 过程已成功完成
已用时间: 2.191(毫秒). 执行号:1.
SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
DMSQL 过程已成功完成
已用时间: 2.331(毫秒). 执行号:2.
SQL> ALTER DATABASE PRIMARY;
操作已执行
已用时间: 3.028(毫秒). 执行号:0.

启动备库

dmdba@yankai-linux:/dm8/bin$ ./dmserver /dm8/data/DM/dm.ini mount
file dm.key not found, use default license!
version info: develop
Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V8 1-1-144-20.11.06-129436-ENT  startup...
Database mode = 0, oguid = 0
License will expire on 2024-5-9
file lsn: 40751
ndct db load finished
ndct fill fast pool finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
SYSTEM IS READY.

设置OGUID并修改数据库模式

dmdba@yankai-linux:/dm8/bin$ ./disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 3.758(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 6.499(毫秒). 执行号:0.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 4.835(毫秒). 执行号:1.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 10.242(毫秒). 执行号:2.
SQL> alter database standby;
操作已执行
已用时间: 4.248(毫秒). 执行号:0.

6. 启动主备守护进程

启动主库上的守护进程:

dmdba@yankai-linux:/dm8/bin$ ./dmwatcher /dm8/data/DM/dmwatcher.ini
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY

启动备库上的守护进程:

dmdba@yankai-linux:/dm8/bin$ ./dmwatcher /dm8/data/DM/dmwatcher.ini
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY

8.配置监视器

在主库或备库上添加配置文件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.233.131:52141
MON_DW_IP = 192.168.233.132:52142

启动监视器

dmdba@yankai-linux:/dm8/bin$ ./dmmonitor /dm8/data/dmmonitor.ini
[monitor]         2023-05-24 15:44:02: DMMONITOR[4.0] V8
[monitor]         2023-05-24 15:44:02: DMMONITOR[4.0] IS READY.
 
[monitor]         2023-05-24 15:44:03: 收到守护进程(DM02)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN
                  2023-05-24 15:44:02  OPEN           OK        DM02       OPEN        PRIMARY   NULL     5        40751           40751
 
[monitor]         2021-05-24 22:44:03: 收到守护进程(DM01)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN
                  2023-05-24 15:44:02  OPEN           OK        DM01       OPEN        STANDBY   NULL     5       40751           40751
 
show
2023-05-24 15:44:05
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG
GRP1             453331      TRUE            AUTO            FALSE
 
 
<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT
192.168.233.131   52141        2023-05-24 15:44:05  GLOBAL    VALID     OPEN           DM01       OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID
EP INFO:
INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG
5236       OK        DM01       OPEN        PRIMARY   0          0            REALTIME  VALID    4023            40751           4023            40751           NONE
<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT
192.168.233.132   52142        2021-05-24 22:44:10  GLOBAL    VALID     OPEN           DM02       OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID
 
EP INFO:
INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG
5236       OK        DM02       OPEN        STANDBY   0          0            REALTIME  VALID    4018            40751           4018            40751           NONE
 
DATABASE(DM02) APPLY INFO FROM (DM01):
DSC_SEQNO[0], (ASEQ, SSEQ, KSEQ)[4023, 4023, 4023], (ALSN, SLSN, KLSN)[40751, 40751, 40751], N_TSK[0], TSK_MEM_USE[0]
 
 
#================================================================================#

至此守护配置已完成。提示:如果到了这一步,监听不到从节点,在你确保你的配置文件没出错的前提下,一定要注意从节点的防火墙,我首次搭建也是监听不打,后面关闭防火墙重新启动监听,就可以了。

https://eco.dameng.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值