1. 程式人生 > >基於otter資料同步實驗搭建

基於otter資料同步實驗搭建

目錄

一、實驗目的

二、實驗內容

三、資源劃分

四、元件的安裝配置

4.1 mysql資料庫的安裝

4.1.1前置條件

4.1.2下載地址

4.1.3 安裝

4.1.4 通過命令列連線mysql,修改許可權

4 mysql配置canal許可權

5 關閉防火牆

6 mysql重啟

4.2 zookeeper的安裝

4.2.1 下載地址

4.2.2 解壓至指定目錄

4.2.3 修改配置,啟動zookeeper服務

4.3 otter的安裝

4.3.1 介紹

4.3.2 原理及架構

4.3.3 安裝及配置

 


一、實驗目的

本次實驗主要通過虛擬機器安裝otter,學習otter如何管理資料同步。

二、實驗內容

本次實驗需要兩個資料庫,分別是first-msyql和second-mysql,並且通過otter工具將first-mysql中的資料同步至second-mysql中,同步的方式包含(1)增量實時同步;(2)全量同步。

三、資源劃分

機器及元件資源劃分
vm 安裝元件 說明
192.168.198.130 first-mysql first-mysql為mysql 5.6
192.168.198.131 second-mysql second-mysql為mysql 5.6
192.168.198.132 otter、zookeeper 採用較新版本即可

四、元件的安裝配置

元件的安裝共分為如下三個部分:

(1)mysql資料庫的安裝

(2)zookeeper安裝

(3)otter安裝

4.1 mysql資料庫的安裝

4.1.1前置條件

shell> yum install libaio 
shell> yum install perl-Data-Dumper.x86_64

4.1.2下載地址

wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz

4.1.3 安裝

shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db --user=mysql
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
shell> export PATH=$PATH:/usr/local/mysql/bin

4.1.4 通過命令列連線mysql,修改許可權

shell> mysql -u root -p #初次以root賬戶登入,預設沒有密碼
mysql> use mysql;       #設定root賬戶密碼 
mysql> update user set password=password('you password') where user='root'and host='localhost';
mysql> GRANT ALL PRIVILEGES ON *.* TO'your username'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;      # 設定遠端主機登入
mysql> FLUSH PRIVILEGES;

4 mysql配置canal許可權

配置:修改mysql的配置檔案 vim /etc/my.cnf,設定以下配置

log-bin=mysql-bin
# binary logging format - mixed recommended
# binlog_format=mixed
binlog_format=ROW #修改成ROW
server-id = 1 #兩個機房的serverid設定為不一樣的值
default-character-set=utf8

設定canal賬號:mysql配置完成後,需要分別在A、B兩臺資料庫上分配otter的資料庫賬號和密碼,例如canal/canal。具體指令碼如下所示:

CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'; 
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

檢視canal賬戶的許可權:

show grants for 'canal';

檢視mysql的server-id:

show variables like 'server_id';

檢視本地bin-log日誌是否開啟:

show variables like '%log_bin%'

5 關閉防火牆

systemctl stop firewalld.service    #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動

6 mysql重啟

shell(mysql)> bin/mysqladmin -u root -p shutdown
shell(mysql)> bin/mysqld_safe --user=mysql &

4.2 zookeeper的安裝

4.2.1 下載地址

https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

4.2.2 解壓至指定目錄

tar xzvf zookeeper-3.4.10.tar.gz -C /usr/local

4.2.3 修改配置,啟動zookeeper服務

本次安裝為zookeeper單機版。zookeeper配置具體如下:

(1)進入conf目錄,修改zoo-sample.properties檔名為zoo.properties

(2)啟動zookeeper命令:

./bin/zkServer.sh start

(3)檢視zookeeper狀態命令:

./bin/zkServer.sh status

 

4.3 otter的安裝

4.3.1 介紹

otter是基於資料庫增量日誌解析,準實時的mysql資料庫同步工具。

其應用場景主要如下:

(1)主從複製

(2)異構資料庫同步

4.3.2 原理及架構

原理描述

  • 基於canal增量獲取源資料庫資料

  • 典型管理系統架構,manager(web管理)+node(工作節點)

    • manager節點執行時推送同步配置到node節點

    • node節點將同步狀態反饋到manager上

  • 基於zookeeper解決分散式狀態排程,協調多node節點之間協同工作

架構圖

 

4.3.3 安裝及配置

(1)安裝Manager

  地址:https://github.com/alibaba/otter/wiki/Manager_Quickstart

(2)安裝Node,參考官網

  地址:https://github.com/alibaba/otter/wiki/Node_Quickstart

(3)Manager使用介紹

  地址:https://github.com/alibaba/otter/wiki/Manager%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D