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

达梦DMDSC+异步备机部署

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

达梦DMDSC+异步备机部署

讲解

DMDSC+异步备机,就是在原有的DMDSC集群上,为其部署一台备库,但该备库复制数据时,是异步的。

需要先明确一下概念,DMDSC集群,集群里每个数据库服务,都是1个节点。所有数据库服务(所有节点)视为一个DSC集群,它们是一个整体,不管有多少节点。
说通俗点,把这些节点,看成一个数据库服务即可。

其次,DMDSC集群这么多节点,虽然是一个整体,但是会有一个节点,负责控制其他的节点(就像个领头羊),那个节点的名字叫控制节点,其他节点都叫普通节点。

控制节点一般都是最早启动的那个服务。控制节点可以控制其他节点一起关闭(正常关闭集群时,只需在控制节点执行关闭命令,所有节点会同时跟它一起关闭,但是开启还得手动一个个开),
同时也具备切换功能,比如控制节点突发意外死亡了,那么其他的普通节点会切换为控制节点。

接下来说DMDSC+异步备机,主库是DMDSC集群(上面说了,不管DSC集群多少个节点,它们是一个整体),备库(异步备机)是一个单实例。
通俗点说,DMDSC集群这一堆节点(数据库服务)都是主库,备库是一个单机实例而已。

环境准备

这里已经搭建好DSC集群,没搭建的先看此处:达梦DMDSC集群部署搭建_dcps75321的博客-CSDN博客
然后准备一台新的linux机器,安装dm8并初始化好一个实例启动即可

本文使用以下实例名:
DSC0,是dsc的0号节点
DSC1,是dsc的1号节点
DSC_DW,是异步备机 


开始部署搭建 【关闭DSC】

关闭DSC所有节点的数据库服务,可直接在控制节点执行
若是后台启动,那就全部手动关闭

DSC0节点:

./DmService stop

DSC1节点:

./DmService stop

【DSC集群做备份】

在DSC集群任意节点

查看是否开启DmAP服务,没开则执行以下

./DmAPService start

启动dmrman

./dmrman use_ap=2 dcr_ini=/dmdbms/config/dmdcr.ini

做备份

RMAN>BACKUP DATAbase '/dmdbms/dmdata/dsc0_config/dm.ini' FULL BACKUPSET 
'/backup/db_full_bak_for_DSC'

校验备份,显示successfully,即为备份集有效。

check BACKUPSET  '/backup/db_full_bak_for_DSC'

做完备份后把备份拷贝到异步备机上

scp -r dmdba@192.168.238.130:/dmbak

配置异步备库 【关闭并检查备库机器】

关闭备库数据库服务

./DmService stop 

查看是否开启DmAP服务,没开则执行以下

./DmAPService start 

【备库脱机还原恢复】

开启dmrman

./dmrman USE_AP=2

使用 DMDSC 库的备份集还原恢复到异步备库,按顺序执行

RESTORE DATAbase '/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dmbak/db_full_bak_for_DSC';
RECOVER DATAbase '/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dmbak/db_full_bak_for_DSC';
RECOVER DATAbase '/dmdata/DAMENG/dm.ini' update db_magic;

【配置dm.ini】

依次配置DMDSC主库每个节点与异步备库的dm.ini文件

(1)修改DSC0的dm.ini
INSTANCE_NAME = DSC0 
PORT_NUM = 5237     #数据库实例监听端口 
DW_INACTIVE_INTERVAL = 60        #接收守护进程消息超时时间 
ALTER_MODE_STATUS = 0       #不允许手工方式修改实例模式/状态 
ENABLE_OFFLINE_TS = 2        #不允许备库 OFFLINE 表空间 
MAL_INI = 1         #打开 MAL 系统 
ARCH_INI = 1           #打开归档配置 
RLOG_SEND_APPLY_MON = 64        #统计最近 64 次的日志发送信息 
TIMER_INI = 1 
(2)修改DSC1的dm.ini
NSTANCE_NAME = DSC1
PORT_NUM = 5237     #数据库实例监听端口 
DW_INACTIVE_INTERVAL = 60        #接收守护进程消息超时时间 
ALTER_MODE_STATUS = 0       #不允许手工方式修改实例模式/状态 
ENABLE_OFFLINE_TS = 2        #不允许备库 OFFLINE 表空间
MAL_INI = 1         #打开 MAL 系统 
ARCH_INI = 1           #打开归档配置 
RLOG_SEND_APPLY_MON = 64        #统计最近 64 次的日志发送信息 
TIMER_INI = 1
(3)修改DSC_DW的dm.ini文件
INSTANCE_NAME = DSC_DW
PORT_NUM = 5237     #数据库实例监听端口 
DW_INACTIVE_INTERVAL = 60        #接收守护进程消息超时时间 
ALTER_MODE_STATUS = 0       #不允许手工方式修改实例模式/状态 
ENABLE_OFFLINE_TS = 2        #不允许备库 OFFLINE 表空间 
MAL_INI = 1         #打开 MAL 系统 
ARCH_INI = 1           #打开归档配置 
RLOG_SEND_APPLY_MON = 64        #统计最近 64 次的日志发送信息 
TIMER_INI = 1 

