MySQL資料庫雙機熱備份

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   使用   ar   strong   

MySQL資料庫雙機熱備份1、mysql 資料庫沒有增量備份的機制

  當資料量太大的時候備份是一個很大的問題。還好 mysql 資料庫提供了一種主從備份的機制,其實就是把主要資料庫的所有的資料同時寫到備份資料庫中。實現 mysql 資料庫的熱備份。

2、要想實現雙機的熱備首先要瞭解主從資料庫伺服器的版本的需求。

  要實現熱備 mysql 的版本都要高於3.2,還有一個基本的原則就是作為從資料庫的資料庫版本可以高於主伺服器資料庫的版本,但是不可以低於主伺服器的資料庫版本。

3、設定主要資料庫伺服器:  a.首先查看主伺服器的版本

  首先查看主伺服器的版本是否是支援熱備的版本。然後查看 my.cnf(類 unix)或者 my.ini(windows)中 mysqld 配置塊的配置有沒有 log-bin (記錄資料庫變更記錄檔),因為 mysql 的複製機制是基於日誌的複製機制,所以主伺服器一定要支援變更記錄檔才行。然後設定要寫入日誌的資料庫或者不要寫入日誌的資料庫。這樣只有您感興趣的資料庫的更改才寫入到資料庫的日誌中。

  b.配置  1.建立同步處理的使用者
mysql> GRANT REPLICATION SLAVE ON *.*    -> TO ‘repl‘@‘%‘ IDENTIFIED BY ‘slavepass‘;    4.0.2 以前的版本, 因為不支援 REPLICATION 要使用下面的語句來實現這個功能mysql> GRANT FILE ON *.*    -> TO ‘repl‘@‘%‘ IDENTIFIED BY ‘slavepass‘;
  2.主從模式:A->B

  A為master
  修改A mysql的my.ini檔案。在mysqld配置項中加入下面配置:

  以下是老版本的寫法,我用這個配置, mysql 5.6 啟動不起來,

    server-id=1 //資料庫的 id 這個應該預設是1就不用改動    log-bin=log_name //記錄檔的名稱,這裡也可以制定日誌到別的目錄 如果沒有設定則預設主控件名的一個日誌名稱    binlog-do-db=db_name //記錄日誌的資料庫    binlog-ignore-db=db_name //不記錄日誌的資料庫

 

 

由於我使用的是5.6 的版本, 配置如下:

binlog_do_db=testserver_id = 1log_bin=F:/db-data/binlog/binLog.loglog-error =F:/db-data/logs/mysql-error.loggeneral_log = 1general_log_file =F:/db-data/logs/mysql.log
  c.重起資料庫服務。  

  用show master status 命令看日誌情況。

mysql> show master status ;+---------------+----------+--------------+------------------+-------------------+| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binLog.000001 |      120 | test         |                  |                   |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)

  B為slave
  老版本可以修改B mysql的my.ini檔案。在mysqld配置項中加入下面配置:

  

server-id=2master-host=115.29.36.149#同步處理的使用者帳號master-user=cmaster-password=cmaster-port=3306#預設稍候再試60秒master-connect-retry=60#告訴slave只做backup資料庫的更新replicate-do-db=test binlog_ignore_db=mysql

但是 Mysql版本從5.1.7以後開始就不支援“master-host”類似的參數了;

無奈之下,從資料庫my.cnf修改為以下配置;(主要資料庫中注意ID為1,並加入要同步的庫既可)

server-id=2

然後再從庫執行命令:

change master to master_host=‘***.**.**.***‘, master_user=‘xx‘, master_password=‘xx‘,MASTER_CONNECT_RETRY=60;

 

 

  鎖定現有的資料庫並備份現在的資料

   d.鎖定資料庫
mysql> FLUSH TABLES WITH READ LOCK;

  備份資料庫有兩種辦法一種是直接進入到 mysql 的 data 目錄然後打包你需要備份資料庫的檔案夾,第二種是使用 mysqldump 的方式來備份資料庫但是要加上"--master-data " 這個參數,建議使用第一種方法來備份資料庫

  c.查看主伺服器的狀態

 

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.