达梦数据库DSC+DW集群搭建

DMDSC 主备环境搭建和单节点主备环境搭建步骤类似,区别主要在于首先要准备DMDSC 集群环境, DM8 支持单节点和单节点、 DMDSC 集群和单节点之间搭建主备环境。

配置说明

DMDSC 集群可以作为主库,也可以作为实时备库、即时备库或者异步备库,一般建议将 DMDSC 集群配置为主库,将单节点配置为备库。如果要将 DMDSC 集群作为备库配置在数据守护系统中,则要将其作为一个整体配置在源库的 dmarch.ini 中,也就是 DMDSC 集群所有节点要配置在同一个归档配置项中,每个节点实例名以“/ ”分隔开来。
假如 DMDSC 集群有两个节点 GRP1_RT_DSC01 GRP1_RT_DSC02 DMDSC 集群要作为备库进行配置,其源库为 A ,则要在 A dmarch.ini 文件中增加 DMDSC 集群的归档配置,这里以实时备库为例说明如下:
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_DSC01/GRP1_RT_DSC02
如果 DMDSC 集群要作为即时备库或者异步备库来配置, ARCH_DEST 的配置方式和示例中是相同的,ARCH_TYPE 则要分别替换为 TIMELY 或者 ASYNC ,中括号内的配置项名称中包含的归档类型也建议修改和 ARCH_TYPE 一致。
而如果异步备库的源库为 DMDSC 集群,则要求 DMDSC 集群中的所有节点都将 INI 参数TIMER_INI 置为 1 并配置 dmtimer.ini

2 环境说明

准备三台机器 DW_P DW_S DW_M DW_P DW_S 用来部署主备库, DW_M 用来部署确认监视器。其中 DW_P DW_S 配置两块网卡,一块接入内部网络交换模块,一块接入到外部交换机,DW_M 接入内部网络。
         三台机器事先都安装了 DM ,安装路径为 ’/dm’ ,执行程序保存在 ’/dm/bin’ 目录中,数据存放路径为’/dm/data’
各主备库的实例名建议采用“组名 _ 守护环境 _ 序号”的方式命名,方便按组区分不同实例,注意总长度不能超过 16 。本示例中组名为“ GRP1 ”,配置为实时主备,主库 DMDSC集群的两个节点实例名分别命名为“GRP1_RT_DSC01 ”、“ GRP1_RT_DSC02 ”,备库命名 为“GRP1_RT_01 ”。

3 配置 DMDSC 主库环境

使用 DMDSC 集群手册《 DM8 共享存储集群》搭建好两节点 DMDSC 集群环 ,DMDSC 实例名分别为 GRP1_RT_DSC01 GRP1_RT_DSC02
注意 !! dmcss dmserver 的自动拉起功能先不要打开,避免影响到配置过程。
搭建完成后,正常退出 DMDSC 集群的两个 dmserver 节点实例,不需要退出 dmcss
dmasmsvr

3.1 配置 dmarch.ini

分别编辑两个 DMDSC 节点的 dmarch.ini 文件,增加本地归档和远程归档,并且设置本地归档共享参数 ARCH_LOCAL_SHARE 1 dmarch.ini 文件放在各自 dm.ini 中指定的 CONFIG_PATH 目录下。
!!!注意:若 DMDSC 主库环境搭建时未打开本地归档共享参数 ARCH_LOCAL_SHARE 1 , 而是在后续搭建主备过程中打开该参数,并且本地归档路径发生了变化,需要保证 DMDSC主库本地归档的完整性,例如将本地归档路径发生变化前的归档文件拷至变化后的路径下,否则 DMDSC 主备环境会由于主库归档日志不完整,将备库归档状态置为 INVALID ,归档同步失败(dmmonitor 执行 show arch send info EP ,系统报错)。
1 )配置 GRP1_RT_DSC01 dmarch.ini 文件
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL 
ARCH_DEST = +DMDATA/DSC/DSC01/arch
ARCH_FILE_SIZE = 128 
ARCH_SPACE_LIMIT = 0 
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = GRP1_RT_DSC02
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0 
ARCH_INCOMING_PATH = +DMDATA/DSC/DSC02/arch
2 )配置 GRP1_RT_DSC02 dmarch.ini 文件
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL 
ARCH_DEST = +DMDATA/DSC/DSC02/arch
ARCH_FILE_SIZE = 128 
ARCH_SPACE_LIMIT = 0 
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = GRP1_RT_DSC01
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = +DMDATA/DSC/DSC01/arch

