DM-8 主备集群之主备搭建 for Linux

DM-8 主备集群搭建

搭建目的:

使用DM-8搭建一主一从 并实现故障自动切换

规划明细表
主机地址+主机名部署规划归档目录数据目录实例名
10.0.0.31(dm01)DM-主/data/DAMENG/arch/data/DAMENGDM01
10.0.0.32(dm02)DM-备/data/DAMENG/arch/data/DAMENGDM02
10.0.0.33(dm03)DM-monitor/data/DAMENG/arch/data/DAMENGDM03

1. 登陆dm01.dm02.dm03 初始化

初始化详细步骤在之前的帖子中,附地址链接
https://blog.csdn.net/ince130/article/details/126343684

注意: 初始化参数中 INSTANCE_NAME=规划明细表中主机名称

1.1 注册DMSERVER

检查归档是否开启

[dmdba@dm01 ~]$ sed -i ‘578s/0/1/’ /data/DAMENG/dm.ini
[dmdba@dm01 ~]$ cat /data/DAMENG/dm.ini |grep ARCH_INI
ARCH_INI = 1 #dmarch.ini
如果ARCH_INI=1则无需修改

配置归档

##DM01## ##DM02## 都需要配置
[dmdba@dm01 ~]$ cat>/data/DAMENG/dmarch.ini<<EOF
>    ARCH_WAIT_APPLY      = 0
> [ARCHIVE_LOCAL1]
>         ARCH_TYPE                = LOCAL        #本地归档类型
>         ARCH_DEST                = /data/DAMENG/arch    #本地归档存放路径
>         ARCH_FILE_SIZE           = 1024         #单个归档大小,单位MB
>         ARCH_SPACE_LIMIT         = 51200        #归档上限,单位MB
>         ARCH_FLUSH_BUF_SIZE  = 0
>         ARCH_HANG_FLAG       = 1
>
> [ARCHIVE_REALTIME]
>         ARCH_TYPE                = REALTIME     #实时归档类型
>         ARCH_DEST                = DW02       #实时归档目标实例名
> EOF
1.2 启动DmAPServer并使用dmrman备份

[dmdba@dm01 ~]$ ./DmAPService start

[dmdba@dm01 ~]$ dmrman
dmrman V8
RMAN> backup database ‘/data/DAMENG/dm.ini’ full backupset ‘/data/DAMENG/bak’;
backup database ‘/data/DAMENG/dm.ini’ full backupset ‘/data/DAMENG/bak’;
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[40143], file_lsn[40143]
Processing backupset /data/DAMENG/bak
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:04][Remaining:00:00:00]
backup successfully!
time used: 00:00:05.410
RMAN>

使用scp命令将备份传输到从库中

[dmdba@dm01 bak]$ scp *.* dmdba@10.0.0.32:/data/DAMENG/bak
dmdba@10.0.0.32’s password:
bak.bak 100% 20MB 5.0MB/s 00:04
bak.meta 100% 85KB 1.3MB/s 00:00

从库恢复数据

[dmdba@dm02 bak]$ dmrman
dmrman V8
RMAN> check backupset ‘/data/DAMENG/bak’;

RMAN> restore database ‘/data/DAMENG/dm.ini’ from backupset ‘/data/DAMENG/bak’;

RMAN> recover database ‘/data/DAMENG/dm.ini’ from backupset ‘/data/DAMENG/bak’;

RMAN> recover database ‘/data/DAMENG/dm.ini’ update DB_MAGIC;

1.3 dm.ini配置
#DM01# #DM02#都需要配置
[dmdba@dm01 ~]$ cat -n /data/DAMENG/dm.ini |grep -w INSTANCE_NAME
    15                  INSTANCE_NAME         = DMSERVER            #Instance name
[dmdba@dm01 ~]$ cat -n /data/DAMENG/dm.ini |grep -w MAL_INI
   577                  MAL_INI                         = 0         #dmmal.ini
[dmdba@dm01 ~]$ sed -i '15s/DMSERVER/DM01/' /data/DAMENG/dm.ini
[dmdba@dm01 ~]$ sed -i '577s/0/1/' /data/DAMENG/dm.ini
注:dm.ini 部分参数修改说明

