DM8一实时备机+一异步备机集群搭建

本文详细指导了如何规划主机,停止和备份数据库,以及在主库和备库间进行数据迁移、恢复与配置。涉及实例操作、dmrman、dmwatcher等工具的使用,适合数据库管理员和运维人员参考。

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

1 主机规划

 

主机ip

实例名

端口

主库

172.16.20.184

3DW_1

5236

实时备库

172.16.20.55

3DW_2

5236

异步备库

172.16.20.141

3DW_3

5236

进入/home/dmdba/dmdbms/bin停止数据库

./DmService3DW_1 stop

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

./dmrman ctlstmt="backup database '/home/dmdba/dmdbms/data/3DW_1/dm.ini' full to backup_3dw1 backupset '/home/dmdba/dmdbms/data/3DW_1/backup_3dw1'"

4 将备份发送到备库

scp -r /home/dmdba/dmdbms/data/3DW_1/backup_3dw1/ dmdba@172.16.20.55:/home/dmdba/dmdbms/data/3DW_2

5 脱机状态下在备库上使用dmrman还原、恢复与更新(下面是实时备库,异步备库一样)读数据文件失败--》换dmdba用户

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

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

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

配置主库

6.1 dm.ini配置:

INSTANCE_NAME=3DW_1

ARCH_INI=1

MAL_INI=1

ALTER_MODE_STATUS= 0

ENABLE_OFFLINE_TS = 2

主库和实时备库新加:

TIMER_INI = 1     #配置有异步归档时,打开定时器,定时同步归档到异备库

6.2 dmmal.ini:

MAL_CHECK_INTERVAL = 5

MAL_CONN_FAIL_INTERVAL = 5

[MAL_INST1]

MAL_INST_NAME = 3DW_1

MAL_HOST = 172.16.20.184

MAL_PORT = 61141

MAL_INST_HOST = 172.16.20.184

MAL_INST_PORT = 5236

MAL_DW_PORT = 52141

MAL_INST_DW_PORT = 33141

[MAL_INST2]

MAL_INST_NAME = 3DW_2

MAL_HOST = 172.16.20.55 

MAL_PORT = 61141 

MAL_INST_HOST = 172.16.20.55 

MAL_INST_PORT = 5236

MAL_DW_PORT = 52141 

MAL_INST_DW_PORT = 33141

[MAL_INST3]

MAL_INST_NAME = 3DW_3

MAL_HOST = 172.16.20.141 

MAL_PORT = 61141 

MAL_INST_HOST = 172.16.20.141 

MAL_INST_PORT = 5236

MAL_DW_PORT = 52141 

MAL_INST_DW_PORT = 33141

6.3 dmarch.ini:

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME 

ARCH_DEST = 3DW_2

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /home/dmdba/dmdbms/data/3DW_1/bak 

ARCH_FILE_SIZE = 512

ARCH_SPACE_LIMIT = 10240

异步备库不需要:

