DM8单机环境改主备集群

一、前言

DM 数据守护是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案。通过部署 DM 数据守护,可以在硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况下,避免数据损坏、丢失,保障数据安全,并且可以快速恢复数据库服务,满足用户不间断提供数据库服务的要求。

1.1 环境信息

机器名IP地址测试状态操作系统
DWSW1192.168.1.128单实例:DMSERVER中标麒麟
DWSW2192.168.1.129单实例:DMSERVER中标麒麟
DWSW2192.168.1.129MONITOR中标麒麟

1.2 端口规划

实例名PORT_NUMMAL_INST_PORTMAL_INST_DW_PORTMAL_HOSTMAL_PROTMAL_DW_PORT
DMSERVER_PRI5236523633141192.168.1.1286114152141
DMSERVER_STA5236523633141192.168.1.1286114152141

二、前期工作准备

2.1 配置前记得使用root用户检查主备机的防火墙有没有关

检查防火墙状态:systemctl status firewalld
永久关闭防火墙:systemctl disable firewalld
关闭防火墙:systemctl stop firewalld

2.3 分别检查当前两个数据库的LSN号

SQL> select CUR_LSN FROM V$RLOG;
行号     CUR_LSN             
1          229514
SQL> select CUR_LSN FROM V$RLOG;
行号     CUR_LSN             
1          75774

三、数据准备(联机备份脱机还原)

配置数据守护 V4.0 之前,必须先通过备份还原方式同步各数据库的数据,确保各数据 的数据保持完全一致。主库可以是新初始化的数据库,也可以是正在生产、使用中的数据库。不能使用分别初始化库或者直接拷贝数据文件的方法。

3.1 联机备份

联机备份

3.2 脱机还原恢复

脱机还原恢复

3.3 使用DMRAMN执行更新DB_MAGIC恢复

如果还原后,数据已经处于一致性状态了,则可以使用更新DB_MAGIC方式恢复,前提是不需要重做日志。Recover successfullly并且恢复后的LSN号与备份库接近,说明恢复完整。
使用DMRAMN执行更新DB_MAGIC恢复

四、配置主库DMSERVER_PRI

4.1 修改dm.ini(详情见DM8系统管理员手册)

INSTANCE_NAME                   = DMSERVER_PRI
PORT_NUM                        = 5236
RLOG_APPEND_LOGIC               = 1
REDOS_MAX_DELAY                 = 180
MAL_INI                          = 1                                   
ARCH_INI                         = 1
DW_INACTIVE_INTERVAL            = 60 
ENABLE_OFFLINE_TS                = 2
ALTER_MODE_STATUS               = 0

4.2 配置dmmal.ini

MAL_BUF_SIZE              = 2048     
MAL_VPOOL_SIZE            = 5120                                                                        
MAL_CHECK_INTERVAL          = 30                                                                                
MAL_CONN_FAIL_INTERVAL    = 10                                                                          
MAL_TEMP_PATH             = /dm/dmdbms/data/MAL_TEMP
[MAL_DMSERVER_PRI]
MAL_INST_NAME                 = DMSERVER_PRI                   
MAL_HOST                      = 192.168.1.128               
MAL_PORT                      = 61141                                                
MAL_INST_HOST                 = 192.168.1.128                       
MAL_INST_PORT                 = 5236 
MAL_DW_PORT                  = 52141                                         
MAL_INST_DW_PORT             = 33141
[MAL_DMSERVER_STA]
MAL_INST_NAME                 = DMSERVER_STA                  
MAL_HOST                      = 191.168.1.129                
MAL_PORT                      = 61141                                                
MAL_INST_HOST                 = 192.168.1.129                     
MAL_INST_PORT                 = 5236                                        
MAL_DW_PORT                     = 52141                                         
MAL_INST_DW_PORT               = 33141

4.3 修改dmarch.ini

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME 						
ARCH_DEST = DMSERVER_STA
[ARCHIVE_DMSERVER_PRI]
ARCH_TYPE            = LOCAL        
ARCH_DEST            = /dm/dmarch        
ARCH_FILE_SIZE       = 128        
ARCH_SPACE_LIMIT     = 0        
ARCH_FLUSH_BUF_SIZE  = 0        
ARCH_HANG_FLAG       = 1 

4.4 配置dmwatcher.ini

[GROUP_DMSERVER]
DW_TYPE 							= GLOBAL 						
DW_MODE 							= AUTO 							
DW_ERROR_TIME 				= 10 						
INST_RECOVER_TIME 		= 60 											
INST_ERROR_TIME 			= 60 								
INST_OGUID 						= 453331 					
INST_INI 							= /dm/dmdbms/data/DMSERVER/dm.ini 
INST_AUTO_RESTART 		= 1 												
INST_STARTUP_CMD 			= /dm/dmdbms/bin/DmServiceDMSERVER restart
RLOG_SEND_THRESHOLD 	= 0 												
RLOG_APPLY_THRESHOLD 	= 0 