3.2 配置 dm.ini

分别编辑两个 DMDSC 节点的 dm.ini 文件,打开归档参数:
ARCH_INI = 1

3.3 备份 DMDSC

重启 DMDSC 集群的两个 dmserver 实例,然后再正常退出。在 DMDSC 集群生成有归档日志的情况下进行脱机备份,以便后续校验日志连续性时使用。
--启动 dmrman
./dmrman use_ap=2 dcr_ini=/dm/data/DSC/conf/dmdcr1.ini

--脱机备份 DMDSC 集群
RMAN>BACKUP DATABASE '/dm/data/DSC/DSC01/dm.ini' FULL BACKUPSET 
'/dm/data/DSC/DSC01/bak/db_full_bak_for_DSC';

4 配置单节点备库

按照以下步骤准备单节点备库环境:
--初始化备库
./dminit path=/dm/data/EP01/

--启动 dmrman
./dmrman use_ap=2

--使用 DMDSC 库的备份集还原恢复到单节点备库
RMAN>RESTORE DATABASE '/dm/data/EP01/DAMENG/dm.ini' FROM BACKUPSET 
'/dm/data/DSC/DSC01/bak/db_full_bak_for_DSC';

RMAN>RECOVER DATABASE '/dm/data/EP01/DAMENG/dm.ini' FROM BACKUPSET 
'/dm/data/DSC/DSC01/bak/db_full_bak_for_DSC';

RMAN>RECOVER DATABASE '/dm/data/EP01/DAMENG/dm.ini' UPDATE DB_MAGIC;

5  配置 dm.ini

依次配置 DMDSC 主库所有节点和单节点备库的 dm.ini 文件,修改数据守护相关的参数配置。
1 )配置 GRP1_RT_DSC01 dm.ini 文件
#实例名,建议使用―组名_守护环境_序号‖的命名方式,总长度不能超过 16
INSTANCE_NAME = GRP1_RT_DSC01 
PORT_NUM = 8344     #数据库实例监听端口
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 次的日志发送信息
2 )配置 GRP1_RT_DSC02 dm.ini 文件
INSTANCE_NAME = GRP1_RT_DSC02 
PORT_NUM = 8346
DW_INACTIVE_INTERVAL = 60 
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
3 )配置 GRP1_RT_01 dm.ini 文件
INSTANCE_NAME = GRP1_RT_01 
PORT_NUM = 9344
DW_INACTIVE_INTERVAL = 60 
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1 
RLOG_SEND_APPLY_MON = 64

 6 配置 dmmal.ini

DMDSC 集群的 dmmal.ini 文件基础上,增加备库 GRP1_RT_01 的配置项。所有节点实例的dmmal.ini 文件内容是一致的,配置完成后,拷贝到每个节点实例dm.ini 中指定的 CONFIG_PATH 目录下。
MAL_CHECK_INTERVAL = 30 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间
[MAL_INST0]
 MAL_INST_NAME = GRP1_RT_DSC01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
 MAL_HOST = 192.168.0.141 #MAL 系统监听 TCP 连接的 IP 地址
 MAL_PORT = 8338 #MAL 系统监听 TCP 连接的端口
 MAL_INST_HOST = 192.168.1.131 #实例的对外服务 IP 地址
 MAL_INST_PORT = 8344 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
 MAL_DW_PORT = 3567 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 4567 #实例监听守护进程 TCP 连接的端口
[MAL_INST1]
 MAL_INST_NAME = GRP1_RT_DSC02 
 MAL_HOST = 192.168.0.141
 MAL_PORT = 8339 
 MAL_INST_HOST = 192.168.1.131 
 MAL_INST_PORT = 8346 
 MAL_DW_PORT = 3568
MAL_INST_DW_PORT = 4568 
[MAL_INST2]
 MAL_INST_NAME = GRP1_RT_01
 MAL_HOST = 192.168.0.142
 MAL_PORT = 8738
 MAL_INST_HOST = 192.168.1.132
 MAL_INST_PORT = 9344
 MAL_DW_PORT = 3569
