TiDB 學習第 4 天 資料同步工具 DM 實踐

2021-10-01 02:53:36 字數 2898 閱讀 1400

dm集群對環境要求如下:

1、部署目標機器若干,配置如下:

2、一台中控機,配置如下:

第一步、在中控機中安裝依賴包

注意:這裡需要使用root使用者登陸

# yum -y install epel-release git curl sshpass

# yum -y install python-pip

第二步、在中控機上建立tidb使用者,並生成ssh免密

1、建立tidb使用者

# useradd -m -d /home/tidb tidb
2、為tidb使用者設定密碼

# passwd tidb
3、在在 sudo 檔案尾部加上 tidb all=(all) nopasswd: all,為 tidb 使用者設定免密使用 sudo。

# visudo

tidb all=

(all) nopasswd: all

4、生成ssh金鑰

執行以下 su 命令,將登陸使用者從 root 切換至 tidb。

su - tidb
執行命令生成金鑰,以下命令執行後一路回車

ssh-keygen -t rsa
cd /home/tidb
wget    版本有v1.0.0-alpha、lates
第 四 步:安裝 dm-ansible 及其依賴至中控機

1、在中控機上安裝 dm-ansible 及其依賴包

$ tar -xzvf dm-ansible-latest.tar.gz

$ mv dm-ansible-latest dm-ansible

$ cd /home/tidb/dm-ansible

$ sudo pip install -r ./requirements.txt

ansible 和相關依賴包含於 dm-ansible/requirements.txt 檔案中。

2、安裝好後檢視ansible版本

$ ansible --version

ansible 2.6.15

第五步、在中控機上配置ssh互信和sudo規則

注意:這裡得確保中控機登陸的是tidb使用者

1、將需要部署的目標機器ip新增至host.ini檔案中的sercers部分

#編輯檔案新增目標機器ip

vi hosts.ini 

ip1ip2

ip3……

2、執行如下命令,然後輸入部署目標機器的 root 使用者密碼。

ansible-playbook -i hosts.ini create_users.yml -u root -k
這裡要求中控機要連線外網,在中控機上執行如下命令:

ansible-playbook local_prepare.yml
第七步、編輯 inventory.ini 配置檔案
vi inventory.ini 

# 配置上游資料庫資訊 source_id代表dm-worker繫結到的乙個資料庫例項或是具有主從架構的複製組

# 配置上游資料庫資訊

dm_worker1 ansible_host=ip1

server_id=101

source_id=

"mysql-replica-01"

mysql_host=58.16.181.23

mysql_user=root

mysql_password=

'vjx8ceetx+qcvz3bpao4h0c80pe/1au='

mysql_port=3306

第八步、加密上游mysql使用者密碼
cd /home/tidb/dm-ansible/resources/bin

$ ./dmctl -encrypt root!

!2019

y3dtmn/zsr+e5xut0bfjfkbjco++og==

第九步、編輯配置檔案inventory.ini 中的變數

1、配置部署目錄

編輯 deploy_dir 變數以配置部署目錄。

dm-master ansible_host=172.16.10.71 deploy_dir=/data1/deploy
2、配置replay log同步位置

首次啟動 dm-worker 時,您需要配置 relay_binlog_name 變數以指定 dm-worker 拉取上游 mysql 或 mariadb binlog 的起始位置,如果是全量 + 增量 就是 all 模式的話就不需要指定replay log同步位置

3、配置任務,重新命名task.yaml.templete檔案為task.yaml後配置相應的資料同步引數

在資料同步之前需要檢查系統埠是否開放,檢查步驟

1)檢查埠

netstat -tlunp   #執行此命令檢視已經開放的埠
2)開啟埠需要防火牆處於執行狀態

systemctl start firewalld   #開啟防火牆
第十步、啟動dm集群

進入到dm工具包資料夾下執行以下命令啟動dm集群

ansible-playbook start.yml

第6天 資料Array

every 方法測試陣列的所有元素是否都通過了指定函式的測試。array.every callback thisarg callback 被呼叫時傳入三個引數 元素值,元素的索引,原陣列 filter 方法建立乙個新陣列,其包含通過所提供函式實現的測試的所有元素。push 方法將乙個或多個元素新增到...

Python學習第4天

0 這一講主要介紹了三部分內容,第一部分是如何從列表中獲取元素,第二部分是如何刪除列表中的元素,第三部分是列表分片 slice 1 如何從列表中獲取元素 member 0 2 從列表中刪除元素和新增元素一樣有三種辦法 1 remove 括號裡放乙個元素,必須知道列表中要刪除的這個元素的名字。2 de...

第18天 資料庫基礎

資料庫的操作 表的操作 表中的資料 表中資料的查詢 int 整數型別 age int,double 小數型別 score double 5,2 date 日期,只包含年月日,yyyy mm dd datetime 日期,包含年月日時分秒 yyyy mm dd hh mm ss timestamp 時...