# **练习-1 : 扩容部署 `TiCDC`**

## 概述
+ 在本练习中，将在已有 TiDB 数据库集群中增加 TiCDC 节点，为后面的数据同步复制做准备。

## 练习环境要求
+ 1. 注意，您的实验环境（包括IP，端口号，用户名，密码和目录）可能和手册不同。
+ 2. 可以连接到实验用虚拟机。
+ 3. TiDB 数据库提前部署完毕(空)。
+ 4. 清理掉之前的实验数据。
+ 5. 已经部署好一套 MySQL 数据库｡

## 拓扑图
<img src="../../../diagram/TiCDCLabToplogy_aa_001_20220626.png" width="50%" align="top"/>

## 步骤

-----------------------------------------------
#### 1. 扩容部署 TiCDC
+ **检查集群状态，如下:**
    ```
     # tiup cluster display tidb-test
    ```

+ **编辑扩容配置文件，准备将 TiCDC 节点 172.31.0.135 加入到集群中去｡如下:**
    ```
     # vi scale-out-ticdc.yaml 
    ``` 
    ```
    cdc_servers:
    - host: 172.31.0.135
        gc-ttl: 86400
        data_dir: /data/deploy/install/data/cdc-8300
    ``` 

    注意:
    1. 您的环境可能和实验手册不一致｡
    2. 加入 1 个 TiCDC 节点，IP 为 172.31.0.135， 端口为 8300，软件部署(默认)在 /tidb-deploy/cdc-8300 中，日志部署在 /tidb-deploy/cdc-8300/log 中｡
    3. 因为只有一个集群节点，所以这个 TiCDC 集群不具备高可用性｡

+ **使用 tiup 为原有 TiDB 数据库集群扩容 TiCDC 节点。（需要输入一个 y）如下:**
    ```
    # tiup cluster scale-out tidb-test scale-out-ticdc.yaml -uroot -p
    ``` 

+ **检查扩容后的集群状态，如下:**
    ```
    # tiup cluster display tidb-test
    ```

+ **我们看到 TiCDC 集群的 ID 为 172.31.0.135:8300， Status(状态)为 UP，表示 TiCDC 部署成功｡可以进行下面的练习｡**

-----------------------------------------------
#### 2. 使用 cdc cli 工具检查 TiCDC 的状态。
+ **使用 tiup ctl:v6.1.0 cdc 检查 TiCDC 的状态，如下:**
    ```
    # tiup ctl:v6.1.0 cdc capture list --pd=http://172.31.0.232:2379
    ```
    ```
    Starting component `ctl`: /root/.tiup/components/ctl/v6.1.0/ctl cdc capture list --pd=http://172.31.0.232:2379
    [
    {
        "id": "a5a1b651-ab08-47ef-8156-eb8e02750c9f",
        "is-owner": true,
        "address": "172.31.0.135:8300"
    }
    ]
    ```
    注意:
    1. 命令中 --pd=http://172.31.0.232:2379，可以是任何一个 PD 节点｡
    2. "is-owner": true 代表当 TiCDC 节点为 owner 节点｡

-----------------------------------------------

## 输出样例

-----------------------------------------------
#### 步骤 1-检查集群状态输出参考：
```
    # tiup cluster display tidb-test
```
```
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.10.2/tiup-cluster display tidb-test
Cluster type:       tidb
Cluster name:       tidb-test
Cluster version:    v6.1.0
Deploy user:        tidb
SSH type:           builtin
Dashboard URL:      http://172.31.0.232:2379/dashboard
Grafana URL:        http://172.31.0.233:3000
ID                  Role          Host          Ports                            OS/Arch       Status  Data Dir                      Deploy Dir
--                  ----          ----          -----                            -------       ------  --------                      ----------
172.31.0.233:9093   alertmanager  172.31.0.233  9093/9094                        linux/x86_64  Up      /tidb-data/alertmanager-9093  /tidb-deploy/alertmanager-9093
172.31.0.233:3000   grafana       172.31.0.233  3000                             linux/x86_64  Up      -                             /tidb-deploy/grafana-3000
172.31.0.175:2379   pd            172.31.0.175  2379/2380                        linux/x86_64  Up      /tidb-data/pd-2379            /tidb-deploy/pd-2379
172.31.0.232:2379   pd            172.31.0.232  2379/2380                        linux/x86_64  Up|UI   /tidb-data/pd-2379            /tidb-deploy/pd-2379
172.31.0.233:2379   pd            172.31.0.233  2379/2380                        linux/x86_64  Up|L    /tidb-data/pd-2379            /tidb-deploy/pd-2379
172.31.0.233:9090   prometheus    172.31.0.233  9090/12020                       linux/x86_64  Up      /tidb-data/prometheus-9090    /tidb-deploy/prometheus-9090
172.31.0.135:4000   tidb          172.31.0.135  4000/10080                       linux/x86_64  Up      -                             /tidb-deploy/tidb-4000
172.31.0.225:9000   tiflash       172.31.0.225  9000/8123/3930/20170/20292/8234  linux/x86_64  Up      /tidb-data/tiflash-9000       /tidb-deploy/tiflash-9000
172.31.0.234:20160  tikv          172.31.0.234  20160/20180                      linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
172.31.0.79:20160   tikv          172.31.0.79   20160/20180                      linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
172.31.0.95:20160   tikv          172.31.0.95   20160/20180                      linux/x86_64  Up      /tidb-data/tikv-20160         /tidb-deploy/tikv-20160
Tota
```

-----------------------------------------------
#### 步骤 1-使用 tiup 为原有 TiDB 数据库集群扩容 TiCDC 节点输出参考：
```
# tiup cluster scale-out tidb-test scale-out-ticdc.yaml -uroot -p
``` 
```
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.10.2/tiup-cluster scale-out tidb-test scale-out-ticdc.yaml -uroot -p
Input SSH password:

+ Detect CPU Arch Name
- Detecting node 172.31.0.135 Arch info ... Done

+ Detect CPU OS Name
- Detecting node 172.31.0.135 OS info ... Done
Please confirm your topology:
Cluster type:    tidb
Cluster name:    tidb-test
Cluster version: v6.1.0
Role  Host          Ports  OS/Arch       Directories
----  ----          -----  -------       -----------
cdc   172.31.0.135  8300   linux/x86_64  /tidb-deploy/cdc-8300,/data/deploy/install/data/cdc-8300
Attention:
    1. If the topology is not what you expected, check your yaml file.
    2. Please confirm there is no port/directory conflicts in same host.
Do you want to continue? [y/N]: (default=N) y    
...
+ Refresh components conifgs
    - Generate config pd -> 172.31.0.233:2379 ... Done
    - Generate config pd -> 172.31.0.175:2379 ... Done
    - Generate config pd -> 172.31.0.232:2379 ... Done
    - Generate config tikv -> 172.31.0.234:20160 ... Done
    - Generate config tikv -> 172.31.0.79:20160 ... Done
    - Generate config tikv -> 172.31.0.95:20160 ... Done
    - Generate config tidb -> 172.31.0.135:4000 ... Done
    - Generate config tiflash -> 172.31.0.225:9000 ... Done
    - Generate config cdc -> 172.31.0.135:8300 ... Done
    - Generate config prometheus -> 172.31.0.233:9090 ... Done
    - Generate config grafana -> 172.31.0.233:3000 ... Done
    - Generate config alertmanager -> 172.31.0.233:9093 ... Done
+ Reload prometheus and grafana
    - Reload prometheus -> 172.31.0.233:9090 ... Done
    - Reload grafana -> 172.31.0.233:3000 ... Done
+ [ Serial ] - UpdateTopology: cluster=tidb-test
    Scaled cluster `tidb-test` out successfully
``` 

-----------------------------------------------
#### 步骤 1-检查扩容后的集群状态输出参考：
```
    # tiup cluster display tidb-test
```
```
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.10.2/tiup-cluster display tidb-test
Cluster type:       tidb
Cluster name:       tidb-test
Cluster version:    v6.1.0
Deploy user:        tidb
SSH type:           builtin
Dashboard URL:      http://172.31.0.232:2379/dashboard
Grafana URL:        http://172.31.0.233:3000
ID                  Role          Host          Ports                            OS/Arch       Status  Data Dir                            Deploy Dir
--                  ----          ----          -----                            -------       ------  --------                            ----------
172.31.0.233:9093   alertmanager  172.31.0.233  9093/9094                        linux/x86_64  Up      /tidb-data/alertmanager-9093        /tidb-deploy/alertmanager-9093
172.31.0.135:8300   cdc           172.31.0.135  8300                             linux/x86_64  Up      /data/deploy/install/data/cdc-8300  /tidb-deploy/cdc-8300
172.31.0.233:3000   grafana       172.31.0.233  3000                             linux/x86_64  Up      -                                   /tidb-deploy/grafana-3000
172.31.0.175:2379   pd            172.31.0.175  2379/2380                        linux/x86_64  Up      /tidb-data/pd-2379                  /tidb-deploy/pd-2379
172.31.0.232:2379   pd            172.31.0.232  2379/2380                        linux/x86_64  Up|UI   /tidb-data/pd-2379                  /tidb-deploy/pd-2379
172.31.0.233:2379   pd            172.31.0.233  2379/2380                        linux/x86_64  Up|L    /tidb-data/pd-2379                  /tidb-deploy/pd-2379
172.31.0.233:9090   prometheus    172.31.0.233  9090/12020                       linux/x86_64  Up      /tidb-data/prometheus-9090          /tidb-deploy/prometheus-9090
172.31.0.135:4000   tidb          172.31.0.135  4000/10080                       linux/x86_64  Up      -                                   /tidb-deploy/tidb-4000
172.31.0.225:9000   tiflash       172.31.0.225  9000/8123/3930/20170/20292/8234  linux/x86_64  Up      /tidb-data/tiflash-9000             /tidb-deploy/tiflash-9000
172.31.0.234:20160  tikv          172.31.0.234  20160/20180                      linux/x86_64  Up      /tidb-data/tikv-20160               /tidb-deploy/tikv-20160
172.31.0.79:20160   tikv          172.31.0.79   20160/20180                      linux/x86_64  Up      /tidb-data/tikv-20160               /tidb-deploy/tikv-20160
172.31.0.95:20160   tikv          172.31.0.95   20160/20180                      linux/x86_64  Up      /tidb-data/tikv-20160               /tidb-deploy/tikv-20160
Total nodes: 12
```

-----------------------------------------------