DM8读写分离集群的搭建

1 搭建前准备

1.数据库安装路径:/home/dmdba/dmdbms

数据库实例安装路径:/home/dmdba/dmdbms/data/DW_A(DW_B)

2.如果现安数据库,需要根据需求创建和初始化实例,并且启停一次实例。

3.端口规划

Ip

端口

实例名

主机

172.16.20.97

5236

DW_A

备机

172.16.20.193

5236

DW_B

监视器

172.16.20.193

2 读写分离搭建

2.1 在主库备份到备库还原

在脱机状态 使用dmrman备份主库:

./dmrman ctlstmt="backup database '/home/dmdba/dmdbms/data/DW_A/dm.ini' full to backup_dw_a backupset '/home/dmdba/dmdbms/data/DW_A/backup_dw_a'"

将备份发送到备库

scp -r /home/dmdba/dmdbms/data/DW_A/backup_dw_a/ dmdba@192.168.139.101:/home/dmdba/dmdbms/data/DW_B 

脱机状态下在备库上使用dmramn还原、恢复与更新(使用dmdba用户)

还原:./dmrman ctlstmt="restore database '/home/dmdba/dmdbms/data/DW_B/dm.ini' from backupset '/home/dmdba/dmdbms/data/DW_B/backup_dw_a'"

恢复:./dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/DW_B/dm.ini' from backupset '/home/dmdba/dmdbms/data/DW_B/backup_dw_a'"

更新:./dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/DW_B/dm.ini' update db_magic"

2.2 配置主库DW_A

2.2.1 dm.ini配置

在 DW_A 机器上配置主库的实例名为 DW_A,dm.ini 参数修改如下:

INSTANCE_NAME=DW_A

ARCH_INI=1 #开启归档

MAL_INI=1  #开启mal通信

ALTER_MODE_STATUS= 0

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

2.2.2 dmmal.ini

配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,MAL_HOST 使用内部网络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,MAL_DW_PORT 是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

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

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

[MAL_INST1]

MAL_INST_NAME = DW_A  #实例名,和 dm.ini 中的 INSTANCE_NAME 一致

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

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

MAL_HOST = 172.16.20.97   #MAL 系统监听 TCP 连接的 IP 地址

MAL_PORT = 61141           #MAL 系统监听 TCP 连接的端口(两台机可以一样)

MAL_DW_PORT = 52141  #实例对应的守护进程监听 TCP 连接的端口(可以一样)

MAL_INST_DW_PORT = 33141 #守护环境下,监听守护进程连接端口(实例和守护进程相同)(两台机可以一样)

[MAL_INST2]

MAL_INST_NAME = DW_B 

MAL_HOST = 172.16.20.193 

MAL_PORT = 61142

MAL_INST_HOST = 172.16.20.193

MAL_INST_PORT = 5236

MAL_DW_PORT = 52142

MAL_INST_DW_PORT = 33142

2.2.3 dmwatcher.ini:

修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式。

[GRP1]

DW_TYPE = GLOBAL  #全局守护类型

DW_MODE = AUTO  #自动切换模式

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

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

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

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

INST_INI = /home/dmdba/dmdbms/data/DW_A/dm.ini  #配置文件路径

INST_AUTO_RESTART = 1   #打开实例的自动启动功能

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

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

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

2.2.4 dmarch.ini:

修改 dmarch.ini,配置本地归档和即时归档。 除了本地归档外,其他归档配置项中的 ARCH_DEST 表示实例是 Primary 模式时,需要同步归档数据的目标实例名。 当前实例 DW_A 是主库,需要向 DW_B(实时备库)同步数据,因此实时归档的 ARCH_DEST 配置为 DW_A

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME  #即时归档类型

ARCH_DEST = DW_B  #即时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL  #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/DW_A/bak  #本地归档文件存放路径

ARCH_FILE_SIZE = 512  #单位 Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 10240  #单位 Mb,0 表示无限制,范围 1024~4294967294M

2.2.5 以mount启动主库

进入安装得bin目录,输入:

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

2.2.6 设置OGUID

新打开一个终端,登录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);

2.2.7 修改数据库模式

启动命令行工具 disql,登录主库修改数据库为 Primary 模式

SQL>alter database primary;

2.3 配置备库DW_B

2.3.1 dm.ini配置