【配置dmmal.ini】

在 DMDSC 集群的 dmmal.ini 文件基础上,增加备库 DSC_DW 的配置项。
所有节点实例的 dmmal.ini 文件内容是一致的,修改之后,拷贝到dsc所有节点,以及异步备机。

MAL_CHECK_INTERVAL = 30
MAL_CONN_FAIL_INTERVAL = 10
[MAL_INST0]
 MAL_INST_NAME = DSC0
 MAL_HOST = 10.10.1.115
 MAL_PORT = 11246
 MAL_INST_HOST = 192.168.1.115
 MAL_INST_PORT = 5237
 MAL_DW_PORT = 11296
MAL_INST_DW_PORT = 11306
[MAL_INST1]
 MAL_INST_NAME = DSC1 
 MAL_HOST = 10.10.1.116
 MAL_PORT = 11246 
 MAL_INST_HOST = 192.168.1.116
 MAL_INST_PORT = 5237
 MAL_DW_PORT = 11296
MAL_INST_DW_PORT = 11306
[MAL_INST2]
 MAL_INST_NAME = DSC_DW
 MAL_HOST = 10.10.1.117
 MAL_PORT = 11246
 MAL_INST_HOST = 192.168.1.117
 MAL_INST_PORT = 5237
 MAL_DW_PORT = 11296
MAL_INST_DW_PORT = 11306

【配置dmarch.ini】

编辑各个节点的dmarch.ini,增加异步归档配置

(1)修改DSC0的dmarch.ini
ARCH_LOCAL_SHARE=1
ARCH_LOCAL_SHARE_CHECK=0

[ARCHIVE_LOCAL1]
  ARCH_TYPE     = LOCAL
  ARCH_DEST     = +DMARCH/DSC0/arch
  ARCH_FILE_SIZE        = 1024
  ARCH_SPACE_LIMIT      = 40960

[ARCH_REMOTE1]
  ARCH_TYPE     = REMOTE
  ARCH_DEST     = DSC1
  ARCH_INCOMING_PATH   =+DMARCH/DSC1/arch_remote
  ARCH_FILE_SIZE        = 1024
  ARCH_SPACE_LIMIT      = 40960

[ARCHIVE_ASYNC] 
ARCH_TYPE = ASYNC
ARCH_DEST = DSC_DW
ARCH_TIMER_NAME = RT_TIMER
(2)修改DSC1的dmarch.ini
ARCH_LOCAL_SHARE=1
ARCH_LOCAL_SHARE_CHECK=0

[ARCHIVE_LOCAL1]
  ARCH_TYPE     = LOCAL
  ARCH_DEST     = +DMARCH/DSC1/arch
  ARCH_FILE_SIZE        = 1024
  ARCH_SPACE_LIMIT      = 40960

[ARCH_REMOTE1]
  ARCH_TYPE     = REMOTE
  ARCH_DEST     = DSC0
  ARCH_INCOMING_PATH   =+DMARCH/DSC0/arch_remote
  ARCH_FILE_SIZE        = 1024
  ARCH_SPACE_LIMIT      = 40960

[ARCHIVE_ASYNC] 
ARCH_TYPE = ASYNC
ARCH_DEST = DSC_DW
ARCH_TIMER_NAME = RT_TIMER
(3)修改DSC_DW的dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400

【配置dmtimer.ini】 (1)配置DSC0的dmtimer.ini
[RT_TIMER]#和dmarch.ini中的ARCH_TIMER_NAME一致
TYPE = 2
 FREQ_MONTH_WEEK_INTERVAL = 1
 FREQ_SUB_INTERVAL = 0
 FREQ_MINUTE_INTERVAL = 0
 START_TIME = 01:00:00
 END_TIME = 01:00:10
 DURING_START_DATE = 2016-02-11 17:36:09
