基於GTID的主從複製數據庫

基於GTID的主從複製數據庫

全局身份識別 GTID(global transaction identifier)

爲了實現主備數據庫的強一致性


GTID = source_id:transaction_id

source_id 表示執行事務的主庫
transaction_id 是一個序列號,表示這個主庫上執行的第 n 個事務。

server_uuid是系統自動生成的,用來的替代server_id,由於source_id是手工設置的,可能會有衝突


wKiom1jbdd7S4cJPAAAiUu8I5Pk550.png


數據庫的安裝和初始化


server33,44:


mysql-community-client-5.7.17-1.el6.x86_64.rpm
mysql-community-common-5.7.17-1.el6.x86_64.rpm
mysql-community-libs-5.7.17-1.el6.x86_64.rpm
mysql-community-libs-compat-5.7.17-1.el6.x86_64.rpm
mysql-community-server-5.7.17-1.el6.x86_64.rpm

yum install * -y

/etc/init.d/mysqld start

啓動會自動初始化密碼,若是沒有顯示,能夠去日誌中看

 tail -n 3 /var/log/mysqld.log


wKioL1jbddqSSsl0AACGtJ6Psrs622.png


建立root用戶mysql

mysql> alter user root@localhost identified by 'Westos+007';


gtid主從數據庫的配置


server33:


vim /etc/my.cnflinux


 23 server-id=3
24 gtid-mode=ON
25 enforce-gtid-consistency
26
27 log-bin=mysql-bin
28 binlog-do-db=test
29
30 log-slave-updates

受權複製用戶在172.25.88.0網段

mysql> grant replication slave on *.* to  miao@'172.25.88.%' identified by 'Westos+007';

server44:


vim /etc/my.cnfsql

 23 server-id=4
24 read-only
25
26 gtid-mode=ON
27 enforce-gtid-consistency
28
29 log-slave-updates   #開啓從庫改變記錄在log-bin日誌的屬性,從庫也可能做其餘數據庫的主庫

將server33設置master,數據庫

mysql> change master to master_host='172.25.88.33',master_user='miao',master_password='Westos+007' ,master_auto_position=1;#自動定位pos
mysql> start slave;

檢驗同步是否成功



wKioL1jbdduy2fNBAADoCIK8RbE554.png


wKiom1jbddziq8gyAAAy9Mqkgxg867.png



檢驗是否爲GTID模式vim


wKioL1jbdd6RV1F6AABTOk8ysjA303.png




GTID與經典主從的區別


1.不用手動定位pos和binlog的位置,添加參數master_auto_position=1便可  
2.多線程併發複製,Slave-parallel-workers=0,1,2(禁用,單線程,兩個線程)
master數據庫有改動,好比DML,存入bin-log中,
備份到主數據庫中,網絡I/O纔去master給slave去取數據
因此經典模式下通常手動設置給slave備份,由於必定要保證主被數據同樣,自動容易出問題。
推薦使用mysql5.7




SQL四種語言


1.DDL(Definition)數據庫定義語言
DDL不須要commit.
CREATE,ALTER,DROP,TRUNCATE(快速清空sql表),COMMENT,RENAME

2.DML(Manipulation)數據操縱語言
DML須要commit.
SELECT,INSERT,UPDATE,DELETE,MERGE(更改),CALL,EXPLAIN PLAN,LOCK TABLE

3.DCL(Control )數據庫控制語言
GRANT 受權  REVOKE

4.TCL(Transaction Control Language)事務控制語言
SAVEPOINT 設置保存點,ROLLBACK  回滾,SET TRANSACTION



排錯: show slave status \G 中I/O和SQL不爲YES


wKioL1jbdd_RPoYVAAAVYrs97BY559.png


I/O:selinux,iptables,受權SQL:主從數據不一致
相關文章
相關標籤/搜索