Skip to content

Commit

Permalink
Merge DM dev docs to TiDB dev docs (#8042)
Browse files Browse the repository at this point in the history
  • Loading branch information
qiancai committed Dec 23, 2021
1 parent 9b0c14b commit 1a20622
Show file tree
Hide file tree
Showing 122 changed files with 11,592 additions and 35 deletions.
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

0 comments on commit 1a20622

Please sign in to comment.