使用docker搭建dm8 实时主备
时间: 2023-08-31 21:13:26 浏览: 207
要使用 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 界面。在界面上可以查看主备节点的状态,以及数据同步的情况。可以在主节点上进行写入操作,验证数据同步是否正常。
阅读全文