MySql的主從複本備份

來源:互聯網
上載者:User

標籤:

 1.複製解決的問題
         MySQL複製技術有以下一些特點:
         讀寫分離(Read And Write Separate)
   資料分布 (Data distribution )
               Server Load Balancer(load balancing)
               備份(Backups) 
               高可用性和容錯行 High availability and failover 
2.複製如何工作 
        整體上來說,複製有3個步驟:   
        master將改變記錄到二進位日誌(binary log)中(這些記錄叫做二進位日誌事件,binary log events。)
        slave將master的binary log events拷貝到它的中繼日誌(relay log)
        slave重做中繼日誌中的事件,將改變反映它自己的資料。


該過程的第一部分就是master記錄二進位日誌。在每個事務更新資料完成之前,master在二日誌記錄這些改變。MySQL將事務串列的寫入二進位日誌,即使事務中的語句都是交叉執行的。在事件寫入二進位日誌完成後,master通知儲存引擎提交事務。
       下一步就是slave將master的binary log拷貝到它自己的中繼日誌。首先,slave開始一個背景工作執行緒——I/O線程。I/O線程在master上開啟一個普通的串連,然後開始binlog dump process。Binlog dump process從master的二進位日誌中讀取事件,如果已經跟上master,它會睡眠並等待master產生新的事件。I/O線程將這些事件寫入中繼日誌。
       SQL slave thread(SQL從線程)處理該過程的最後一步。SQL線程從中繼日誌讀取事件,並重放其中的事件而更新slave的資料,使其與master中的資料一致。只要該線程與I/O線程保持一致,中繼日誌通常會位於OS的緩衝中,所以中繼日誌的開銷很小。

        此外,在master中也有一個背景工作執行緒:和其它MySQL的串連一樣,slave在master中開啟一個串連也會使得master開始一個線程。複製過程有一個很重要的限制——複製在slave上是序列化的,也就是說master上的並行更新操作不能在slave上並行操作。

圖如下:


配置主伺服器 

Linux 下為 my.cnf  WIN下為my.ini
#show variables like ‘log_bin‘;  value = On 才可以如果為Linux下,建議在[mysqld]後添加下列數值參數#開啟bin-loglog-bin = mysql-bin#主伺服器編號為1server-id = 1#要記錄的資料庫  binlog-do-db = test添加使用者權限mysql> grant replication slave on *.* to  ‘backup‘@‘192.168.104.%‘ identified by ‘123456‘;上句是添加了一個使用者,該使用者帳號為backup,密碼為123456,擁有了對所有資料庫的從Database Backup許可權不瞭解GRANT可以去百度下,很EASY。主庫建表從庫表一致同時主從運行如下指令mysql>reset master重設bin-log日誌
配置從伺服器server-id = 2  #多台從伺服器的時候保證從伺服器的ID值的唯一#選擇要備份的資料庫,過濾不備份的資料庫replicate-do-db=testreplicate-ignore-db=mysqlreplicate-ignore-db=information_schemareplicate-ignore-db=performance_schema#在5.1後設定檔中不再有master_*的配置,需在下列運行如下資訊才可行mysql>stop slave;mysql>change master to master_host= ‘192.168.104.9‘,master_user=‘admin‘,master_password=‘123456‘;#master_host為主庫的地址,user和password就是上部我們在主要資料庫所grant的帳號和密碼mysql>show master status\G;主機顯示File:日誌存放Position:位置Binlog_Do_DB:要記錄的資料庫Binlog_Ignore_DB:不要記錄的資料庫
mysql>show slave status\G;
確保Master_Log_File 與File一致, Read_Master_Log_Pos與Position一致       不一致也可以運行下列值來改變 change master to =Master_Log_File= File,Read_Master_Log_Pos= PositionSlave_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.