婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL 雙向備份的實現方法

MySQL 雙向備份的實現方法

熱門標簽:南昌高頻外呼系統哪家公司做的好 溫州瑞安400電話怎么申請 電銷機器人各個細節介紹 俄國地圖標注app 百度地圖標注后不顯示 電銷機器人 行業 昆明電信400電話辦理 淄博400電話申請 電話機器人市場趨勢

MySQL 雙向備份也被稱為 主主備份 ,即兩個 MySQL 服務都是 Master,其中任意一個服務又是另一個服務的 Slave。

準備

服務器

MySQL服務器 版本 IP地址
masterA 5.6.41 192.168.1.201
masterB 5.6.41 192.168.1.202

注:備份的 MySQL 服務器版本盡量保持一致,不同的版本可能二進制日志格式不兼容。

具體操作

注意

操作過程中注意兩邊數據的一致!!!

masterA 配置

my.cnf

[mysqld]
# 服務器唯一標識
server-id=1
# 二進制日志文件名
log-bin=mysql-bin

# 需要備份的數據庫,多個數據庫用 , 分隔
binlog-do-db=piumnl
# 需要復制的數據庫,多個數據庫用 , 分隔
replicate-do-db=piumnl
# 中繼日志文件名
relay_log=mysqld-relay-bin
# 手動啟動同步服務,避免突然宕機導致的數據日志不同步
skip-slave-start=ON
# 互為主從需要加入這一行
log-slave-updates=ON
# 禁用符號鏈接,防止安全風險,可不加
symbolic-links=0

# 可不加
# resolve - [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0
master-info-repository=table
relay-log-info-repository=table
relay-log-recovery=1

# 可不加
# 禁用 dns 解析,會使授權時使用的域名無效
skip-host-cache
skip-name-resolve

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

masterB 配置

my.cnf

# 不再解釋各個配置項
[mysqld]
server-id=2
log-bin=mysql-bin

binlog-do-db=piumnl
replicate-do-db=piumnl
relay_log=mysql-relay-bin
skip-slave-start=ON
log-slave-updates=ON
symbolic-links=0

# resolve - [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0
master-info-repository=table
relay-log-info-repository=table
relay-log-recovery=1

skip-host-cache
skip-name-resolve

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

創建備份用戶

masterA masterB 都要創建備份用戶:

create user 'rep'@'%' identified by 'rep';  # 創建一個賬戶
grant replication slave on *.* to 'rep'@'%'; # 授予該賬戶對任意數據庫任意表的主從備份權限

備注:

  1. Linux 下 MySQL 對 root@% 用戶關閉了 grant_priv 權限,所以如果是遠程登錄會出現授權失敗的情況
  2. 此處備份用戶帳號和密碼可不一致,此處為了簡化操作使用一樣的帳號和密碼

重啟服務器

重啟服務器

開啟備份

masterA

查看 masterB 狀態

show master status\G;
# 此處需要關注 File 和 Position 值

開啟備份

stop slave;

# master_log_file 就是第一步操作的 File 值
# master_log_pos 就是第一步操作的 Position 值
change master to master_host=master_hostname>, master_user=rep_username>, master_port=master_port>, master_password=rep_password>, master_log_file='mysql-log.000003', master_log_pos=154;
start slave;

查看結果

show slave status\G;
# 查看最重要的兩項,兩個都必須為 Yes ,有一個為 No 都要去查看錯誤日志文件,看看什么地方存在問題
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes

masterB

反向重復 masterA 的操作

測試

分別在 masterA 和 masterB 中插入數據,并查看另一臺服務器是否及時出現預期的數據

問題

MySQL Slave Failed to Open the Relay Log

這應該是中繼日志出現問題,可嘗試如下操作

stop slave;
flush logs;
start slave;

Got fatal error 1236 from master when reading data from binary log

從主庫中拉取日志時,發現主庫的 mysql_bin.index 文件中的第一個文件不存在。

# 進行如下操作重置
# 如果二進制日志或中繼日志有其他作用,請勿進行如下操作
reset master;
reset slave;
flush logs;

database>.table>

使用 database>.table> 進行插入、更新和刪除操作,將不會進行備份( 這是巨坑 )!!!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • windows下mysql雙向同步備份實現方法

標簽:葫蘆島 吐魯番 安徽 洛陽 甘南 海口 嘉峪關 拉薩

巨人網絡通訊聲明:本文標題《MySQL 雙向備份的實現方法》,本文關鍵詞  MySQL,雙向,備份,的,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL 雙向備份的實現方法》相關的同類信息!
  • 本頁收集關于MySQL 雙向備份的實現方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 香港| 喀什市| 盐亭县| 湘阴县| 桃园县| 南平市| 法库县| 无为县| 公安县| 稷山县| 石景山区| 清镇市| 兴仁县| 鄯善县| 洪洞县| 湟源县| 丰镇市| 阳朔县| 大宁县| 柏乡县| 灵川县| 罗江县| 荆州市| 博爱县| 连州市| 邵阳市| 台中县| 桃园市| 中牟县| 茶陵县| 同心县| 台北县| 曲周县| 榕江县| 沛县| 沅江市| 井研县| 呼图壁县| 高青县| 阳江市| 台州市|