久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:135日期:2023-10-13 12:39:35

前言:

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

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

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

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

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

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

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

# 默認(rèn)未設(shè)置復(fù)制過濾mysql> show slave statusG*************************** 1. row ***************************Slave_IO_State: Waiting for master to send event Master_Host: 10.0.3.16 Master_User: repl Master_Port: 3306Connect_Retry: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35198Relay_Log_File: relay-bin.000002Relay_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庫(kù)的復(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 statusG*************************** 1. row ***************************Slave_IO_State: Waiting for master to send event Master_Host: 10.0.3.16 Master_User: repl Master_Port: 3306Connect_Retry: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35198Relay_Log_File: relay-bin.000002Relay_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 # 主庫(kù)創(chuàng)建db1測(cè)試從庫(kù)是否同步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)# 查看從庫(kù)狀態(tài)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys|| testdb |+--------------------+5 rows in set (0.00 sec)mysql> show slave statusG*************************** 1. row ***************************Slave_IO_State: Waiting for master to send event Master_Host: 10.0.3.16 Master_User: repl Master_Port: 33061Connect_Retry: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35383Relay_Log_File: relay-bin.000002Relay_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 statusG*************************** 1. row ***************************Slave_IO_State: Waiting for master to send event Master_Host: 10.0.3.16 Master_User: repl Master_Port: 3306Connect_Retry: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35383Relay_Log_File: relay-bin.000002Relay_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

上面我們簡(jiǎn)單演示了下使用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)行全面測(cè)試,某些參數(shù)設(shè)置后可能影響到其他庫(kù)表的復(fù)制。如果想永久生效,可以在線修改后再加入配置文件內(nèi),這樣從庫(kù)重啟后還是生效的。

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

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
主站蜘蛛池模板: 潼南县| 贡山| 临武县| 永宁县| 离岛区| 三门峡市| 雅安市| 嘉黎县| 板桥市| 九龙坡区| 皮山县| 六枝特区| 安庆市| 壶关县| 荔浦县| 双桥区| 新巴尔虎左旗| 菏泽市| 灵璧县| 波密县| 林周县| 四子王旗| 景德镇市| 合江县| 元氏县| 临汾市| 仙桃市| 当雄县| 汤阴县| 湖南省| 子洲县| 栾川县| 梧州市| 南汇区| 六枝特区| 稻城县| 大埔县| 钟山县| 明星| 涞水县| 安宁市|