INSTANCE_NAME = DW01

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 次的日志发送信息

1.4 配置dmmal.ini
##DM01## ##DM02##都需要配置
[dmdba@dm01 ~]$ cat>/data/DAMENG/dmmal.ini<<EOF
> MAL_CHECK_INTERVAL         = 10  #MAL链路检测时间间隔
> MAL_CONN_FAIL_INTERVAL     = 10  #判定MAL链路断开的时间
> MAL_TEMP_PATH              = /data/malpath/  #临时文件目录
> MAL_BUF_SIZE               = 512  #单个MAL缓存大小,单位MB
> MAL_SYS_BUF_SIZE           = 2048  #MAL总大小限制,单位MB
> MAL_COMPRESS_LEVEL         = 0  #MAL消息压缩等级,0表示不压缩
>
> [MAL_INST1]
>   MAL_INST_NAME            = DM01  #实例名,和 dm.ini的INSTANCE_NAME一致
>   MAL_HOST                 = 10.0.0.31  #MAL系统监听TCP连接的IP地址
>   MAL_PORT                 = 5336  #MAL系统监听TCP连接的端口
>   MAL_INST_HOST            = 10.0.0.31  #实例的对外服务IP地址
>   MAL_INST_PORT            = 5236  #实例对外服务端口,和dm.ini的PORT_NUM一致
>   MAL_DW_PORT              = 5436  #实例对应的守护进程监听TCP连接的端口
>   MAL_INST_DW_PORT         = 5536  #实例监听守护进程TCP连接的端口
>
> [MAL_INST2]
>   MAL_INST_NAME            = DM02
>   MAL_HOST                 = 10.0.0.32
>   MAL_PORT                 = 5336
>   MAL_INST_HOST            = 10.0.0.32
>   MAL_INST_PORT            = 5236
>   MAL_DW_PORT              = 5436
>   MAL_INST_DW_PORT         = 5536
> EOF
1.5 配置dmwatcher.ini
#DM01# #DM02#都需要配置
[dmdba@dm01 ~]$ cat>/data/DAMENG/dmwatcher.ini<<EOF
> [GDW1]
>   DW_TYPE                  = GLOBAL  #全局守护类型
>   DW_MODE                  = MANUAL  #故障手动切换模式(AUTO自动)
>   DW_ERROR_TIME            = 20  #远程守护进程故障认定时间
>   INST_ERROR_TIME          = 20  #本地实例故障认定时间
>   INST_RECOVER_TIME        = 60  #主库守护进程启动恢复的间隔时间
>   INST_OGUID               = 45331  #守护系统唯一OGUID值
>   INST_INI                 = /data/DAMENG/dm.ini  #dm.ini文件路径
>   INST_AUTO_RESTART        = 1  #打开实例的自动启动功能
>   INST_STARTUP_CMD         = /home/dmdba/dmdbms/bin/dmserver  #命令行方式启动
>   RLOG_SEND_THRESHOLD      = 0  #指定主库发送日志到备库的时间阈值,默认关闭
>   RLOG_APPLY_THRESHOLD     = 0  #指定备库重演日志的时间阈值,默认关闭6
>
> EOF
1.6 配置dmmonitor.ini
##DM03##
[dmdba@dm03 ~]$ mkdir /home/dmdba/dmmonitor
[dmdba@dm03 ~]$ cat>/home/dmdba/dmmonitor/dmmonitor.ini<<EOF
> MON_DW_CONFIRM             = 0  #0为非确认,1为确认
> MON_LOG_PATH               = ../log  #监视器日志文件存放路径
> MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
> MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位MB
> MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位MB
>
> [GDW1]
>   MON_INST_OGUID           = 45331  #组GDW1的唯一OGUID 值
>   MON_DW_IP                = 10.0.0.31:5436  #IP对应MAL_HOST,PORT对应MAL_DW_PORT
>   MON_DW_IP                = 10.0.0.32:5436
> EOF
1.7 注册服务
## DM01##
[root@dm01 ~]# cd /home/dmdba/dmdbms/script/root
[root@dm01 root]# ./dm_service_installer.sh -t dmserver -p DW01 -dm_ini /data/DAMENG/dm.ini -m mount
[root@dm01 root]# ./dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /data/DAMENG/dmwatcher.ini
## DM02##
[root@dm01 ~]# cd /home/dmdba/dmdbms/script/root
[root@dm01 root]# ./dm_service_installer.sh -t dmserver -p DW02 -dm_ini /data/DAMENG/dm.ini -m mount
[root@dm01 root]# ./dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /data/DAMENG/dmwatcher.ini
##DM03##
[root@dm03 ~]# cd /home/dmdba/dmdbms/script/root/
[root@dm03 root]# ./dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmmonitor/dmmonitor.ini
1.8 启动并配置主备
#DM01#
[dmdba@dm01 bin]$ ./dmserver /data/DAMENG/dm.ini mount
[dmdba@dm01 bin]$ ./disql
disql V8
username:
password:
Server[LOCALHOST:5236]:mode is normal, state is mount
login used time : 82.388(ms)
SQL> SP_SET_OGUID(45331);
DMSQL executed successfully
used time: 313.130(ms). Execute id is 0.
SQL> ALTER DATABASE PRIMARY;
executed successfully
used time: 294.776(ms). Execute id is 0.
SQL>exit;

