Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 86 additions & 1 deletion TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,92 @@
- [监控告警](/tidb-lightning/monitor-tidb-lightning.md)
- [FAQ](/tidb-lightning/tidb-lightning-faq.md)
- [术语表](/tidb-lightning/tidb-lightning-glossary.md)
- [TiDB Data Migration](/dm/dm-overview.md)
- TiDB Data Migration
- 关于 TiDB Data Migration
- [TiDB Data Migration 简介](/dm/dm-overview.md)
- 基本功能
- [Table routing](/dm/dm-key-features.md#table-routing)
- [Block & Allow Lists](/dm/dm-key-features.md#block--allow-table-lists)
- [Binlog Event Filter](/dm/dm-key-features.md#binlog-event-filter)
- 高级功能
- 分库分表合并迁移
- [概述](/dm/feature-shard-merge.md)
- [悲观模式](/dm/feature-shard-merge-pessimistic.md)
- [乐观模式](/dm/feature-shard-merge-optimistic.md)
- [迁移使用 GH-ost/PT-osc 的源数据库](/dm/feature-online-ddl.md)
- [使用 SQL 表达式过滤某些行变更](/dm/feature-expression-filter.md)
- [DM 架构](/dm/dm-arch.md)
- [性能数据](/dm/dm-benchmark-v5.3.0.md)
- 快速上手
- [快速上手试用](/dm/quick-start-with-dm.md)
- [使用 TiUP 部署 DM 集群](/dm/deploy-a-dm-cluster-using-tiup.md)
- [创建数据源](/dm/quick-start-create-source.md)
- 数据迁移场景
- [数据迁移场景概述](/dm/quick-create-migration-task.md)
- [多数据源合并迁移到 TiDB](/dm/usage-scenario-simple-migration.md)
- [分表合并迁移到 TiDB](/dm/usage-scenario-shard-merge.md)
- [增量迁移数据到 TiDB](/dm/usage-scenario-incremental-migration.md)
- [下游 TiDB 表结构存在更多列的数据迁移](/dm/usage-scenario-downstream-more-columns.md)
- 部署使用
- [软硬件要求](/dm/dm-hardware-and-software-requirements.md)
- 部署 DM 集群
- [使用 TiUP(推荐)](/dm/deploy-a-dm-cluster-using-tiup.md)
- [使用 TiUP 离线镜像](/dm/deploy-a-dm-cluster-using-tiup-offline.md)
- [使用 Binary](/dm/deploy-a-dm-cluster-using-binary.md)
- [使用 Kubernetes](https://docs.pingcap.com/zh/tidb-in-kubernetes/dev/deploy-tidb-dm)
- [使用 DM 迁移数据](/dm/migrate-data-using-dm.md)
- [测试 DM 性能](/dm/dm-performance-test.md)
- 运维操作
- 集群运维工具
- [使用 TiUP 运维集群(推荐)](/dm/maintain-dm-using-tiup.md)
- [使用 dmctl 运维集群](/dm/dmctl-introduction.md)
- [使用 OpenAPI 运维集群](/dm/dm-open-api.md)
- 升级版本
- [1.0.x 到 2.0+ 手动升级](/dm/manually-upgrade-dm-1.0-to-2.0.md)
- [管理数据源](/dm/dm-manage-source.md)
- 管理迁移任务
- [任务配置向导](/dm/dm-task-configuration-guide.md)
- [任务前置检查](/dm/dm-precheck.md)
- [创建任务](/dm/dm-create-task.md)
- [查询状态](/dm/dm-query-status.md)
- [暂停任务](/dm/dm-pause-task.md)
- [恢复任务](/dm/dm-resume-task.md)
- [停止任务](/dm/dm-stop-task.md)
- [导出和导入集群的数据源和任务配置](/dm/dm-export-import-config.md)
- [处理出错的 DDL 语句](/dm/handle-failed-ddl-statements.md)
- [手动处理 Sharding DDL Lock](/dm/manually-handling-sharding-ddl-locks.md)
- [管理迁移表的表结构](/dm/dm-manage-schema.md)
- [处理告警](/dm/dm-handle-alerts.md)
- [日常巡检](/dm/dm-daily-check.md)
- 使用场景
- [从 Aurora 迁移数据到 TiDB](/dm/migrate-from-mysql-aurora.md)
- [TiDB 表结构存在更多列的迁移场景](/dm/usage-scenario-downstream-more-columns.md)
- [变更同步的 MySQL 实例](/dm/usage-scenario-master-slave-switch.md)
- 故障处理
- [故障及处理方法](/dm/dm-error-handling.md)
- [性能问题及处理方法](/dm/dm-handle-performance-issues.md)
- 性能调优
- [配置调优](/dm/dm-tune-configuration.md)
- 参考指南
- 架构
- [DM 架构简介](/dm/dm-arch.md)
- [DM-worker 简介](/dm/dm-worker-intro.md)
- [DM 命令行参数](/dm/dm-command-line-flags.md)
- 配置
- [概述](/dm/dm-config-overview.md)
- [DM-master 配置](/dm/dm-master-configuration-file.md)
- [DM-worker 配置](/dm/dm-worker-configuration-file.md)
- [上游数据库配置](/dm/dm-source-configuration-file.md)
- [数据迁移任务配置向导](/dm/dm-task-configuration-guide.md)
- 安全
- [为 DM 的连接开启加密传输](/dm/dm-enable-tls.md)
- [生成自签名证书](/dm/dm-generate-self-signed-certificates.md)
- [监控指标](/dm/monitor-a-dm-cluster.md)
- [告警信息](/dm/dm-alert-rules.md)
- [错误码](/dm/dm-error-handling.md#常见故障处理方法)
- [常见问题](/dm/dm-faq.md)
- [术语表](/dm/dm-glossary.md)
- [版本发布历史](/dm/dm-release-notes.md)
- Backup & Restore (BR)
- [BR 工具简介](/br/backup-and-restore-tool.md)
- [使用 BR 命令行备份恢复](/br/use-br-command-line-tool.md)
Expand Down
215 changes: 215 additions & 0 deletions dm/deploy-a-dm-cluster-using-binary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
---
title: 使用 DM binary 部署 DM 集群
aliases: ['/docs-cn/tidb-data-migration/dev/deploy-a-dm-cluster-using-binary/']
---

# 使用 DM binary 部署 DM 集群

本文将介绍如何使用 DM binary 快速部署 DM 集群。

> **注意:**
>
> 对于生产环境,推荐[使用 TiUP 部署 DM 集群及相关监控组件](/dm/deploy-a-dm-cluster-using-tiup.md)。

## 准备工作

使用下表中的链接下载官方 binary:

| 安装包 | 操作系统 | 架构 | SHA256 校验和 |
|:---|:---|:---|:---|
| `https://download.pingcap.org/dm-{version}-linux-amd64.tar.gz` | Linux | amd64 | `https://download.pingcap.org/dm-{version}-linux-amd64.sha256` |

> **注意:**
>
> 下载链接中的 `{version}` 为 DM 的版本号。例如,`v1.0.1` 版本的下载链接为 `https://download.pingcap.org/dm-v1.0.1-linux-amd64.tar.gz`。可以通过 [DM Release](https://github.com/pingcap/tiflow/releases) 查看当前已发布版本。

下载的文件中包括子目录 bin 和 conf。bin 目录下包含 dm-master、dm-worker 以及 dmctl 的二进制文件。conf 目录下有相关的示例配置文件。

## 使用样例

假设在五台服务器上部署两个 DM-worker 实例和三个 DM-master 实例。各个节点的信息如下:

| 实例 | 服务器地址 | 端口 |
| :---------- | :----------- | :-- |
| DM-master1 | 192.168.0.4 | 8261 |
| DM-master2 | 192.168.0.5 | 8261 |
| DM-master3 | 192.168.0.6 | 8261 |
| DM-worker1 | 192.168.0.7 | 8262 |
| DM-worker2 | 192.168.0.8 | 8262 |

下面以此为例,说明如何部署 DM。

> **注意:**
>
> - 在单机部署多个 DM-master 或 DM-worker 时,需要确保每个实例的端口以及运行命令的当前目录各不相同。
>
> - 如果不需要确保 DM 集群高可用,则可只部署 1 个 DM-master 节点,且部署的 DM-worker 节点数量不少于上游待迁移的 MySQL/MariaDB 实例数。
>
> - 如果需要确保 DM 集群高可用,则推荐部署 3 个 DM-master 节点,且部署的 DM-worker 节点数量大于上游待迁移的 MySQL/MariaDB 实例数(如 DM-worker 节点数量比上游实例数多 2 个)。
>
> - 需要确保以下组件间端口可正常连通:
>
> - 各 DM-master 节点间的 `8291` 端口可互相连通。
>
> - 各 DM-master 节点可连通所有 DM-worker 节点的 `8262` 端口。
>
> - 各 DM-worker 节点可连通所有 DM-master 节点的 `8261` 端口。

### 部署 DM-master

DM-master 提供[命令行参数](#使用命令行参数部署-dm-master)和[配置文件](#使用配置文件部署-dm-master)两种配置方式。

#### 使用命令行参数部署 DM-master

DM-master 的命令行参数说明:

```bash
./bin/dm-master --help
```

```
Usage of dm-master:
-L string
log level: debug, info, warn, error, fatal (default "info")
-V prints version and exit
-advertise-addr string
advertise address for client traffic (default "${master-addr}")
-advertise-peer-urls string
advertise URLs for peer traffic (default "${peer-urls}")
-config string
path to config file
-data-dir string
path to the data directory (default "default.${name}")
-initial-cluster string
initial cluster configuration for bootstrapping, e.g. dm-master=http://127.0.0.1:8291
-join string
join to an existing cluster (usage: cluster's "${master-addr}" list, e.g. "127.0.0.1:8261,127.0.0.1:18261"
-log-file string
log file path
-master-addr string
master API server and status addr
-name string
human-readable name for this DM-master member
-peer-urls string
URLs for peer traffic (default "http://127.0.0.1:8291")
-print-sample-config
print sample config file of dm-worker
```

> **注意:**
>
> 某些情况下,无法使用命令行参数来配置 DM-master,因为有的配置并未暴露给命令行。

#### 使用配置文件部署 DM-master

推荐使用配置文件,把以下配置文件内容写入到 `conf/dm-master1.toml` 中。

DM-master 的配置文件:

```toml
# Master Configuration.

name = "master1"

# 日志配置
log-level = "info"
log-file = "dm-master.log"

# DM-master 监听地址
master-addr = "192.168.0.4:8261"

# DM-master 节点的对等 URL
peer-urls = "192.168.0.4:8291"

# 初始集群中所有 DM-master 的 advertise-peer-urls 的值
initial-cluster = "master1=http://192.168.0.4:8291,master2=http://192.168.0.5:8291,master3=http://192.168.0.6:8291"
```

在终端中使用下面的命令运行 DM-master:

{{< copyable "shell-regular" >}}

> **注意:**
>
> 执行该命令后控制台不会输出日志,可以通过 `tail -f dm-master.log` 查看运行日志。

```bash
./bin/dm-master -config conf/dm-master1.toml
```

对于 DM-master2 和 DM-master3,修改配置文件中的 `name` 为 `master2` 和 `master3`,并将 `peer-urls` 的值改为 `192.168.0.5:8291` 和 `192.168.0.6:8291` 即可。

### 部署 DM-worker

DM-worker 提供[命令行参数](#使用命令行参数部署-dm-worker)和[配置文件](#使用配置文件部署-dm-worker)两种配置方式。

#### 使用命令行参数部署 DM-worker

查看 DM-worker 的命令行参数说明:

{{< copyable "shell-regular" >}}

```bash
./bin/dm-worker --help
```

```
Usage of worker:
-L string
log level: debug, info, warn, error, fatal (default "info")
-V prints version and exit
-advertise-addr string
advertise address for client traffic (default "${worker-addr}")
-config string
path to config file
-join string
join to an existing cluster (usage: dm-master cluster's "${master-addr}")
-keepalive-ttl int
dm-worker's TTL for keepalive with etcd (in seconds) (default 10)
-log-file string
log file path
-name string
human-readable name for DM-worker member
-print-sample-config
print sample config file of dm-worker
-worker-addr string
listen address for client traffic
```

> **注意:**
>
> 某些情况下,无法使用命令行参数的方法来配置 DM-worker,因为有的配置并未暴露给命令行。

#### 使用配置文件部署 DM-worker

推荐使用配置文件来配置 DM-worker,把以下配置文件内容写入到 `conf/dm-worker1.toml` 中。

DM-worker 的配置文件:

```toml
# Worker Configuration.

name = "worker1"

# 日志配置
log-level = "info"
log-file = "dm-worker.log"

# DM-worker 的地址
worker-addr = ":8262"

# 对应集群中 DM-master 配置中的 master-addr
join = "192.168.0.4:8261,192.168.0.5:8261,192.168.0.6:8261"
```

在终端中使用下面的命令运行 DM-worker:

{{< copyable "shell-regular" >}}

```bash
./bin/dm-worker -config conf/dm-worker1.toml
```

对于 DM-worker2,修改配置文件中的 `name` 为 `worker2` 即可。

这样,DM 集群就部署成功了。
Loading