在 DW_B机器上配置主库的实例名为 DW_B,dm.ini 参数修改如下:

INSTANCE_NAME=DW_B

ARCH_INI=1 #开启归档

MAL_INI=1  #开启mal通信

ALTER_MODE_STATUS= 0

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

2.3.2 dmmal.ini

配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,MAL_HOST 使用内部网络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,MAL_DW_PORT 是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

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

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

[MAL_INST1]

MAL_INST_NAME = DW_A  #实例名,和 dm.ini 中的 INSTANCE_NAME 一致

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

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

MAL_HOST = 172.16.20.97   #MAL 系统监听 TCP 连接的 IP 地址

MAL_PORT = 61141           #MAL 系统监听 TCP 连接的端口(两台机可以一样)

MAL_DW_PORT = 52141  #实例对应的守护进程监听 TCP 连接的端口(可以一样)

MAL_INST_DW_PORT = 33141 #守护环境下,监听守护进程连接端口(实例和守护进程相同)(两台机可以一样)

[MAL_INST2]

MAL_INST_NAME = DW_B 

MAL_HOST = 172.16.20.193 

MAL_PORT = 61142

MAL_INST_HOST = 172.16.20.193

MAL_INST_PORT = 5236

MAL_DW_PORT = 52142

MAL_INST_DW_PORT = 33142

2.3.3 dmwatcher.ini:

修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式。

[GRP1]

DW_TYPE = GLOBAL  #全局守护类型

DW_MODE = AUTO  #自动切换模式

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

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

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

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

INST_INI = /home/dmdba/dmdbms/data/DW_B/dm.ini  #配置文件路径

INST_AUTO_RESTART = 1   #打开实例的自动启动功能

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

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

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

2.3.4 dmarch.ini:

修改 dmarch.ini,配置本地归档和即时归档。 除了本地归档外,其他归档配置项中的 ARCH_DEST 表示实例是 Primary 模式时,需要同步归档数据的目标实例名。 当前实例 DW_A 是主库,需要向 DW_B(实时备库)同步数据,因此实时归档的 ARCH_DEST 配置为 DW_B

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME  #即时归档类型

ARCH_DEST = DW_A  #即时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL  #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/DW_B/bak  #本地归档文件存放路径

ARCH_FILE_SIZE = 512  #单位 Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 10240  #单位 Mb,0 表示无限制,范围 1024~4294967294M

2.3.5 以mount启动主库

进入安装得bin目录,输入:

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

2.3.6 设置OGUID

新打开一个终端,登录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);

2.3.7 修改数据库模式

启动命令行工具 disql,登录主库修改数据库为 Primary 模式

SQL>alter database standby;

2.4 配置监听器

修改 dmmonitor.ini 配置确认监视器,其中 MON_DW_IP 中的 IP 和 PORT 和
dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。

MON_DW_Confirm = 1  #确认监视器模式

MON_LOG_PATH = /home/dmdba/dmdbms/data/dw_monitor_log  #监视器日志文件存放路径

MON_LOG_INTERVAL = 60  #每隔 60s 定时记录系统信息到日志文件

MON_LOG_FILE_SIZE = 32  #每个日志文件最大 32M

MON_LOG_SPACE_LIMIT = 0  #不限定日志文件总占用空间

[GRP1]

MON_INST_OGUID = 453331  #组 GRP1 的唯一 OGUID 值

MON_DW_IP = 172.16.20.97:52141

MON_DW_IP = 172.16.20.193:52142

2.5 注册监视器服务

使用root用户,在安装目录下的/script/root路径下

./dm_service_installer.sh -t dmmonitor   -monitor_ini  /dmdata/data/dmmonitor/dmmonitor.ini  -p DM

3 启动守护进程

启动各个主备库上的守护进程:
./dmwatcher  /home/dmdba/dmdbms/data/DW_A(DW_B)/dmwatcher.ini
守护进程启动后,进入 Startup 状态,此时实例都处于 Mount 状态。守护进程开始
广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将
本地实例 Open,并切换为 Open 状态。

4 启动监视器

启动监视器:
./dmmonitor /dmdata/data/dmmonitor/dmmonitor.ini

5 查看日志

通过查看日志,判断读写分离集群是否搭建成功。

至此,DM8读写分离集群的搭建完成。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

记忆无法磨灭

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

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

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

打赏作者

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

抵扣说明:

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

余额充值