濮阳杆衣贸易有限公司

主頁 > 知識庫 > mysql如何在線修改主從復(fù)制選項(xiàng)

mysql如何在線修改主從復(fù)制選項(xiàng)

熱門標(biāo)簽:地圖標(biāo)注客戶付款 咸陽防封電銷卡 臨沂做地圖標(biāo)注 石家莊400電話辦理公司 宜賓全自動外呼系統(tǒng)廠家 申請400電話電話價(jià)格 許昌外呼增值業(yè)務(wù)線路 廣東400企業(yè)電話申請流程 新鄉(xiāng)智能外呼系統(tǒng)好處

前言:

MySQL最常用的架構(gòu)就是主從復(fù)制了,其實(shí)主從復(fù)制有很多選項(xiàng),特別是在從庫端,我們可以設(shè)置復(fù)制過濾,比如說忽略某張表或某個(gè)庫。這些過濾選項(xiàng)都是可以在線修改而不用重啟的。原來對這塊了解不多,最近看了下相關(guān)資料,個(gè)人覺得這個(gè)功能還是很方便的,本篇文章會將這塊內(nèi)容分享給大家。

1.復(fù)制過濾參數(shù)介紹

首先我們要了解設(shè)置復(fù)制過濾的不同參數(shù)。復(fù)制過濾是在從庫端設(shè)置的,可以只復(fù)制某些庫或某些表,也可以忽略復(fù)制某些庫或某些表。這些都是由不同參數(shù)控制的,下面簡單介紹下不同參數(shù)的作用。

  • REPLICATE_DO_DB:指定只同步某個(gè)庫的數(shù)據(jù)
  • REPLICATE_IGNORE_DB:忽略某個(gè)庫的同步
  • REPLICATE_DO_TABLE:指定同步某個(gè)表
  • REPLICATE_IGNORE_TABLE:忽略某個(gè)表的同步
  • REPLICATE_WILD_DO_TABLE:指定同步某些表,可以用通配符
  • REPLICATE_WILD_IGNORE_TABLE:忽略某些表的同步,可以用通配符
  • REPLICATE_REWRITE_DB:從庫端替換庫名

這些復(fù)制過濾參數(shù)還是很好理解的,只看名字就能大概了解該參數(shù)的作用。默認(rèn)情況下,這些參數(shù)是都沒有設(shè)置的,開啟主從復(fù)制后從庫端會默認(rèn)同步全部從主庫發(fā)來的數(shù)據(jù)。

2.修改復(fù)制過濾選項(xiàng)

當(dāng)我們想臨時(shí)調(diào)整從庫的復(fù)制策略時(shí),可以設(shè)置上述參數(shù)。我們可以將過濾參數(shù)寫入配置文件然后重啟從庫即可應(yīng)用,但這種方法需要重啟實(shí)例,不做推薦。MySQL5.7版本可以進(jìn)行在線設(shè)置復(fù)制過濾了。但是還是得停復(fù)制,不過不用重啟實(shí)例了,方便進(jìn)行臨時(shí)性的調(diào)整。主要用到的是CHANGE REPLICATION FILTER語句,下面就簡單的測試一下:

# 默認(rèn)未設(shè)置復(fù)制過濾
mysql> show slave status\G
*************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event
         Master_Host: 10.0.3.16
         Master_User: repl
         Master_Port: 3306
        Connect_Retry: 60
       Master_Log_File: binlog.000004
     Read_Master_Log_Pos: 35198
        Relay_Log_File: relay-bin.000002
        Relay_Log_Pos: 910
    Relay_Master_Log_File: binlog.000004
       Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
       Replicate_Do_DB: 
     Replicate_Ignore_DB: 
      Replicate_Do_Table: 
    Replicate_Ignore_Table: 
   Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
          Last_Errno: 0
          Last_Error: 
         Skip_Counter: 0
     Exec_Master_Log_Pos: 35198
     
 # 設(shè)置忽略db1庫的復(fù)制
 mysql> STOP SLAVE SQL_THREAD;
Query OK, 0 rows affected (0.00 sec)
mysql> CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB = (db1);
Query OK, 0 rows affected (0.00 sec)
mysql> START SLAVE SQL_THREAD;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G
*************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event
         Master_Host: 10.0.3.16
         Master_User: repl
         Master_Port: 3306
        Connect_Retry: 60
       Master_Log_File: binlog.000004
     Read_Master_Log_Pos: 35198
        Relay_Log_File: relay-bin.000002
        Relay_Log_Pos: 910
    Relay_Master_Log_File: binlog.000004
       Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
       Replicate_Do_DB: 
     Replicate_Ignore_DB: db1
      Replicate_Do_Table: 
    Replicate_Ignore_Table: 
   Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
          Last_Errno: 0
          Last_Error: 
         Skip_Counter: 0
     Exec_Master_Log_Pos: 35198
 
