栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

DM8单机环境改主备集群

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号与备份库接近,说明恢复完整。

四、配置主库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并且修改数据库模式

五、配置备库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并且修改数据库模式

六. 配置监视器

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

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  3月  2 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  3月 16 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  3月 16 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这几个配置文件。多节点主备集群搭建万变不离其宗。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773852.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号