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

首頁 > 數據庫 > MySQL > 正文

MySQL復制的概述、安裝、故障、技巧、工具(火丁分享)

2024-07-24 12:44:31
字體:
來源:轉載
供稿:網友
同MongoDB,Redis這樣的NoSQL數據庫的復制相比,MySQL復制顯得相當復雜!

概述

首先主服務器把數據變化記錄到主日志,然后從服務器通過I/O線程讀取主服務器上的主日志,并且把它寫入到從服務器的中繼日志中,接著SQL線程讀取中繼日志,并且在從服務器上重放,從而實現MySQL復制。具體如下圖所示:

整個過程反映到從服務器上,對應三套日志信息,可在從服務器上用如下命令查看:
復制代碼 代碼如下:

mysql> SHOW SLAVE STATUS;


Master_Log_File & Read_Master_Log_Pos:下一個傳輸的主日志信息。
Relay_Master_Log_File & Exec_Master_Log_Pos:下一個執行的主日志信息。
Relay_Log_File & Relay_Log_Pos:下一個執行的中繼日志信息。
理解這些日志信息的含義對于解決故障至關重要,后文會詳細闡述。
安裝
先在主服務器上創建復制賬號:
復制代碼 代碼如下:

mysql> GRANT REPLICATION SLAVE ON *.*
TO '<SLAVE_USER>'@'<SLAVE_HOST>'
IDENTIFIED BY '<SLAVE_PASSWORD>';

注:出于安全性和靈活性的考慮,不要把root等具有SUPER權限用戶作為復制賬號。然后設置主服務器配置文件(缺?。?etc/my.cnf):
復制代碼 代碼如下:

[mysqld]

server_id = 100
log_bin = mysql-bin
log_bin_index = mysql-bin.index
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
innodb_support_xa = 1

注:一定要保證主從服務器各自的server_id唯一,避免沖突。

注:如果沒有指定log_bin的話,缺省會使用主機名作為名字,如此一來一旦主機名發生改變,就會出問題,所以推薦指定log_bin(從服務器的relay_log存在一樣的問題)。

注:sync_binlog,innodb_flush_log_at_trx_commit,innodb_support_xa三個選項都是出于安全目的設置的,不是復制的必須選項。

接著設置從服務器配置文件(缺省:/etc/my.cnf):

復制代碼 代碼如下:

[mysqld]
server_id = 200
log_bin = mysql-bin
log_bin_index = mysql-bin.index
relay_log = mysql-relay-bin
relay_log_index = mysql-relay-bin.index
read_only = 1
skip_slave_start = 1
log_slave_updates = 1

注:如果用戶有SUPER權限,則read_only無效。

注:有了skip_slave_start,除非使用START SLAVE命令,否則從服務器不會開始復制。

注:設置log_slave_updates,讓從服務器記錄日志,有助于在必要時把從切換成主。

下面最重要的步驟是如何克隆一份主服務器的數據:

如果數據庫使用的是MyISAM表類型的話,可按如下方式操作:

復制代碼 代碼如下:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临武县| 平安县| 长武县| 石狮市| 尤溪县| 莎车县| 马关县| 平阴县| 府谷县| 郸城县| 桐梓县| 永德县| 海阳市| 安新县| 大悟县| 交口县| 瑞金市| 长泰县| 建平县| 和田市| 炎陵县| 蚌埠市| 荔波县| 台安县| 洪雅县| 娱乐| 溧水县| 崇礼县| 普洱| 东宁县| 嵊泗县| 鄂托克前旗| 久治县| 康定县| 石景山区| 大余县| 通许县| 伽师县| 定西市| 黑山县| 桃园县|