DURING_END_DATE = 9999-12-31 23:59:59
 NO_END_DATE_FLAG = 1
 DESCRIBE = RT TIMER
 IS_VALID = 1 
 (2)配置DSC1的dmtimer.ini
[RT_TIMER]#和dmarch.ini中的ARCH_TIMER_NAME一致 
TYPE = 2
 FREQ_MONTH_WEEK_INTERVAL = 1
 FREQ_SUB_INTERVAL = 0
 FREQ_MINUTE_INTERVAL = 0
 START_TIME = 01:00:00
 END_TIME = 01:00:10
 DURING_START_DATE = 2016-02-11 17:36:09
DURING_END_DATE = 9999-12-31 23:59:59
 NO_END_DATE_FLAG = 1
 DESCRIBE = RT TIMER
 IS_VALID = 1

【配置dmwatcher.ini】 (1)配置DSC0的dmwatcher.ini
[GRP1]
 DW_TYPE = LOCAL
 DW_MODE = MANUAL
 DW_ERROR_TIME = 60
 INST_RECOVER_TIME = 60
 INST_ERROR_TIME = 35
INST_INI = /dmdbms/dmdata/dsc0_config/dm.ini
DCR_INI = /dmdbms/config/dmdcr.ini
 INST_OGUID = 453331
 INST_STARTUP_CMD = /dmdbms/bin/dmserver
 INST_AUTO_RESTART = 0
 RLOG_SEND_THRESHOLD = 0
 RLOG_APPLY_THRESHOLD = 0
(2)配置DSC1的dmwatcher.ini
[GRP1]
 DW_TYPE = LOCAL
 DW_MODE = MANUAL
 DW_ERROR_TIME = 60
 INST_RECOVER_TIME = 60
 INST_ERROR_TIME = 35
INST_INI = /dmdbms/dmdata/dsc1_config/dm.ini
DCR_INI = /dmdbms/config/dmdcr.ini
 INST_OGUID = 453331
 INST_STARTUP_CMD = /dmdbms/bin/dmserver
 INST_AUTO_RESTART = 0
 RLOG_SEND_THRESHOLD = 0
 RLOG_APPLY_THRESHOLD = 0
(3)配置DSC_DW的dmwatcher.ini
[GRP1]
 DW_TYPE = LOCAL
 DW_MODE = MANUAL
 DW_ERROR_TIME = 60
 INST_RECOVER_TIME = 60
 INST_ERROR_TIME = 35
INST_INI = /dmdata/DAMENG/dm.ini
 INST_OGUID = 453331
 INST_STARTUP_CMD = /dmdbms/bin/dmserver
 INST_AUTO_RESTART = 0
 RLOG_SEND_THRESHOLD = 0
 RLOG_APPLY_THRESHOLD = 0

【配置dmmonitor.ini】

配置在备库的/dmdbms/bin目录下

MON_LOG_PATH = /dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 64
MON_LOG_SPACE_LIMIT = 0
MON_DW_ConFIRM = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 10.10.1.115:11296/10.10.1.116:11296
MON_DW_IP = 10.10.1.117:11296

【启动主备库】 (1)启动DMDSC主库

以mount状态启动,若是后台启动,改启动脚本START_MODE=open改为START_MODE=mount

./DmService start

把dsc所有节点全部启动,使其所有节点都启动成功


【启动异步备库】 (1)修改DmService后台启动脚本

以mount状态启动

vi DmService

把START_MODE=open改为START_MODE=mount

(2)启动异步备库库数据库服务
./DmService start

【设置OGUID】

启动命令行工具disql,连接DMDSC集群中的任意一个节点,设置DMDSC主库的OGUID值

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(453331);
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

再使用disql,连接异步备库,设置备库OGUID值

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(453331);
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

【修改主库模式】

使用disql,连接DMDSC集群中的任意一个节点,设置DMDSC主库的primary模式

SQL>ALTER DATAbase PRIMARY;

使用disql,连接异步备库,设置备库的standby模式

SQL>ALTER DATAbase STANDBY;

【配置守护进程】 (1)修改守护进程后台启动脚本

在每个节点的目录/dmdbms/bin/service_template
拷贝DmWatcherService文件到/ dmdbms/bin目录下
然后修改DmWatcherService中 INI_PATH为指定守护进程配置文件dmwatcher.ini的对应的路径。