4.5 启动主库到mount状态

[dmdba@DWSW1 bin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER:                        [ok]
[dmdba@DWSW1 bin]$ ./DmServiceDMSERVER start mount
Starting DmServiceDMSERVER:                         [ok]

4.6 设置OGUID并且修改数据库模式

设置OGUID并且修改数据库模式

五、配置备库DMSERVER_STA

5.1 拷贝主库所有ini文件到备库

拷贝主库所有ini文件到备库,只需要修修改部分配置参数即可。(如果备库有数据,建议提前将ini文件备份不要直接覆盖

[dmdba@DWSW1 DMSERVER]$ scp *.ini 
dmdba@192.168.1.129:/dm/dmdbms/data/DMSERVER

在这里插入图片描述

5.2 修改dm.ini配置文件

INSTANCE_NAME                   = DMSERVER_STA
PORT_NUM                        = 5236

5.3 修改dmarch.ini配置文件

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME 						
ARCH_DEST = DMSERVER_PRI
[ARCHIVE_DMSERVER_STA]
ARCH_TYPE            = LOCAL        
ARCH_DEST            = /dm/dmarch        
ARCH_FILE_SIZE       = 128        
ARCH_SPACE_LIMIT     = 0        
ARCH_FLUSH_BUF_SIZE  = 0        
ARCH_HANG_FLAG       = 1  

5.3 【dmmal.ini】

无需修改

5.4【dmwatcher.ini】

无需修改

5.5 启动备库到mount状态

[dmdba@DWSW2 bin]$ ./DmServiceDMSERVER start mount
Starting DmServiceDMSERVER:                         [ok]   

5.6 设置OGUID并且修改数据库模式

设置OGUID并且修改数据库模式

六. 配置监视器

由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知 实时备库接管为新的主库,具有自动故障处理的功能。

6.1 配置确认监视器

MON_DW_CONFIRM                          = 1       
MON_LOG_PATH              = /dm/dmdbms/log/log_DMSERVER  
MON_LOG_INTERVAL                        = 60      
MON_LOG_FILE_SIZE               = 512     
MON_LOG_SPACE_LIMIT          = 1024   
MON_TAKEOVER_SHUTDOWN      =10 
[GROUP_DMSERVER]
MON_INST_OGUID                          = 453331   
MON_DW_IP                         = 192.168.1.128:52141
MON_DW_IP                         = 192.168.1.129.52141

6.2 修改普通监视器

MON_DW_CONFIRM                          = 0  

七.启动守护进程

7.1 启动主库守护进程

[dmdba@DWSW1 bin]$ ./DmWatcherService_DMSERVER start
Starting DmWatcherService_DMSERVER:                        [ OK ]

7.2 启动备库守护进程

[dmdba@DWSW2 bin]$ ./DmWatcherService_DMSERVER start
Starting DmWatcherService_DMSERVER:                        [ OK ]

守护进程启动后,进入 Startup 状态,此时实例都处于 Mount 状态。守护进程开始 广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将 本地实例 Open,并切换为 Open 状态​7.3可以

7.3 检验数据库是否自动拉起到open状态

[dmdba@DWSW1 bin]$ ./disql SYSDBA/SYSDBA:5236
服务器[LOCALHOST:5236]:处于主库打开状态

[[dmdba@DWSW2 bin]$ ./disql SYSDBA/SYSDBA:5236
服务器[LOCALHOST:5236]:处于备库打开状态

八. 启动监视器

启动监视器:./dmmonitor /dm/data/dmmonitor.ini 监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入 help 命令, 查看各种命令说明使用,结合实际情况选择使用。 至此一主一备的实时数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况下, 在监视器上执行 show 命令,可以监控到所有实例都处于 Open 状态,所有守护进程也都处 于 Open 状态,即为正常运行状态。

[dmdba@DWSW2 bin]$ ./DmMonitorService_DMSERVER start
Starting DmMonitorService_DMSERVER:                        [ OK ]

在这里插入图片描述

九、后续补充

9.1 守护集群的关闭顺序

关闭监视器–备库守护进程–主库守护进程–主库数据库服务–备库数据库服务。
由于守护进程中配置拉起数据库命令启动时候直接启动守护进程,数据库会被自动拉起。

9.2 注册数据库服务

[root@DWSW1 root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/data/DMSERVER/dm.ini -p DMSERVER
[root@DWSW1 bin]# ll DmServiceDMSERVER 
-rwxr-xr-x 1 dmdba dinstall 16463  32 18:28 DmServiceDMSERVER

9.3 注册数据守护服务

[root@DWSW1 root]# ./dm_service_installer.sh -t dmwatcher -watcher_ini /dm/dmdbms/data/DMSERVER/dmwatcher.ini -p DMSERVER
[root@DWSW1 bin]# ll DmWatcherServiceDMSERVER 
-rwxr-xr-x 1 dmdba dinstall 13769  316 10:44 DmWatcherServiceDMSERVER

9.4 注册监视器服务

[root@DWSW2 root]# ./dm_service_installer.sh -t dmmonitor -monitor_ini /dm/dmdbms/bin/dmmonitor_DMSERVER.ini  -p DMSERVER
[root@DWSW2 bin]# ll DmMonitorServiceDMSERVER 
-rwxr-xr-x 1 dmdba dinstall 13784  316 10:51 DmMonitorServiceDMSERVER

十、主备故障分析及修复

10.1 测试DWSW2机器突然挂机并无法启动。(包含确认监视器、备机数据库、备机守护进程)

10.1.1 查看主机数据库状态

在这里插入图片描述

10.1.2 查看数据库服务日志

192.168.1.129备库连接失败,向 DMSERVER_STA(实时备库 同步数据失败)
在这里插入图片描述

10.1.3 查看守护进程日志

无法收到远程备机守护进程消息,需要通过确认监视器确认故障处理。本地 dmwatcher 处于 CONFIRM 状态,但没有确认监视器或监视器确认无法切换到 FAILOVER。

在这里插入图片描述

10.1.4 结论

监视器建议单独部署,如果和主备库共用同一台服务器故障,主库将挂起或备库无法转为主库,只能改为单机继续提供服务。

10.2 测试停掉主库服务和主库守护进程

10.2.1 停掉主库守护和主机数据库

[dmdba@DWSW1 bin]$ ./DmWatcherService_DMSERVER stop
Stopping DmWatcherService_DMSERVER:                        [ OK ]
[dmdba@DWSW1 bin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER:                                [ OK ]

10.2.2 监视器监控到主库DMSERVER_PRI异常,确认监视器自动将DMSERVER_STA备库切换为主库PRIMARY,集群正常对外服务。

在这里插入图片描述
在这里插入图片描述

10.2.3 DMSERVER_PRI重新启动后,重新拉起异常节点的数据库守护进程与数据库服务进程后,确认监视器将其数据库状模式切换为standby模式。

在这里插入图片描述
在这里插入图片描述

10.3 测试停掉备库服务和备库守护进程

10.3.1 停掉备库守护和数据库服务

[dmdba@DWSW2 bin]$ ./DmWatcherServiceDMSERVER  stop
Stopping DmWatcherServiceDMSERVER:                         [ OK ]
[dmdba@DWSW2 bin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER:                                [ OK ]

10.3.2 当数据库守护服务停止时,确认监视器提示接收备机守护进程消息超时,自动将数据库状态切换为ERROR,此时不影响数据库集群的对外服务

在这里插入图片描述

10.3.3 重启备库服务,确认监视器重新接收到备机的守护进程消息,自动将备机的数据库状态切换为OPEN继续对外服务

在这里插入图片描述

10.4 测试主库备库分别被kill进程

10.4.1 当kill掉主库数据库服务时

[dmdba@DWSW1 bin]$ ps -ef|grep dmserver
dmdba       8650       1  0 16:47 pts/0    00:00:01 /dm/dmdbms/bin/dmserver path=/dm/dmdbms/data/DMSERVER/dm.ini -noconsole
dmdba       9106    4444  0 16:54 pts/0    00:00:00 grep dmserver
[dmdba@DWSW1 bin]$ kill -9 8650

10.4.2 主库服务被kill掉,监视器监控到主库DMSERVER_PRI的异常DMSERVER_STA备库切换为主库

在这里插入图片描述

10.4.3当DMSERVER_PRI数据库服务被数据库守护服务拉起后重新加入主备集群,状态改为为备库继续提供服务

在这里插入图片描述
在这里插入图片描述

10.4.4 当kill掉备库服务时

[dmdba@DWSW2 bin]$ ps -ef|grep dmserver
dmdba      10764   10736 15 16:42 pts/1    00:00:00 /dm/dmdbms/bin/dmserver path=/dm/dmdbms/data/DMSERVER/dm.ini -noconsole
dmdba      10848    9546  0 16:42 pts/1    00:00:00 grep dmser
[dmdba@DWSW2 bin]$ kill -9 10764

10.4.5 备库数据库服务被kill掉,备机的守护进程会尝试拉起数据库服务,确认监视器提示备机数据库为ERROR。当守护进程自动拉起数据库服务后,确认监视器将备机数据库状态又切换为OPEN状态

在这里插入图片描述
在这里插入图片描述

十一、小结

简单讲DM 实时主备由一个主库以及一个或者多个配置了实时归档的备库组成,主库提供完整的数据库功能,备库提供只读服务,主要需要注意dm.ini,dmarch.ini,dmwatcher.ini,dmmal.ini这几个配置文件。多节点主备集群搭建万变不离其宗。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值