#DM02#
[dmdba@dm02 bin]$ ./dmserver /data/DAMENG/dm.ini mount
[dmdba@dm02 bin]$ ./disql
disql V8
username:
password:
Server[LOCALHOST:5236]:mode is normal, state is mount
login used time : 228.711(ms)
SQL> SP_SET_OGUID(45331);
DMSQL executed successfully
used time: 376.809(ms). Execute id is 0.
SQL> ALTER DATABASE STANDBY;
executed successfully
used time: 165.644(ms). Execute id is 0.
SQL>exit;

1.9 启动守护进程
#DM01# #DM02#
[dmdba@dm01 bin]$ ./dmwatcher /data/DAMENG/dmwatcher.ini
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY
1.10 启动监视进程
#DM03#
[root@dm03 dmmonitor]# su - dmdba
Last login: Fri Oct 14 14:57:53 CST 2022 on pts/0
[dmdba@dm03 ~]$ cd dmdbms/bin
[dmdba@dm03 bin]$ ./DmMonitorServiceMonitor start
Starting DmMonitorServiceMonitor:                          [ OK ]
[dmdba@dm03 bin]$
1.10.1查看主备状态
#DM03#
[dmdba@dm03 bin]$ ./dmmonitor /home/dmdba/dmmonitor/dmmonitor_no.ini
[monitor]         2022-10-14 15:43:52: DMMONITOR[4.0] V8
[monitor]         2022-10-14 15:43:52: DMMONITOR[4.0] IS READY.

[monitor]         2022-10-14 15:43:52: 收到守护进程(DW02)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN
                  2022-10-14 15:43:52  OPEN           OK        DW02             OPEN        STANDBY   NULL     3        45152           45152

[monitor]         2022-10-14 15:43:52: 收到守护进程(DW01)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN
                  2022-10-14 15:43:52  OPEN           OK        DW01             OPEN        PRIMARY   VALID    3        45153           45153

[monitor]         2022-10-14 15:44:19: [!!! 提示:本监视器不是确认监视器,在故障自动切换模式下如果发生主库故障,本监视器无法执行自动接管 !!!]

[monitor]         2022-10-14 15:44:19: 实例DW01[PRIMARY, OPEN, ISTAT_SAME:TRUE]不可加入其他实例,守护进程状态:OPEN,Open记录状态:VALID
[monitor]         2022-10-14 15:44:19: 实例DW01[PRIMARY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-10-14 15:44:19: 实例DW01[PRIMARY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-10-14 15:44:19: 实例DW02[STANDBY, OPEN, ISTAT_SAME:TRUE]可加入实例DW01[PRIMARY, OPEN, ISTAT_SAME:TRUE]
[monitor]         2022-10-14 15:44:19: 实例DW02[STANDBY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-10-14 15:44:19: 实例DW02[STANDBY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-10-14 15:44:19: 组(GDW1)当前活动实例运行正常

[monitor]         2022-10-14 15:44:19: 所有组中的活动实例运行正常!

DM社区地址

https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值