MAL_INST_DW_PORT = 4569

7 配置 dmarch.ini

再次编辑各个节点的 dmarch.ini 文件,增加实时归档配置。
1 )修改 GRP1_RT_DSC01 dmarch.ini 文件
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL 
ARCH_DEST = +DMDATA/DSC/DSC01/arch
ARCH_FILE_SIZE = 128 
ARCH_SPACE_LIMIT = 0 

[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = GRP1_RT_DSC02
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = +DMDATA/DSC/DSC02/arch

[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01
2 )修改 GRP1_RT_DSC02 dmarch.ini 文件
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/DSC/DSC02/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = GRP1_RT_DSC01
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0 
ARCH_INCOMING_PATH = +DMDATA/DSC/DSC01/arch

[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01
3 )修改 GRP1_RT_01 dmarch.ini 文件
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm/data/EP01/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_DSC01/GRP1_RT_DSC02

8 配置 dmwatcher.ini

依次配置每个节点实例的 dmwatcher.ini 文件,放到各自 dm.ini 中指定的CONFIG_PATH 目录下。
另外要注意, DMDSC 集群各节点实例的自动拉起是由各自本地的 dmcss 执行的,不是由守护进程执行,如果要打开 DMDSC 集群的自动拉起,需要再去配置 dmdcr.ini 中的自动拉起参数,为避免 dmcss 在所有配置步骤完成之前提前将 dmserver 自动拉起,这里先不修改 dmdcr.ini 配置,放到后面步骤中修改。
1 )配置 GRP1_RT_DSC01 dmwatcher.ini 文件
[GRP1]
 DW_TYPE = GLOBAL #全局守护类型
 DW_MODE = MANUAL #手动切换模式
 DW_ERROR_TIME = 60 #远程守护进程故障认定时间
 INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
 INST_ERROR_TIME = 35 #本地实例故障认定时间
 INST_INI = /dm/data/DSC/DSC01/dm.ini#dm.ini 配置文件路径
 DCR_INI = /dm/data/DSC/conf/dmdcr1.ini #dmdcr.ini 配置文件路径
 INST_OGUID = 1000 #守护系统唯一 OGUID 值
 INST_STARTUP_CMD = /dm/bin/dmserver #命令行方式启动
 INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
 RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
 RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
2 )配置 GRP1_RT_DSC02 dmwatcher.ini 文件
[GRP1]
 DW_TYPE = GLOBAL
 DW_MODE = MANUAL
 DW_ERROR_TIME = 60
 INST_RECOVER_TIME = 60
 INST_ERROR_TIME = 35
 INST_INI = /dm/data/DSC/DSC02/dm.ini
 DCR_INI = /dm/data/DSC/conf/dmdcr2.ini
 INST_OGUID = 1000
 INST_STARTUP_CMD = /dm/bin/dmserver
 INST_AUTO_RESTART = 0
 RLOG_SEND_THRESHOLD = 0
 RLOG_APPLY_THRESHOLD = 0
3 )配置 GRP1_RT_01 dmwatcher.ini 文件
[GRP1]
 DW_TYPE = GLOBAL
 DW_MODE = MANUAL
 DW_ERROR_TIME = 60
 INST_RECOVER_TIME = 60
 INST_ERROR_TIME = 35
 INST_INI = /dm/data/EP01/dm.ini
 INST_OGUID = 1000
 INST_STARTUP_CMD = /dm/bin/dmserver
 INST_AUTO_RESTART = 0 #对单节点,如果需要打开自动拉起功能,将此配置修改为 1 即可
 RLOG_SEND_THRESHOLD = 0
 RLOG_APPLY_THRESHOLD = 0

9 配置 dmmonitor.ini

编辑 dmmonitor.ini 文件,放在 /dm/data 目录下 :
MON_LOG_PATH = /dm/data/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 64
MON_LOG_SPACE_LIMIT = 0
MON_DW_CONFIRM = 0
[GRP1]
MON_INST_OGUID = 1000
MON_DW_IP = 192.168.0.141:3567/192.168.0.141:3568
MON_DW_IP = 192.168.0.142:3569

