DM8——2节点DSC1节点DW的搭建

本文详细介绍了如何搭建达梦数据库(DM)的双节点实时数据守护系统,包括主机规划、配置文件(dmarch.ini、dm.ini等)的编辑、备份及还原操作、守护进程(dmwatcher)和监视器(dmmonitor)的启动过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 主机规划

节点

IP地址

端口

DSC0

172.16.20.141

5236

DSC1

172.16.20.74

5236

DW_DSC

172.16.20.221

5236

2 2节点DSC搭建

请看2节点DSC的搭建,这里就不在介绍

https://blog.csdn.net/tbh7758258/article/details/117330090

搭建完dsc后正常退出 DMDSC 集群的两个 dmserver 节点实例,不需要退出 dmcss

 dmasmsvr。

2.1 编辑两个 DMDSC 节点的 dmarch.ini 文件,增加本地归档和远程归档,

dmarch.ini 文件放在各自 dm.ini 中指定的 CONFIG_PATH 目录下。

DSC0,DSC1的dmarch.ini

[ARCHIVE_LOCAL1]

ARCH_TYPE= LOCAL

ARCH_DEST= /home/data/dsc0_config/bak

ARCH_FILE_SIZE= 128

ARCH_SPACE_LIMIT= 0

[ARCHIVE_REMOTE]

ARCH_TYPE= REMOTE

ARCH_DEST= DSC1

ARCH_FILE_SIZE= 128

ARCH_SPACE_LIMIT= 0

ARCH_INCOMING_PATH =/home/data/dsc1_config/bak

2.2 配置dm.ini,将两节点的归档参数设置为1

ARCH_INI = 1

2.3 备份 DMDSC 库

重启 DMDSC 集群的两个 dmserver 实例,然后再正常退出。在 DMDSC 集群生成有归档日志的情况下进行脱机备份,以便后续校验日志连续性时使用。

启动 dmrman(bin目录下)

./dmrman use_ap=2 dcr_ini=/home/data/dmdcr.ini

--脱机备份 DMDSC 集群

RMAN>BACKUP DATABASE '/home/data/dsc0_config/dm.ini' FULL BACKUPSET '/home/data/dsc0_config/bak/db_full_bak_for_DSC';

--db_full_bak_for_DSC文件发送到单节点备库的

/home/dmdba/dmdbms/data/DW_DSC/bak/目录下

scp -r db_full_bak_for_DSC/ dmdba@172.16.20.221:/home/dmdba/dmdbms/data/DW_DSC/bak/

3 配置单节点备库

3.1 初始化备库

./dminit path=/home/dmdba/dmdbms/data/DW_DSC .......

3.2 启动 dmrman

./dmrman use_ap=2

3.3 使用 DMDSC 库的备份集还原恢复到单节点备库

还原:

RMAN>restore database '/home/dmdba/dmdbms/data/DW_DSC/dm.ini' from backupset '/home/dmdba/dmdbms/data/DW_DSC/bak/db_full_bak_for_DSC';

恢复:

RMAN>RECOVER DATABASE '/home/dmdba/dmdbms/data/DW_DSC/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/data/DW_DSC/bak/db_full_bak_for_DSC';

更新:

RMAN>RECOVER DATABASE '/home/dmdba/dmdbms/data/DW_DSC/dm.ini' UPDATE DB_MAGIC;

3.4 配置所有节点的dm.ini

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

3.5 配置dmmal.ini

 DMDSC 集群的 dmmal.ini 文件基础上,增加备库 GRP1_RT_01 的配置项。所有节点实例的 dmmal.ini 文件内容是一致的,配置完成后,拷贝到每个节点实例dm.ini 中指定的 CONFIG_PATH 目录下。

dmmal.ini:

MAL_CHECK_INTERVAL = 30 #MAL链路检测时间间隔

MAL_CONN_FAIL_INTERVAL = 10 #判定MAL链路断开的时间

[mal_inst0]

    mal_inst_name  = DSC0

    mal_host       = 172.16.20.141

    mal_port       = 9340

    MAL_INST_HOST = 172.16.20.141  #实例的对外服务IP地址

MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致

MAL_DW_PORT= 3569 #实例本地的守护进程监听TCP连接的端口

    MAL_INST_DW_PORT = 4569 #实例监听守护进程TCP连接的端口

[mal_inst1]

 mal_inst_name  = DSC1

 mal_host       = 172.16.20.74

 mal_port       = 9340

 MAL_INST_HOST = 172.16.20.74  #实例的对外服务IP地址

     MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致

 MAL_DW_PORT= 3569 #实例本地的守护进程监听TCP连接的端口

 MAL_INST_DW_PORT = 4569 #实例监听守护进程TCP连接的端口

[mal_inst2]

 mal_inst_name  = DW_DSC   #与dm.ini   instance_name相同

 mal_host       = 172.16.20.221

 mal_port       = 9340

 MAL_INST_HOST = 172.16.20.221  #实例的对外服务IP地址

 MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致

 MAL_DW_PORT= 3569 #实例本地的守护进程监听TCP连接的端口

     MAL_INST_DW_PORT = 4569 #实例监听守护进程TCP连接的端口

3.6 配置 dmarch.ini

再次编辑各个节点的 dmarch.ini 文件,增加实时归档配置。

DSC0的dmarch.ini: 

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /home/data/dsc0_cfg/bak

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCHIVE_REMOTE]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC1

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

ARCH_INCOMING_PATH =/home/data/dsc1_cfg/bak

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = DW_DSC  #因为我单节点实例名是 DW_DSC

