程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 基於日志點的復制,日志點復制

基於日志點的復制,日志點復制

編輯:MySQL綜合教程

基於日志點的復制,日志點復制


前文講過日志復制分為基於日志點的復制和基於GTID的復制。

本文就講一下基於日志點的復制過程。

1.在主DB服務器上建立復制帳號。

create user ‘repl’@ip 段 identified by ‘pwd’;

create user repl@'192.168.1.%' identified by 'repl';

授權

grant replication slave on *.* to ‘repl’@ip 段;

grant replication slave on *.* to repl@'192.168.1.%';

2.配置主數據庫服務器。

bin_log=mysql-bin

啟用二進制日志,並指定日志名字。

server_id =100

需要指定serverid,在復制集群中必須唯一。

3.從服務器配置。

bin_log=mysql-bin

server_id=101

# 中繼日志

relay_log=mysql-relay-bin

# 可選參數,是否把中繼日志記錄到當前的二進制日志中,

#如果需要把當前從服務器,作為其他從服務器的復制源,則需要配置。

log_slave_update=on

# 安全配置參數,防止從寫入

read_only=on

4.初始化從服務器的數據

mysqldump ,此方法需要加鎖。

參數:

–single-transaction :保證數據事務一致性,需要對數據庫加鎖,會造成阻塞。

-master-data=2 : 記錄主庫二進制文件的偏移量信息。

xtrabackup –slave-info 熱備工具。

使用innodb存儲引擎是不會阻塞。

mysqldump -uroot -p -P3308 --single-transaction --master-data --triggers --routines --all-databases >> all.sql

從服務器導入數據

mysql -uroot -p -P3309 <all.sql

5.啟動復制鏈路

需要在從服務器上操作。

change master to MASTER_HOST=’master_host_ip’,

MASTER_USER=’repl’,

MASTER_PASSWORD=’PWD’,

MASTER_LOG_FILE=’MYSQL_LOG_FILE_NAME’,

MASTER_LOG_POS=4;

change master to master_host='localhost',
    -> master_user='repl',
    -> master_password='repl',
    -> MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=2162;

這段可以在導出的文件中查找。

image

 

show slave status \G

查看復制鏈路狀態。

image

啟動復制鏈路

start slave;

image

 

使用show processlist 查看服務線程。

image

一個IO線程,一個SQL線程。

主服務器查看

image

 

啟動了一個dump線程。

6.驗證復制效果:

在節點A執行。

image

 

1.創建一個表。

2.插入兩條記錄。

在從服務器上查詢。

image

 

發現數據同步了。

 

優點:

1.是mysql最早支持的復制技術,BUG相對較少。

2.對SQL查詢沒有任何限制。

3.故障處理比較容易。

缺點:

故障轉移時重新獲取新主的日志點信息比較困難。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved