国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

添加新數據庫到MySQL主從復制教程解問題解答

2024-07-24 12:35:04
字體:
來源:轉載
供稿:網友
  MySQL作為開源免費數據庫的主流,應用非常廣,而MySQL主從也是高性能網站架構中必要的環節,特別是一些開源的CMS如drupal、Wordpress,本文就MySQL主從的復制同步講解一下,以及過程會出現的問題.
 
  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 --phpfensi.com
 
  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頂部位置查找.
 
  5.導入新庫到從服務器上.
 
  mysql < newdb.sql
 
  6.start slave
 
  其中比較重要的是在主服務器上導出新庫時的日志位置(position A),這個點很重要,以這個點做為分界線,導入新庫.
 
  這種方法也同樣適用于某個數據庫或者某個數據表不同步的情況,比如主從數據庫有一個表由于某些原因數據不一致,那么上面的方法只需要去掉重啟數據庫一步,其他的操作基本一致.
 
 

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 观塘区| 上杭县| 唐海县| 沛县| 巢湖市| 遵义县| 广元市| 宜宾县| 弋阳县| 乌兰县| 鹤壁市| 离岛区| 凤翔县| 留坝县| 永善县| 揭阳市| 政和县| 江口县| 大新县| 台山市| 五河县| 乌恰县| 平舆县| 阿克陶县| 华宁县| 阳泉市| 建阳市| 浦东新区| 南江县| 宜川县| 九龙县| 武平县| 松溪县| 土默特左旗| 南通市| 嵩明县| 密云县| 徐州市| 闸北区| 宜城市| 三台县|