(2)启动守护进程

启动DSC0的守护进程

./DmWatcherService start

启动DSC1的守护进程

./DmWatcherService start

启动DSC_DW的守护进程

./DmWatcherService start

【确认数据库状态】

登录disql,查看DMDSC主库两个节点是否为主库打开状态
登录disql,查看异步备库节点是否为备库打开状态

【修改dmdcr.ini脚本】可选执行

修改DMDSC两个节点上的dmdcr.ini文件,让dmcss自动拉起dmasm和dmserver服务
这样只需要分别在两台机器上启动dmcss服务即可拉起dmasm服务和dmserver服务。

(1)修改DSC0节点:
DMDCR_PATH     = /dev/asm-dmdcr
DMDCR_MAL_PATH =/dmdbms/config/dmasvrmal.ini  
DMDCR_SEQNO   = 0

DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD = /dmdbms/bin/dmasmsvr dcr_ini=/dmdbms/config/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 60
DMDCR_DB_STARTUP_CMD = /dmdbms/bin/dmserver path=/dmdbms/dmdata/dsc0_config/dm.ini dcr_ini=/dmdbms/config/dmdcr.ini
(2)修改DSC1节点:
DMDCR_PATH     = /dev/asm-dmdcr
DMDCR_MAL_PATH =/dmdbms/config/dmasvrmal.ini  
DMDCR_SEQNO   = 1

DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD = /dmdbms/bin/dmasmsvr dcr_ini=/dmdbms/config/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 60
DMDCR_DB_STARTUP_CMD = /dmdbms/bin/dmserver path=/dmdbms/dmdata/dsc1_config/dm.ini dcr_ini=/dmdbms/config/dmdcr.ini

修改之后需要重启DMDSC+异步备机,才可以生效
(1)关闭异步备机的守护进程

./DmWatcherService stop

(2)关闭DMDSC主库两个节点的守护进程

./DmWatcherService stop

(3)关闭DMDSC主库两个节点的数据库服务

./DmService stop

(4)关闭异步备机的数据库服务

./DmService stop

(5)关闭DMDSC主库两个节点的ASM服务

./DmASMSvrService stop

(6)关闭DMDSC主库两个节点的CSS服务

./DmCSSService stop

启动DMDSC+异步备机集群
(1)启动DMDSC主库两个节点的CSS服务

./DmCSSService start

等待2分钟,查看css是否将asm和server拉起,拉起后再启动下面的服务

ps -ef | grep dmdbms

(4)启动异步备机的数据库服务

./DmService start

(5)启动DMDSC主库两个节点的守护进程

./DmWatcherService start

(6)启动异步备机的守护进程

./DmWatcherService start

【关闭DMDSC集群】可选执行

必须严格按照以下顺序停止DMDSC集群,每个操作步骤直接的时间间隔不要超过30秒

(1)关闭异步备机的守护进程
./DmWatcherService stop
(2)关闭DMDSC主库两个节点的守护进程
./DmWatcherService stop
(3)关闭DMDSC主库两个节点的数据库服务
./DmService stop
(4)关闭异步备机的数据库服务
./DmService stop
(5)关闭DMDSC主库两个节点的ASM服务
./DmASMSvrService stop
(6)关闭DMDSC主库两个节点的CSS服务
./DmCSSService stop

注:正常停库时必须2节点同时停止,根据目前脚本配置,CSS启动后30秒自动拉起DmASMSvrService,ASM启动后1分钟自动拉起DmService,所以停止DmService和DmASMSvrService后要尽快停下一个服务,避免被自动拉起,同时DmASMSvrService服务在任意一个节点停止会停2个节点的ASM服务,为了保险起见也可以两边都停止下,全部停止后要观察后台进程是否全部停止。

【DMDSC+异步备机集群监控】

在dsc的控制节点,/dmdbms/bin目录下(安装目录)新建一个dmcssm.ini文件,写入以下:

CSSM_OGUID      = 63635
CSSM_CSS_IP     = DSC0的ip:11286
CSSM_CSS_IP     = DSC1的ip:11286
CSSM_LOG_PATH   = ../log    
CSSM_LOG_FILE_SIZE      = 32
CSSM_LOG_SPACE_LIMIT    = 0

启动css的监视器

./dmcssm INI_PATH=dmcssm.ini

启动数据守护监视器

cd /dmdbms/bin
./dmmonitor dmmonitor.ini

社区地址:https://eco.dameng.com

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

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

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