[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC #异步归档类型
ARCH_DEST = 3DW_3#异步归档目标实例名
ARCH_TIMER_NAME = RT_TIMER #定时器名称,和dmtimer.ini 中的名称一致

6.4 配置 dmtimer.ini主和实时备库都需要用于定时触发实例发送归档日志到异步备库

下面示例中定时器配置为每天 00:00:00 触发主库发送归档日志到异步备库,可以根据实际情况再做调整。
[RT_TIMER] #和 dmarch.ini 中的 ARCH_TIMER_NAME 一致
TYPE = 2
FREQ_MONTH_WEEK_INTERVAL = 1
FREQ_SUB_INTERVAL = 0
FREQ_MINUTE_INTERVAL = 0
START_TIME = 00:00:00
END_TIME = 00:00:00
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

6.5 dmwatcher.ini:

[GRP1]

DW_TYPE = GLOBAL

DW_MODE = AUTO

DW_ERROR_TIME = 10

INST_RECOVER_TIME = 60

INST_ERROR_TIME = 10

INST_OGUID = 453331

INST_INI = /home/dmdba/dmdbms/data/3DW_1/dm.ini

INST_AUTO_RESTART = 1

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

RLOG_SEND_THRESHOLD = 0

RLOG_APPLY_THRESHOLD = 0

6.6 将配置文件发送到两个备库:

scp dm.ini dmmal.ini dmarch.ini dmwatcher.ini dmdba@172.16.20.55:/home/dmdba/dmdbms/data/3DW_2

scp dm.ini dmmal.ini dmarch.ini dmwatcher.ini dmdba@172.16.20.141:/home/dmdba/dmdbms/data/3DW_3

6.7 配置主库OGUID:

①以mount模式开启主库:进入安装得bin目录,输入:

./dmserver /home/dmdba/dmdbms/data/3DW_1/dm.ini  mount

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

③修改数据库模式

alter database primary;

7 配置备库

将dm.ini里面的INSTANCE_NAME设置为3DW_2  3DW_3   还有所有路径改变

配置dmarch.ini 将ARCH_DEST参数修改为除自己外的库(异步备库只保留本地归档)

Dmwatcher里面改路劲

配置库OGUID:

①以mount模式开启备库:进入安装得bin目录,输入:

./dmserver /home/dmdba/dmdbms/data/3DW_2/dm.ini  mount

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

③修改数据库模式

alter database standby;

8 配置异步备库

8.1 dmarch.ini

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /home/dmdba/dmdbms/data/3DW_3/bak 

ARCH_FILE_SIZE = 512

ARCH_SPACE_LIMIT = 10240

8.2 dmwatcher.ini

修改 dmwatcher.ini 配置守护进程,配置为本地守护类型,异步备库不具备故障自动切换等功能,DW_MODE 配置并不起作用,此处配置为 MANUAL 即可,另外异步备库不需要配置 dmwatcher.ctl 控制文件。

[GRP1]

DW_TYPE = LOCAL #本地守护类型

DW_MODE = MANUAL #故障手动切换模式

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

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

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

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

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

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

8.3 配置异步库OGUID

①以mount模式开启异步备库:进入安装得bin目录,输入:

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

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

③修改数据库模式

alter database standby;

在备库上配置监视器dmmonitor.ini

MON_DW_Confirm = 1

MON_LOG_PATH = /home/dmdba/dmdbms/data/monitor_3dw_log

MON_LOG_INTERVAL = 60

MON_LOG_FILE_SIZE = 32

MON_LOG_SPACE_LIMIT = 0

[GRP1]

MON_INST_OGUID = 453331

MON_DW_IP = 172.16.20.184:52141

MON_DW_IP = 172.16.20.55:52141

MON_DW_IP = 172.16.20.141:52141

10 启动三个库的守护进程

./dmwatcher /home/dmdba/dmdbms/data/3DW_1/dmwatcher.ini

./dmwatcher /home/dmdba/dmdbms/data/3DW_2/dmwatcher.ini

./dmwatcher /home/dmdba/dmdbms/data/3DW_3/dmwatcher.ini

11 启动监控功能

./dmmonitor /home/dmdba/dmdbms/data/dmmonitor/dmmonitor.ini

注意:记得关闭防火墙,端口号不能重,初始化实例,配置文件名不能错

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

要使用 Docker 搭建 DM8 实时,可以按照以下步骤进行: 1. 安装 Docker 和 Docker Compose 首先需要安装 Docker 和 Docker Compose,可以参考 Docker 官方文档进行安装。 2. 下载 DM8 镜像文件 可以从 DM 官网下载 DM8 镜像文件,也可以使用以下命令从 Docker Hub 上下载: ``` docker pull pingcap/dm:latest ``` 3. 创建 DM8 配置文件 在本地创建个名为 `dm-master.yaml` 的文件,用于配置 DM8 的主节点。以下是个示例配置文件: ```yaml master-addr: 172.20.0.2:8261 name: master1 data-dir: /home/data/master1 log-file: /home/logs/master1.log log-level: "info" discovery-mode: "static" static-nodes: - 172.20.0.2:8291 - 172.20.0.3:8291 - 172.20.0.4:8291 web-port: 8281 ``` 其中,`master-addr` 表示当前节点的地址和端口号,`name` 是节点的名称,`data-dir` 是数据存储的目录,`log-file` 是日志文件的路径,`log-level` 是日志级别。 `discovery-mode` 表示节点发现的模式,这里使用静态模式,`static-nodes` 是静态模式下所有节点的地址和端口号。 `web-port` 是 DM8 的 Web 界面端口号。 在本地创建个名为 `dm-worker.yaml` 的文件,用于配置 DM8 的工作节点。以下是个示例配置文件: ```yaml name: worker1 data-dir: /home/data/worker1 log-file: /home/logs/worker1.log log-level: "info" server-id: 101 relay-dir: /home/relay_log meta: case-sensitive: true worker-addr: 172.20.0.2:8262 master-addr: 172.20.0.2:8261 relay-binlog-name: mysql-binlog relay-binlog-gtid: "" source-id: "mysql-replica-01" from: host: "172.20.0.5" user: "root" password: "password" routes: route-rule-1: schema-pattern: "test" target-schema: "test" target-instance: "mysql-replica-02" enable-sharding: false ``` 其中,`name` 是节点的名称,`data-dir` 是数据存储的目录,`log-file` 是日志文件的路径,`log-level` 是日志级别。 `server-id` 是工作节点的 ID,`relay-dir` 是中继日志的存储路径。 `worker-addr` 是当前节点的地址和端口号,`master-addr` 是主节点的地址和端口号。 `relay-binlog-name` 是指定中继日志的文件名,`relay-binlog-gtid` 是中继日志的 GTID。 `source-id` 是源实例的 ID,`from` 是源实例的连接信息。 `routes` 是数据路由的配置,这里只配置了个路由规则,将 `test` 库的数据路由到名为 `mysql-replica-02` 的实例中。 4. 创建 Docker Compose 配置文件 在本地创建个名为 `docker-compose.yaml` 的文件,用于启动 DM8 的主节点和工作节点。以下是个示例配置文件: ```yaml version: "3.7" services: dm-master: image: pingcap/dm:latest container_name: dm-master volumes: - ./dm-master.yaml:/etc/dm-master/dm-master.yaml ports: - "8261:8261" - "8281:8281" dm-worker: image: pingcap/dm:latest container_name: dm-worker volumes: - ./dm-worker.yaml:/etc/dm-worker/dm-worker.yaml depends_on: - dm-master ports: - "8262:8262" ``` 其中,`dm-master` 是 DM8 主节点的容器,`dm-worker` 是 DM8 工作节点的容器。`volumes` 挂载了之前创建的两个 YAML 配置文件,`ports` 映射了节点的端口号。 5. 启动 Docker Compose 在命令行中执行以下命令,启动 Docker Compose: ``` docker-compose up -d ``` 6. 验证 DM8 实时 使用浏览器访问 `http://localhost:8281`,可以查看 DM8 的 Web 界面。在界面上可以查看主节点的状态,以及数据同步的情况。可以在主节点上进行写入操作,验证数据同步是否正常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

记忆无法磨灭

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

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

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

打赏作者

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

抵扣说明:

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

余额充值