3.7 DSC1的dmarch.ini:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST =/home/data/dsc1_cfg_/bak

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCHIVE_REMOTE]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC0

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

ARCH_INCOMING_PATH = /home/data/dsc0_cfg/bak

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = DW_DSC #因为我单节点实例名是 DW_DSC

3.8 单节点DMSERVER的dmarch.ini: 

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /home/dmdba/dmdbms/data/DW_DSC/bak

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = DSC0/DSC1

4 配置 dmwatcher.ini

依次配置每个节点实例的 dmwatcher.ini 文件,放到各自 dm.ini 中指定的CONFIG_PATH 目录下

4.1 DSC0的dmwatcher.ini:

[GRP1]

DW_TYPE = GLOBAL #全局守护类型

DW_MODE = MANUAL #手动切换模式

DW_ERROR_TIME = 60 #远程守护进程故障认定时间

INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间

INST_ERROR_TIME = 30 #本地实例故障认定时间

INST_INI = /home/data/dsc0_config/dm.ini #dm.ini 配置文件路径

DCR_INI = /home/data/dmdcr.ini #dmdcr.ini 配置文件路径

INST_OGUID = 1000 #守护系统唯一 OGUID 值

INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动

INST_AUTO_RESTART = 0 #关闭实例的自动启动功能

RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭

RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

4.2 DSC1的dmwatcher.ini:

[GRP1]

DW_TYPE = GLOBAL #全局守护类型

DW_MODE = MANUAL #手动切换模式

DW_ERROR_TIME = 60 #远程守护进程故障认定时间

INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间

INST_ERROR_TIME = 30 #本地实例故障认定时间

INST_INI = /home/data/dsc1_config/dm.ini #dm.ini 配置文件路径

DCR_INI = /home/data/dmdcr.ini #dmdcr.ini 配置文件路径

INST_OGUID = 1000 #守护系统唯一 OGUID 值

INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动

INST_AUTO_RESTART = 0 #关闭实例的自动启动功能

RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭

RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

4.3 单节点的dmwatcher.ini:

[GRP1]

DW_TYPE = GLOBAL

DW_MODE = MANUAL

DW_ERROR_TIME = 60

INST_RECOVER_TIME = 60

INST_ERROR_TIME = 30

INST_INI = /home/dmdba/dmdbms/data/DW_DSC/dm.ini

INST_OGUID = 1000

INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver

INST_AUTO_RESTART = 0 #对单节点,如果需要打开自动拉起功能,将此配置修改为 1 即可

RLOG_SEND_THRESHOLD = 0

RLOG_APPLY_THRESHOLD = 0

5 配置 dmmonitor.ini

在单节点上配置,放在/home/dmdba/dmdbms/data/DW_DSC

dmmonitor.ini:

MON_LOG_PATH = /home/dmdba/dmdbms/2des_dw_monitor_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 = 172.16.20.141:3569/172.16.20.74:3569

MON_DW_IP = 172.16.20.221:3569

6 配置 dmdcr.ini

DMDSC 集群中 dmserver 的自动拉起是由 dmcss 执行的,如果不需要打开 dmcss 的自动拉起功能,则可以跳过此章节。否则需要修改 dmdcr.ini 中的自动拉起配置参数(将时间设置不为0即可),此参数修改完成后,需要重启dmcss 才可以生效,为了避免重启 dmcss 引发 dmasmsvr 被强制关闭,这里先将 dmcss dmasmsvr 都正常退出。

另外要注意,本示例中是用命令行方式启动,启动参数中指定以 Mount 方式拉起

dmserver,如果是用服务方式启动,服务脚本中也一定要指定以 Mount 方式拉起dmserver。

7 启动DMCSS、DMASM服务程序

个节点分别先后启动dmcss,dmasm程序。

手动启动 dmcss 命令:

./dmcss DCR_INI=/home/data/dmdcr.ini

手动启动 dmasmsvr 命令:

./dmasmsvr DCR_INI=/home/data/dmdcr.ini

8 启动主备库(注意实例都要使用 Mount 方式启动)

启动DSC0:

./dmserver /home/data/dsc0_config/dm.ini DCR_INI=/home/data/dmdcr.ini mount

启动DSC1:

./dmserver /home/data/dsc1_config/dm.ini DCR_INI=/home/data/dmdcr.ini mount

启动单节点备库

./dmserver /home/dmdba/dmdbms/data/DW_DSC/dm.ini mount

9 设置 OGUID和模式

启动disql

DSC任意一节点:

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>SP_SET_OGUID(1000);

SQL>ALTER DATABASE PRIMARY;

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

单节点:

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>SP_SET_OGUID(1000);

SQL>ALTER DATABASE STANDBY;

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

启动守护进程

启动DSC0守护进程:

./dmwatcher /home/data/dsc0_config/dmwatcher.ini

启动DSC1守护进程:

./dmwatcher /home/data/dsc1_config/dmwatcher.ini

启动单节点的守护进程:

./dmwatcher /home/dmdba/dmdbms/data/DW_DSC/dmwatcher.ini

启动监视器

启动配置在单节点备库的监视器:

./dmmonitor path=/home/dmdba/dmdbms/data/DW_DSC/dmmonitor.ini

至此 DMDSC 集群的实时数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况

下,在监视器上执行 show 命令,可以监控到所有实例都处于 Open 状态,所有守护进程也都处于 Open 状态,即为正常运行状态。

推荐使用达梦的云适配中心网站了解更多使用内容:https://eco.dameng.com,或者到云适配中心的社区去提问哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记忆无法磨灭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值