mysql主從複製

來源:互聯網
上載者:User

標籤:mysql   主從複製   

1、mysql主從複製原理

對於主伺服器來講,會不停的吧當前資料庫中產生的資訊記錄進二進位日誌中,如果伺服器端接收到用戶端一個需要改變資料的語句之後,這個資料如果採用的是InnoDB的話,這些資料本身首先被記錄進交易記錄,這些會影響資料的語句會被記錄進二進位日誌中,而複製講的是,另外一個從伺服器上,被動的接受資料,本身並不接受用戶端連結進來做任何寫操作,複製是單向的,只能從主伺服器到從伺服器,因此,從伺服器中的資料都是來自於主伺服器,主服務是監聽在3306連接埠上,從伺服器啟動了一個用戶端進程,這個進程會向伺服器點提供資料服務的連接埠發起請求,請求讀取二進位日誌中的事件,在主伺服器點上,mysql主要提供認證服務,同時會啟動一個sqldump線程,這個線程在接收到使用者的請求後,並確保這個使用者具有許可權之後,會去讀取二進位日誌中的事件,如果用戶端是第一次來請求,那麼這個進程就讀取日誌中的第一個事件,讀一個就發送給用戶端一個,從服務的進程在接收到主伺服器發行過來的資料之後,會儲存在本地的中繼日誌,然後再啟動一個具有特殊功能的線程,去中繼之日中讀取事件,讀一行,在本地執行一下,以此類推,最終產生本地的資料庫。mysql的複製時非同步,因此在接收到使用者的請求之後,將結果返回給使用者。並將資訊存放在記憶體中,之後再記錄進二進位檔案中,這樣會造成從伺服器落後與主伺服器,但是這樣也是有好處的,如果你有一個錯誤操作,在這個時間內,立即去從伺服器上備份資料就OK,這需要mysql管理員把握。

2、mysql主從複製的實現

   [1]首先確保主從伺服器上的Mysql版本相同
   [2]在主伺服器上操作
       (1)設定一個從資料庫的賬戶,使用REPLICATION SLAVE賦予許可權,如:   

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIED BY '123456';mysql> FLUSH PRIVILEGES; 
      (2)修改主要資料庫的設定檔my.cnf,開啟BINLOG,並設定server-id的值,修改之後必須重啟Mysql服務 

log-bin = mysql-binserver-id=10
      (3)之後可以得到主伺服器當前二進位日誌名和位移量,這個操作的目的是為了在從資料庫啟動後,從這個點開始進行資料的恢複

mysql> show master status\G;
      (4)將主要資料庫資料匯入到從伺服器,可以將資料庫原始檔案拷貝過去,也可以通過匯出指令碼,然後倒入到從伺服器中,匯出指令碼前,為確保資料一致,需要對主要資料庫進行READ LOCK

mysql> flush tables with read lock;
然後進行資料庫匯出

mysqldump -h127.0.0.1 -p3306 -uroot -p test > /home/ceshi/test.sql
資料備份好之後,需要對主伺服器恢複寫錯做

mysql> unlock tables;

   [3]在從伺服器上操作
        (1)將匯出的test.sql匯入到從資料庫上。
        (2)修改從資料庫的設定檔my.cnf,指定主要資料庫的基本資料

server-id      = 20                read-only = 1  //開啟唯讀模式 
        (3)配置從伺服器串連主伺服器

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.98', MASTER_USER='slave001', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=107;mysql> START SLAVE;
         (4)在從伺服器進行show salve status驗證

mysql> SHOW SLAVE STATUS\G
如果Slave_IO_Running或者Slave_SQL_Running表示yes,就代表正常

mysql主從複製

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.