D15 - 转移资料到TiDB工具介绍(二)

接下来改用DM来试试看,首先一样先透过tiup安装DM。
tiup install dm
产生拓墣的范本
tiup dm template > topology.yaml
修改范本,原本为了维持高可用会设定master与worker各3个,这边客家一点全部用一台搞定,将ip指向tiup这台机器。

# The topology template is used deploy a minimal DM cluster, which suitable
# for scenarios with only three machinescontains. The minimal cluster contains
# - 3 master nodes
# - 3 worker nodes
# You can change the hosts according your environment
---
global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/home/tidb/dm/deploy"
  data_dir: "/home/tidb/dm/data"
  # arch: "amd64"

master_servers:
  - host: 127.0.0.1

worker_servers:
  - host: 127.0.0.1

monitoring_servers:
  - host: 127.0.0.1

grafana_servers:
  - host: 127.0.0.1

alertmanager_servers:
  - host: 127.0.0.1

接下来用修改玩的yaml作部署一个dm-test的cluster
tiup dm deploy dm-test v2.0.0 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
接下来启动,看到有Started cluster dm-test successfully就表示启动完成。
tiup dm start dm-test

输入指令查看状态
tiup dm display dm-test
https://ithelp.ithome.com.tw/upload/images/20210910/20113220agIth9rcn6.png


安装完dm之後,接着来处理资料来源。透过dmctl来对dm下指令。
首先我们建立一个资料来源的source.yaml档,可以从官网上面找到范本,将host,user,password改为之前新增的帐号,这边的帐号权限必须包括SELECT,RELOAD,REPLICATION SLAVE, REPLICATION CLIENT,这部分与dumpling有点不同。
比较特殊的是dmctl可以对密码作加密,所以在这边我们先执行以下指令把密码加密。

/root/.tiup/components/dmctl/v2.0.6/dmctl/dmctl -encrypt '我的密码'

把加密好的密码填入source.yaml。

source-id: "mysql-replica-01"

# 是否开启 GTID
enable-gtid: false


from:
  host: "10.102.1.4"
  port: 3306
  user: "tidb_rep"
  password: "vuLh68IV0YLz2p+zpV6uhkCPYYehuzdiRQ=="
  # security:                       # 上游数据库 TLS 相关配置
  # ssl-ca: "/path/to/ca.pem"
  # ssl-cert: "/path/to/cert.pem"
  # ssl-key: "/path/to/key.pem"

# purge:
#   interval: 3600
#   expires: 0
#   remain-space: 15

# checker:
#   check-enable: true
#   backoff-rollback: 5m0s
#   backoff-max: 5m0s       # backoff 的最大值,不能小于 1s

使用dmctl指令将资料来源载入
tiup dmctl --master-addr='127.0.0.1:8261' operate-source create source.yaml
载入成功画面如下
https://ithelp.ithome.com.tw/upload/images/20210910/201132204O4V4fPHgR.png

再看一次状态此时dm-workerk的Status变成Bound
https://ithelp.ithome.com.tw/upload/images/20210910/20113220pUkmXjyO8u.png


<<:  [13th][Day15] dockerfile 指令

>>:  Day15 Open-Match 监控安装

Swift纯Code之旅 Day25. 「各个TableViewHeader下的Cell显示(2)」

前言 我们已经将第一个Section下的Cell设置完毕了,接下来马上来实作第二个Section的C...

DAY26 学习30天的c++

cin成员函数 除了使用setw()函数设定输出格式外,还可用cin成员函数更改cin的预设输入格式...

Day20 - 用 Ruby on Rails 抓台湾证券交易所资料-每日收盘行情

前言 这篇开始会有几篇是与「台湾证券交易所」有关,示范如何用 Ruby on Rails 来爬虫将资...

[Lesson3] BMI

今天要来做一个计算BMI的简易App! activity_main.xml: 使用LinearLay...

Day 01:入坑 Angular 的前因後果

前因 本身是个有十年以上平面设计经验的转职者,因为接触 Side Project,而开始从切版接案接...