10 配置 dmdcr.ini

        DMDSC 集群中 dmserver 的自动拉起是由 dmcss 执行的,如果不需要打开 dmcss 的自动拉起功能,则可以跳过此部分。否则需要修改 dmdcr.ini 中的自动拉起配置参数,此参数修改完后,需要重启 dmcss 才可以生效,为了避免重启 dmcss 引发 dmasmsvr 被强制关闭,这里先将 dmcss和 dmasmsvr 都正常退出。
另外要注意,本示例中是用命令行方式启动,启动参数中指定以 Mount 方式拉起dmserver,如果是用服务方式启动,服务脚本中也一定要指定以 Mount 方式拉起dmserver
1. 打开 GRP1_RT_DSC01 的自动拉起参数
修改对应 dmcss dmdcr.ini 文件,打开自动拉起参数。
#打开 DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 60
DMDCR_DB_STARTUP_CMD = /dm/bin/dmserver path=/dm/data/DSC/DSC01/dm.ini 
dcr_ini=/dm/data/DSC/conf/dmdcr1.ini mount
2. 打开 GRP1_RT_DSC02 的自动拉起参数
修改对应 dmcss dmdcr.ini 文件,打开自动拉起参数。
#打开 DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 60
DMDCR_DB_STARTUP_CMD = /dm/bin/dmserver path=/dm/data/DSC/DSC02/dm.ini 
dcr_ini=/dm/data/DSC/conf/dmdcr2.ini mount
3. 重启 dmcss dmasmsvr
./dmcss dcr_ini=/dm/data/DSC/conf/dmdcr1.ini
./dmcss dcr_ini=/dm/data/DSC/conf/dmdcr2.ini
./dmasmsvr dcr_ini=/dm/data/DSC/conf/dmdcr1.ini
./dmasmsvr dcr_ini=/dm/data/DSC/conf/dmdcr2.ini

11 启动主备库

注意实例都要使用 Mount 方式启动。
1. 启动 DMDSC 集群的两个 dmserver 实例
        如果 dmcss 打开有自动拉起功能,也可以等待 dmcss 将本地的 dmserver 实例自动拉起(要保证以 Mount 方式拉起)。
手动启动命令如下:
./dmserver /dm/data/DSC/DSC01/dm.ini DCR_INI=/dm/data/DSC/conf/dmdcr1.ini mount
./dmserver /dm/data/DSC/DSC02/dm.ini DCR_INI=/dm/data/DSC/conf/dmdcr2.ini mount
2. 启动单节点备库
./dmserver /dm/data/EP01/dm.ini mount

12 设置 OGUID

启动命令行工具 DIsql ,连接 DMDSC 集群中的任意一个节点,设置 DMDSC 主库的OGUID 值。
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SP_SET_OGUID(1000);

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DIsql 连接单节点备库,设置备库 OGUID
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SP_SET_OGUID(1000);

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

13 修改主备库模式

启动命令行工具 DIsql ,连接 DMDSC 集群中的任意一个节点,修改 DMDSC 库为 Primary 模式。
ALTER DATABASE PRIMARY;
DIsql 连接单节点备库,修改备库为 Standby 模式。
ALTER DATABASE STANDBY;

14 启动守护进程

启动 DMDSC 主库的所有守护进程:
./dmwatcher /dm/data/DSC/DSC01/dmwatcher.ini
./dmwatcher /dm/data/DSC/DSC02/dmwatcher.ini
启动备库的守护进程:
./dmwatcher /dm/data/EP01/dmwatcher.ini

15 启动监视器

启动数据守护监视器:
./dmmonitor path=/dm/data/dmmonitor.ini
监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入 help 命令,查看各种命令使用说明,结合实际情况选择使用。
另外, DMDSC 集群也有自己的监视器工具,需要时也可以启动:
./dmcssm ini_path=/dm/data/DSC/conf/dmcssm.ini
至此 DMDSC 集群的实时数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行 show 命令,可以监控到所有实例都处于 Open 状态,所有守护进程也都处于 Open 状态,即为正常运行状态。
更多详细信息请参考达梦数据库官方社区:https://eco.dameng.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值