注册
如何对2节点DSC+1节点实时备库集群架构进行拆分
技术分享/ 文章详情 /

如何对2节点DSC+1节点实时备库集群架构进行拆分

干饭王 2024/04/10 809 1 0

1、本文概述

当前数据库的集群架构为2节点DSC+1节点实时备库,实时备库的服务器需要下架,再次上架时间未知,现在要将上述架构拆分为各自独立的2节点DSC与1节点的单机。

2、环境介绍

DSC节点1 DSC节点2 实时备库
主机名 db0 db1 db2
实例名 DSC0 DSC1 DW01

3、备库操作

3.1、登录数据库

核对数据库状态,“处于备库配置状态”

[dmdba@db2 DW01]$ /dm/dmdbms/bin/disql SYSDBA/SYSDBA_PWD:5238

服务器[LOCALHOST:5238]:处于备库配置状态
登录使用时间 : 6.557(ms)
上次登录ip       : 127.0.0.1
上次登录时间   : 2024-04-09 07:13:24
登录失败次数   : 0
口令是否过期   : 未过期
disql V8
SQL>

3.2、调整dm.ini

调整以下配置

MAL_INI=0
ALTER_MODE_STATUS=1
ENABLE_OFFLINE_TS=1

3.3、调整dmarch.ini

注释以下

#[ARCHIVE_REALTIME] 
#ARCH_TYPE = REALTIME #实时归档类型 
#ARCH_DEST = DSC0/DSC1  #实时归档目标实例名 

3.4、重启数据库

[dmdba@db2 DW01]$ /dm/dmdbms/bin/DmServiceDW01 restart       
Stopping DmServiceDW01:                                    [ OK ]
Starting DmServiceDW01:                                    [ OK ]
[dmdba@db2 DW01]$ 

3.5、登录数据库,调整数据库角色

执行以下SQL

[dmdba@db2 DW01]$ /dm/dmdbms/bin/disql SYSDBA/SYSDBA_PWD:5238

