添加新資料庫到MySQL主從複製列表

來源:互聯網
上載者:User

MySQL主從複製一般情況下我們會設定需要同步的資料庫,使用參數配置選項,binlog-do-db,可以在master上指定需要同步的資料庫,replicate-do-db在從資料看上指定需要同步的資料庫。(一般只設定master上的binlog-do-db即可,不需要兩個同時設定。以防萬一,在slave也可以加上replicate-ignore-db)。
我們遇到的問題是,在master上面新增了一個資料庫,這個時候如何把新加的這個資料庫添加到MySQL的主從複製鏈裡?(即不重新複製整個庫的情況下,重新設定主從複製)。


首先,我們大概羅列一下主從複製的基本步驟,(MySQL主從首先需要在各自伺服器配置好)。

1. 複製資料庫。

 代碼如下 複製代碼

mysqldump --master-data --single-transaction -R --databases [db_name] | gzip -9 - | pv > all-db-with-master-data.sql.gz

注意:innodb用 –single-transaction, myisam需要用 –lock-all-tables。

2. 複製,匯入資料。

 代碼如下 複製代碼

pv < all-db-with-master-data.sql.gz | zcat | mysql

3. 啟動slave資料庫。

slave start注意:切換到主的語句已經在匯出的sql語句裡面了,注意查看。change master to master_log_file=’(binlog name in relay_master_log_file)’, master_log_pos=(exec_master_log_pos number)。

那麼,在現有的主從複製結構中,如何增加一個新的資料庫進去?比如我們要增加一個資料庫在master伺服器上,比如,名為newdb的資料庫。
具體操作如下:

1. 從服務上,停掉slave資料庫。

 代碼如下 複製代碼

stop slave;

2. 主伺服器上,匯出新資料庫。

 代碼如下 複製代碼

mysqldump --master-data --single-transaction -R --databases newdb > newdb.sql

3. 主伺服器上,修改my.cnf檔案,添加新庫到binlog-do-db參數,重啟mysql。

4. 在匯出的newdb.sql裡面尋找當前的記錄檔以及位置(change master to …)
然後讓slave伺服器執行到這個位置。

 代碼如下 複製代碼
start slave until MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=1222220;

其中MASTER_LOG_FILE

以及MASTER_LOG_POS在匯出的資料庫newdb.sql頂部位置尋找。

4. 匯入新庫到從伺服器上。

 代碼如下 複製代碼

mysql < newdb.sql5. start slave

其中比較重要的是在主伺服器上匯出新庫時的日誌位置(position A),這個點很重要,以這個點做為分界線,匯入新庫。

這種方法也同樣適用於某個資料庫或者某個資料表不同步的情況,比如主從資料庫有一個表由於某些原因資料不一致,那麼上面的方法只需要去掉重啟資料庫一步,其他的操作基本

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.