# 主庫創(chuàng)建db1測試從庫是否同步
mysql> CREATE DATABASE `db1` DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| db1        |
| mysql       |
| performance_schema |
| sys        |
| testdb       |
+--------------------+
6 rows in set (0.00 sec)
# 查看從庫狀態(tài)
mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
| testdb       |
+--------------------+
5 rows in set (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event
         Master_Host: 10.0.3.16
         Master_User: repl
         Master_Port: 33061
        Connect_Retry: 60
       Master_Log_File: binlog.000004
     Read_Master_Log_Pos: 35383
        Relay_Log_File: relay-bin.000002
        Relay_Log_Pos: 1095
    Relay_Master_Log_File: binlog.000004
       Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
       Replicate_Do_DB: 
     Replicate_Ignore_DB: db1
      Replicate_Do_Table: 
    Replicate_Ignore_Table: 
   Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
          Last_Errno: 0
          Last_Error: 
         Skip_Counter: 0
     Exec_Master_Log_Pos: 35383
     
# 取消復(fù)制過濾參數(shù)
mysql> STOP SLAVE SQL_THREAD;
Query OK, 0 rows affected (0.01 sec)
mysql> CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB = ();
Query OK, 0 rows affected (0.00 sec)
mysql> START SLAVE SQL_THREAD;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G
*************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event
         Master_Host: 10.0.3.16
         Master_User: repl
         Master_Port: 3306
        Connect_Retry: 60
       Master_Log_File: binlog.000004
     Read_Master_Log_Pos: 35383
        Relay_Log_File: relay-bin.000002
        Relay_Log_Pos: 1095
    Relay_Master_Log_File: binlog.000004
       Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
       Replicate_Do_DB: 
     Replicate_Ignore_DB: 
      Replicate_Do_Table: 
    Replicate_Ignore_Table: 
   Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
          Last_Errno: 0
          Last_Error: 
         Skip_Counter: 0
     Exec_Master_Log_Pos: 35383

上面我們簡單演示了下使用CHANGE REPLICATION FILTER語句在線修改復(fù)制過濾選項(xiàng)的方法,列舉的那些過濾參數(shù)都可以使用該語句修改,不過要注意有些選項(xiàng)是互斥的。應(yīng)該按照實(shí)際需求去設(shè)置合適的參數(shù),下面給出官方文檔中的示范語法:

CHANGE REPLICATION FILTER filter[, filter][, ...]
filter:
  REPLICATE_DO_DB = (db_list)
 | REPLICATE_IGNORE_DB = (db_list)
 | REPLICATE_DO_TABLE = (tbl_list)
 | REPLICATE_IGNORE_TABLE = (tbl_list)
 | REPLICATE_WILD_DO_TABLE = (wild_tbl_list)
 | REPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list)
 | REPLICATE_REWRITE_DB = (db_pair_list)
db_list:
  db_name[, db_name][, ...]
tbl_list:
  db_name.table_name[, db_table_name][, ...]
wild_tbl_list:
  'db_pattern.table_pattern'[, 'db_pattern.table_pattern'][, ...]
db_pair_list:
  (db_pair)[, (db_pair)][, ...]
db_pair:
  from_db, to_db

總結(jié):

本篇文章介紹了如何在線更改復(fù)制過濾選項(xiàng)的方法,不同的過濾參數(shù)有不同的用途,如果你確實(shí)有需求要設(shè)置過濾參數(shù),建議一定要進(jìn)行全面測試,某些參數(shù)設(shè)置后可能影響到其他庫表的復(fù)制。如果想永久生效,可以在線修改后再加入配置文件內(nèi),這樣從庫重啟后還是生效的。

以上就是mysql如何在線修改主從復(fù)制選項(xiàng)的詳細(xì)內(nèi)容,更多關(guān)于mysql修改主從復(fù)制的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • mysql 5.7 docker 主從復(fù)制架構(gòu)搭建教程
  • 關(guān)于MySQL主從復(fù)制的幾種復(fù)制方式總結(jié)
  • 詳細(xì)分析MySQL主從復(fù)制
  • MySQL 主從復(fù)制原理與實(shí)踐詳解
  • Windows下MySQL主從復(fù)制的配置方法
  • 基于Docker的MySQL主從復(fù)制環(huán)境搭建的實(shí)現(xiàn)步驟
  • Mysql主從復(fù)制作用和工作原理詳解
  • MySQL數(shù)據(jù)庫主從復(fù)制延時(shí)超長的解決方法
  • MySQL 4種常用的主從復(fù)制架構(gòu)

標(biāo)簽:臺灣 鎮(zhèn)江 阜新 日照 北京 合肥 鷹潭 貴州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql如何在線修改主從復(fù)制選項(xiàng)》,本文關(guān)鍵詞  mysql,如何,在線,修改,主從,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql如何在線修改主從復(fù)制選項(xiàng)》相關(guān)的同類信息!
  • 本頁收集關(guān)于mysql如何在線修改主從復(fù)制選項(xiàng)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    利川市| 保德县| 延寿县| 怀集县| 郧西县| 正安县| 原阳县| 开鲁县| 顺义区| 岑巩县| 台南市| 柳州市| 濮阳县| 昌江| 苍南县| 赫章县| 鲜城| 内乡县| 广元市| 武平县| 丹寨县| 溧水县| 资溪县| 遂平县| 乐昌市| 广水市| 尉氏县| 成都市| 罗江县| 涟水县| 沙田区| 仙桃市| 萝北县| 丰宁| 济源市| 安国市| 广汉市| 阿城市| 芒康县| 新巴尔虎右旗| 长治市|