服务器[LOCALHOST:5238]:处于备库配置状态
登录使用时间 : 6.557(ms)
上次登录ip       : 127.0.0.1
上次登录时间   : 2024-04-09 07:13:24
登录失败次数   : 0
口令是否过期   : 未过期
disql V8
SQL> alter database normal;
操作已执行
已用时间: 23.988(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 48.317(毫秒). 执行号:0.
SQL> 

3.6、调整DmServiceDW01

调整以下配置

START_MODE=open

3.7、重启数据库

[dmdba@db2 DW01]$ /dm/dmdbms/bin/DmServiceDW01 restart       
Stopping DmServiceDW01:                                    [ OK ]
Starting DmServiceDW01:                                    [ OK ]
[dmdba@db2 DW01]$ 

3.8、登录数据库,检查数据库状态

[dmdba@db2 DW01]$/dm/dmdbms/bin/disql SYSDBA/SYSDBA_PWD:5238

服务器[LOCALHOST:5238]:处于普通打开状态
登录使用时间 : 5.339(ms)
上次登录ip       : 127.0.0.1
上次登录时间   : 2024-04-09 07:13:24
登录失败次数   : 0
口令是否过期   : 未过期
disql V8
SQL>

3.9、收尾工作,卸载守护服务和监视器服务

3.9.1、卸载守护服务

[root@db2 root]# pwd
/dm/dmdbms/script/root
[root@db2 root]# 
 [root@db2 root]# ./dm_service_uninstaller.sh -n DmWatcherServiceWatcher
是否删除服务(DmWatcherServiceWatcher)?(Y/y:是 N/n:否): y
Removed /etc/systemd/system/multi-user.target.wants/DmWatcherServiceWatcher.service.
删除服务文件(/usr/lib/systemd/system/DmWatcherServiceWatcher.service)完成
删除服务(DmWatcherServiceWatcher)完成
[root@db2 root]#
[root@db2 root]# 

3.9.2、卸载监视器服务

[root@db2 root]#  ./dm_service_uninstaller.sh -n DmMonitorServiceMonitor
是否删除服务(DmMonitorServiceMonitor)?(Y/y:是 N/n:否): y
Removed /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMonitor.service.
删除服务文件(/usr/lib/systemd/system/DmMonitorServiceMonitor.service)完成
删除服务(DmMonitorServiceMonitor)完成
[root@db2 root]# 

此致,1节点实时备库已经从2节点DSC+1节点实时备库中剥离,成为一个独立的单机。

3、主库

3.1、检查数据库当前状态,“处于主库配置状态”

[dmdba@db0 dm]$ 
[dmdba@db0 dm]$  /dm/dmdbms/bin/disql SYSDBA/SYSDBA_PWD:5237

服务器[LOCALHOST:5237]:处于主库配置状态
登录使用时间 : 4.283(ms)
上次登录ip       : 127.0.0.1
上次登录时间   : 2024-04-09 08:11:24
登录失败次数   : 0
口令是否过期   : 未过期
disql V8
SQL>

3.2、调整dm.ini

DSC中2个节点都要调整以下配置

ALTER_MODE_STATUS=1
ENABLE_OFFLINE_TS=1

3.3、调整dmarch.ini

DSC中2个节点都要注释以下

#[ARCHIVE_REALTIME1]
#ARCH_TYPE         = REALTIME
#ARCH_DEST         = DW01

3.4、重启数据库

3.4.1、节点1执行重启

[dmdba@db0 DSC0]$ /dm/dmdbms/bin/DmServiceDSC restart 
DmServiceDSC service is stopped.
Starting DmServiceDSC: connnect dmasmtool(dmasmtoolm) successfully.
                                                           [ OK ]
[dmdba@db0 DSC0]$ 

3.4.2、节点2 执行关闭

[dmdba@db1 DSC1]$ /dm/dmdbms/bin/DmServiceDSC stop
Stopping DmServiceDSC:                                     [ OK ]
[dmdba@db1 DSC1]$ 

3.5、登录数据库,调整数据库角色

只需在节点1上执行以下SQL

[dmdba@db0 dm]$ 
[dmdba@db0 dm]$  /dm/dmdbms/bin/disql SYSDBA/SYSDBA_PWD:5237

服务器[LOCALHOST:5237]:处于主库配置状态
登录使用时间 : 4.283(ms)
上次登录ip       : 127.0.0.1
上次登录时间   : 2024-04-09 08:20:20
登录失败次数   : 0
口令是否过期   : 未过期
disql V8
SQL> alter database normal;
操作已执行
已用时间: 225.332(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 154.092(毫秒). 执行号:0.
SQL>

3.6、调整DmServiceDSC

DSC中2个节点都要调整以下配置

START_MODE=open

3.7、重启数据库

[dmdba@db0 DSC0]$ /dm/dmdbms/bin/DmServiceDSC restart 
DmServiceDSC service is stopped.
Starting DmServiceDSC: connnect dmasmtool(dmasmtoolm) successfully.
                                                           [ OK ]
[dmdba@db0 DSC0]$ 

[dmdba@db1 DSC1]$ 
[dmdba@db1 DSC1]$ /dm/dmdbms/bin/DmServiceDSC start
Starting DmServiceDSC: connnect dmasmtool(dmasmtoolm) successfully.
                                                           [ OK ]
[dmdba@db1 DSC1]$ 

3.8、检查数据库状态

[dmdba@db0 dm]$  /dm/dmdbms/bin/disql SYSDBA/SYSDBA_PWD:5237

服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 4.592(ms)
上次登录ip       : 127.0.0.1
上次登录时间   : 2024-04-09 08:45:13
登录失败次数   : 0
口令是否过期   : 未过期
disql V8
SQL> 

[dmdba@db1 DSC1]$ 
[dmdba@db1 DSC1]$ /dm/dmdbms/bin/disql SYSDBA/SYSDBA_PWD:5237

服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 13.508(ms)
上次登录ip       : 127.0.0.1
上次登录时间   : 2024-04-09 09:23:14
登录失败次数   : 0
口令是否过期   : 未过期
disql V8
SQL> 

3.9、登录监视器

[dmdba@db1 DSC1]$ /dm/dmdbms/bin/dmcssm ini_path=/dm/dmdbms/bin/dmcssm.ini
[monitor]         2024-04-09 10:02:07: CSS MONITOR V8
[monitor]         2024-04-09 10:02:07: CSS MONITOR SYSTEM IS READY.

[monitor]         2024-04-09 10:02:07: Wait CSS Control Node choosed...
[monitor]         2024-04-09 10:02:08: Wait CSS Control Node choosed succeed.

show

monitor current time:2024-04-09 10:02:11, n_group:3
=================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] ========================================

[CSS0] auto check = TRUE, global info:
[ASM0] auto restart = FALSE
[DSC0] auto restart = FALSE
[CSS1] auto check = TRUE, global info:
[ASM1] auto restart = FALSE
[DSC1] auto restart = FALSE

ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-04-09 10:02:10    CSS0          0         11286   Control Node OPEN               WORKING      OK           TRUE         14423             72043           
        2024-04-09 10:02:10    CSS1          1         11286   Normal Node  OPEN               WORKING      OK           TRUE         17779             75404           

=================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-04-09 10:02:10    ASM0          0         11276   Control Node OPEN               WORKING      OK           TRUE         20224             77828           
        2024-04-09 10:02:10    ASM1          1         11277   Normal Node  OPEN               WORKING      OK           TRUE         23107             80720           

=================== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 0] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-04-09 10:02:10    DSC0          0         5237    Control Node OPEN               WORKING      OK           TRUE         39491917          39494362        
        2024-04-09 10:02:10    DSC1          1         5237    Normal Node  OPEN               WORKING      OK           TRUE         39667253          39669447        

==================================================================================================================

3.10、收尾操作

3.10.1、收尾工作,卸载守护服务和监视器服务

3.10.1.1 卸载守护服务

[root@db1 ~]# /dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher
是否删除服务(DmWatcherServiceWatcher)?(Y/y:是 N/n:否): y
Removed /etc/systemd/system/multi-user.target.wants/DmWatcherServiceWatcher.service.
删除服务文件(/usr/lib/systemd/system/DmWatcherServiceWatcher.service)完成
删除服务(DmWatcherServiceWatcher)完成
[root@db1 ~]# 

3.10.1.1 卸载监视器服务

[root@db1 ~]# /dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmMonitorServiceMonitor
是否删除服务(DmMonitorServiceMonitor)?(Y/y:是 N/n:否): y
Removed /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMonitor.service.
删除服务文件(/usr/lib/systemd/system/DmMonitorServiceMonitor.service)完成
删除服务(DmMonitorServiceMonitor)完成
[root@db1 ~]# 
[root@db1 ~]# 

此致,2节点DSC已经从2节点DSC+1节点实时备库中剥离,成为一套独立的2节点DSC。

4、总结

通过以上操作,可以完美将2节点的DSC+1节点实时备库集群拆为拆分为各自独立的2节点DSC,1节点的单机。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服