MySQL主從複製結構中常用引數
MySQL主從複製結構中常用引數
這篇文章主要簡單說一下MySQL主從複製結構中常用到的一些引數。引數是一個程式的翅膀,正是因為有了很多不同的配置引數,程式才會這麼強大。一般來說,引數越多越複雜的程式,功能也越強大,因為要處理的組合關係越多,同時掌握起來也越難。即使是一個你天天用的程式,比如 ls 你也很難掌握他的全部引數,所以沒事的時候多翻翻man page,你會發現,我靠!這個命令居然還有這個引數,真是NB大了。好了,進入正題:
server-id
ID值唯一的標識了複製群集中的主從伺服器,因此它們必須各不相同。master_id必須為1到2^32–1之間的一個正整數值,slave_id值必須為2到2^32–1之間的一個正整數值。
log-bin
表示開啟binlog,開啟該選項才可以通過I/O寫到Slave的relay-log,也是可以進行replication的前提;
binlog-do-db
表示需要記錄二進位制日誌的資料庫。如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項
binlog-ignore-db
表示不需要記錄二進位制日誌的資料庫。如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項
replicate-do-db
表示需要同步的資料庫,如果有多個資料庫可用逗號分隔,或者使用多個replicate-do-db選項
replicate-ignore-db
表示不需要同步的資料庫,如果有多個資料庫可用逗號分隔,或者使用多個replicate-ignore-db=mysql選項
log-slave-updates
配置從庫上的更新操作是否寫入二進位制檔案,如果這臺從庫,還要做其他從庫的主庫,那麼就需要打這個引數,以便從庫的從庫能夠進行日誌同步
slave-skip-errors
在複製過程,由於各種原因導致binlog中的sql出錯,預設情況下,從庫會停止複製,要使用者介入。可以設定slave-skip-errors來定義錯誤號,如果複製過程中遇到的錯誤號是定義的錯誤號,便可以跳過。如果從庫是用來做備份,設定這個引數會存在資料不一致,不要使用。如果是分擔主庫的查詢壓力,可以考慮。
sync_binlog
sync_binlog的預設值是0,這種模式下,MySQL不會同步到磁碟中去。這樣的話,MySQL依賴作業系統來重新整理二進位制日誌binary log,就像作業系統刷其他檔案的機制一樣。因此如果作業系統或機器(不僅僅是MySQL伺服器)崩潰,有可能binlog中最後的語句丟失了。要想防止這種情況,你可以使用sync_binlog全域性變數,使binlog在每N次binlog寫入後與硬碟同步。當sync_binlog變數設定為1是最安全的,因為在crash崩潰的情況下,你的二進位制日誌binary log只有可能丟失最多一個語句或者一個事務。但是,這也是最慢的一種方式(除非磁碟有使用帶蓄電池後備電源的快取cache,使得同步到磁碟的操作非常快)。
即使sync_binlog設定為1,出現崩潰時,也有可能表內容和binlog內容之間存在不一致性。如果使用InnoDB表,MySQL伺服器處理COMMIT語句,它將整個事務寫入binlog並將事務提交到InnoDB中。如果在兩次操作之間出現崩潰,重啟時,事務被InnoDB回滾,但仍然存在binlog中。可以用–innodb-safe-binlog選項來增加InnoDB表內容和binlog之間的一致性。(註釋:在MySQL 5.1中不需要–innodb-safe-binlog;由於引入了XA事務支援,該選項作廢了),該選項可以提供更大程度的安全,使每個事務的
binlog(sync_binlog =1)和(預設情況為真)InnoDB日誌與硬碟同步,該選項的效果是崩潰後重啟時,在滾回事務後,MySQL伺服器從binlog剪下回滾的 InnoDB事務。這樣可以確保binlog反饋InnoDB表的確切資料等,並使從伺服器保持與主伺服器保持同步(不接收回滾的語句)。
auto_increment_offset和auto_increment_increment
auto_increment_increment和auto_increment_offset用於主-主伺服器(master-to-master)複製,並可以用來控制AUTO_INCREMENT列的操作。兩個變數均可以設定為全域性或區域性變數,並且假定每個值都可以為1到65,535之間的整數值。將其中一個變數設定為0會使該變數為1。
這兩個變數影響AUTO_INCREMENT列的方式:auto_increment_increment控制列中的值的增量值,auto_increment_offset確定AUTO_INCREMENT列值的起點。
如果auto_increment_offset的值大於auto_increment_increment的值,則auto_increment_offset的值被忽略。例如:表內已有一些資料,就會用現在已有的最大的自增值做為初始值。
下面再簡單介紹一下用於控制主、從伺服器的SQL語句
1),用於控制主伺服器的SQL語句
PURGE MASTER LOGS
用於刪除列於在指定的日誌或日期之前的日誌索引中的所有二進位制日誌。這些日誌也會從記錄在日誌索引檔案中的清單中被刪除,這樣被給定的日誌成為第一個。
RESET MASTER
可以刪除列於索引檔案中的所有二進位制日誌,把二進位制日誌索引檔案重新設定為空,並建立一個新的二進位制日誌檔案。
SET SQL_LOG_BIN
如果客戶端使用一個有SUPER許可權的賬戶連線,則可以禁用或啟用當前連線的二進位制日誌記錄。如果客戶端沒有此許可權,則語句被拒絕,並伴隨有錯誤。
SHOW BINLOG EVENTS
用於在二進位制日誌中顯示事件。如果您不指定’log_name’,則顯示第一個二進位制日誌。
SHOW MASTER LOGS
用於列出伺服器中的二進位制日誌檔案。
SHOW MASTER STATUS
用於提供主伺服器二進位制日誌檔案的狀態資訊。
SHOW SLAVE HOSTS
用於顯示當前使用主伺服器註冊的複製從屬伺服器的清單。
2),用於控制從伺服器的SQL語句
CHANGE MASTER TO
可以更改從屬伺服器用於與主伺服器進行連線和通訊的引數。
LOAD DATA FROM MASTER
用於對主伺服器進行快照,並拷貝到從屬伺服器上。
LOAD TABLE tbl_name FROM MASTER
用於把表的拷貝從主伺服器轉移到從屬伺服器。
MASTER_POS_WAIT()
這實際上是一個函式,而不是一個語句。它被用於確認,從屬伺服器已讀取並執行了到達主伺服器二進位制日誌的給定位置。
RESET SLAVE
用於讓從屬伺服器忘記其在主伺服器的二進位制日誌中的複製位置。
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
從主伺服器中跳過後面的n個事件。要復原由語句導致的複製中止,這是有用的。
SHOW SLAVE STATUS
用於提供有關從屬伺服器執行緒的關鍵引數的資訊。
START SLAVE
用於啟動從屬伺服器執行緒
STOP SLAVE
用於中止從屬伺服器執行緒
以上內容摘自MySQL官方手冊,具體用法詳見:http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#reset-master
相關文章
- MySQL(二):主從複製結構、半同步複製、雙主複製結構、利用SSL實現安全的MySQL主從複製MySql
- MySQL主從複製與主主複製MySql
- MySQL主從複製配置引數 -- logs-slave-updatesMySql
- MySQL的主從複製與MySQL的主主複製MySql
- mysql5.7主從複製,主主複製MySql
- MySQL主從複製、半同步複製和主主複製MySql
- mysql複製--主從複製配置MySql
- MySQL 主從複製MySql
- 【MySql】主從複製MySql
- MySQL主從複製MySql
- MySQL主從複製、半同步複製和主主複製概述MySql
- redis主從複製幾種結構Redis
- MySQL主從複製_複製過濾MySql
- MySQL的主從複製、半同步複製、主主複製詳解MySql
- 配置mysql5.5主從複製、半同步複製、主主複製MySql
- Mysql 8.4.0 結合 Docker 搭建GTID主從複製,以及傳統主從複製MySqlDocker
- MySQL主從複製原理MySql
- MySQL的主從複製MySql
- mysql--主從複製MySql
- mysql主從複製搭建MySql
- MySql 主從複製配置MySql
- MySQL主從複製配置MySql
- mysql 8.4 主從複製MySql
- MySQL主從複製架構轉換MGR架構MySql架構
- MySQL主從複製之GTID複製MySql
- MySQL主從複製之半同步複製MySql
- MySQL主從複製之非同步複製MySql非同步
- mysql主從複製(一):一主多從MySql
- MySQL++:Liunx - MySQL 主從複製MySql
- MySQL(13)---MYSQL主從複製原理MySql
- mysql replication /mysql 主從複製原理MySql
- mysql主從延遲複製MySql
- Windows Mysql主從複製部署WindowsMySql
- mysql實現主從複製MySql
- MySQL 主從複製實操MySql
- MYSQL主從複製配置(整理)MySql
- windows 下mysql主從複製WindowsMySql
- MySQL8.0主從複製MySql