4.MySQL 主主(m-m) 同步生產庫標準同步操作實施流程

来源:http://www.cnblogs.com/hackerer/archive/2016/04/12/5383252.html
-Advertisement-
Play Games

通過MySQL參數配置使用主主前提: 1、表的主鍵自增。 ################################################################# #m1-m2配置文件更改:再上篇M-S同步基礎上增加: ########################### ...


通過MySQL參數配置使用主主前提:

1、表的主鍵自增。 ################################################################# #m1-m2配置文件更改:再上篇M-S同步基礎上增加: ################################################################# m1(192.168.1.31 3306):主庫配置文件中添加如下行 vim /data/3306/my.cnf 增加如下兩行參數:
  1. #_______m-m m1 start________
  2. auto_increment_increment =2
  3. auto_increment_offset =1
  4. log-slave-updates
  5. log-bin = /data/3306/mysql-bin
  6. expire_logs_days =7
  7. #_______m-m m1 end________
m2(192.168.1.31 3307):主庫配置文件中添加如下行
  1. #_______m-m m2 start________
  2. auto_increment_increment =2
  3. auto_increment_offset =2
  4. log-slave-updates
  5. log-bin = /data/3307/mysql-bin
  6. expire_logs_days =7
  7. #_______m-m m2 end________
參數說明: 解決主建自增長變數衝突: Master1: auto_increment_increment =2 #自增ID的間隔,如1 3 5間隔為2. auto_increment_offset =1 #ID的初始位置 (將形成1,3,5,7,...序列)   Master2: auto_increment_increment =2 #自增ID的間隔,如2 4 6間隔為2. auto_increment_offset =2 #ID的初始位置 (將形成2,4,6,8,...序列) 2、配置完以後重啟資料庫
  1. /data/3306/mysql stop
  2. /data/3306/mysql start
  3. /data/3307/mysql stop
  4. /data/3307/mysql start
3、接著登錄資料庫中驗證,都 是否開啟
  1. mysql> show variables like "log_%";
  2. +---------------------------------+---------------------------------+
  3. |Variable_name|Value|
  4. +---------------------------------+---------------------------------+
  5. | log_bin | ON |
  6. | log_bin_trust_function_creators | OFF |
  7. | log_error |/data/3306/mysql_oldboy3306.err |
  8. | log_output | FILE |
  9. | log_queries_not_using_indexes | OFF |
  10. | log_slave_updates | ON |
  11. | log_slow_queries | OFF |
  12. | log_warnings |1|
  13. +---------------------------------+---------------------------------+
  14. 8 rows in set (0.00 sec)
  1. mysql> show variables like "log_%";
  2. +---------------------------------+---------------------------------+
  3. |Variable_name|Value|
  4. +---------------------------------+---------------------------------+
  5. | log_bin | ON |
  6. | log_bin_trust_function_creators | OFF |
  7. | log_error |/data/3307/mysql_oldboy3307.err |
  8. | log_output | FILE |
  9. | log_queries_not_using_indexes | OFF |
  10. | log_slave_updates | ON |
  11. | log_slow_queries | OFF |
  12. | log_warnings |1|
  13. +---------------------------------+---------------------------------+
  14. 8 rows in set (0.00 sec)
  1. mysql> show variables like "auto_%";
  2. +--------------------------+-------+
  3. |Variable_name|Value|
  4. +--------------------------+-------+
  5. | auto_increment_increment |2|
  6. | auto_increment_offset |1|
  7. | autocommit | ON |
  8. | automatic_sp_privileges | ON |
  9. +--------------------------+-------+
  10. 4 rows in set (0.00 sec)
  1. mysql> show variables like "auto_%";
  2. +--------------------------+-------+
  3. |Variable_name|Value|
  4. +--------------------------+-------+
  5. | auto_increment_increment |2|
  6. | auto_increment_offset |2|
  7. | autocommit | ON |
  8. | automatic_sp_privileges | ON |
  9. +--------------------------+-------+
  10. 4 rows in set (0.00 sec)
4、把備份的MySQL數據導入從庫(Slave ): 首先打包數據
  1. mysqldump -uroot -p123456 -S /data/3307/mysql.sock -A --events -B -x --master-data=1|gzip >/opt/3307_$(date +%F).sql.gz
  1. [root@mysql opt]# gzip -d 3307_2016-04-09.sql.gz
  2. [root@mysql opt]# mysql -uroot -p123456 -S /data/3306/mysql.sock <3307_2016-04-09.sql
  1. 接著CHANGE MASTER TO
  2. [root@mysql opt]# mysql -uroot -p123456 -S /data/3306/mysql.sock<<EOF
  3. > stop slave;
  4. > CHANGE MASTER TO
  5. > MASTER_HOST='192.168.1.31',
  6. > MASTER_PORT=3307,
  7. > MASTER_USER='rep',
  8. > MASTER_PASSWORD='123456';
  9. > EOF
5、檢查狀態是否同步
  1. [root@mysql opt]# mysql -uroot -p123456 -S /data/3306/mysql.sock -e "start slave;show slave status \G"
  2. ***************************1. row ***************************
  3. Slave_IO_State:Waitingfor master to send event
  4. Master_Host:192.168.1.31
  5. Master_User: rep
  6. Master_Port:3307
  7. Connect_Retry:60
  8. Master_Log_File: mysql-bin.000001
  9. Read_Master_Log_Pos:585
  10. Relay_Log_File: relay-bin.000004
  11. Relay_Log_Pos:253
  12. Relay_Master_Log_File: mysql-bin.000001
  13. Slave_IO_Running:Yes
  14. Slave_SQL_Running:Yes
  15. Replicate_Do_DB:
  16. Replicate_Ignore_DB: mysql
  17. Replicate_Do_Table:
  18. Replicate_Ignore_Table:
  19. Replicate_Wild_Do_Table:
  20. Replicate_Wild_Ignore_Table:
  21. Last_Errno:0
  22. Last_Error:
  23. Skip_Counter:0
  24. Exec_Master_Log_Pos:585
  25. Relay_Log_Space:403
  26. Until_Condition:None
  27. Until_Log_File:
  28. Until_Log_Pos:0
  29. Master_SSL_Allowed:No
  30. Master_SSL_CA_File:
  31. Master_SSL_CA_Path:
  32. Master_SSL_Cert:
  33. Master_SSL_Cipher:
  34. Master_SSL_Key:
  35. Seconds_Behind_Master:0 ##這個選項為0,表示正常
6、測試資料庫是否  主主複製
  1. 1、首先登錄3307資料庫
  2. [root@mysql scripts]# mysql -uroot -p123456 -S /data/3307/mysql.sock
  3. 2、創建zhurui1
  4. mysql> create database zhurui1;
  5. Query OK,1 row affected (0.02 sec)
  6. 3、登錄3306資料庫
  7. [root@mysql opt]# mysql -uroot -p123456 -S /data/3306/mysql.sock
  8. 4、檢查zhurui1 庫是否複製過來
  9. mysql> show databases;
  10. +--------------------+
  11. |Database|
  12. +--------------------+
  13. | information_schema |
  14. | beautifulgirl |
  15. | lian |
  16. | mysql |
  17. | performance_schema |
  18. | zhu |
  19. | zhurui |
  20. | zhurui1 |
  21. +--------------------+
  22. 8 rows in set (0.00 sec)
  23. mysql>
7、在zhurui 庫中創建表,測試是否主主複製
  1. mysql> use zhurui
  2. Database changed
  3. mysql> CREATE TABLE `t1`(
  4. ->`id` bigint(12) NOT NULL auto_increment,
  5. ->`name` varchar(12) NOT NULL,
  6. -> PRIMARY KEY (`id`)
  7. ->);
  8. Query OK,0 rows affected (0.04 sec)
  1. mysql> desc t1;##使用desc可以查看表結構
  2. +-------+-------------+------+-----+---------+----------------+
  3. |Field|Type|Null|Key|Default|Extra|
  4. +-------+-------------+------+-----+---------+----------------+
  5. | id | bigint(12)| NO | PRI | NULL | auto_increment |
  6. | name | varchar(12)| NO || NULL ||
  7. +-------+-------------+------+-----+---------+----------------+
  8. 2 rows in set (0.34 sec)
表中插入數據:
  1. mysql> insert into t1(name) values("woduibuqini");##插入數據的sql語句
  2. Query OK,1 row affected (0.01 sec)
  3. mysql> select *from t1;##查看t1庫
  4. +----+--------------+
  5. | id | name |
  6. +----+--------------+
  7. |1| zengqinglian |
  8. |3| woaini |
  9. |5| woduibuqini |
  10. +----+--------------+
  11. 3 rows in set (0.00 sec)
 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 接上一篇Mysql性能優化一 建立適當的索引 說起提高資料庫性能,索引是最物美價廉的東西了。不用加記憶體,不用改程式,不用調sql,只要執行個正確的'create index',查詢速度就可能提高百倍千倍,這可真有誘惑力。可是天下沒有免費的午餐,查詢速度的提高是以插入、更新、刪除的速度為代價的,這些寫 ...
  • 在部署環境時,不同的環境可能會有一些不同步,而個人遇到的問題就是在開發環境中表中均有欄位 BestCaseId 和 RiskId 欄位,生產環境中目前只有 BestCaseId 欄位,新搭建的測試環境中暫時都不存在這兩個欄位(某些原因需要另一單獨測試環境)。 保證在生產環境中的 BestCaseId ...
  • 1. Linux系統配置 1.1. vm.overcommit_memory設置 overcommit_memory文件指定了內核針對記憶體分配的策略,其值可以是0、1、2。 0, 表示內核將檢查是否有足夠的可用記憶體供應用進程使用;如果有足夠的可用記憶體,記憶體申請允許;否則,記憶體申請失敗,並把錯誤返回給 ...
  • 1. Redis主從配置 1.1. 設置主從複製 Master <= Salve 10.24.6.5:6379 <= 10.24.6.7:6379 1.2. 取消主從複製 1.3. 刪除所有數據 flushdb:刪除這個db下的。 flushall:刪除所有 2. Sentinel高可用配置 Sen ...
  • Range --創建分區表 create table emp3(id number(4) primary key,name varchar2(20),eff_dt date) partition by range(eff_dt) ( partition p1 values less than (to ...
  • 1. 參考文檔 http://xuwensong.elastos.org/2014/01/13/ubuntu-%E4%B8%8Bmysql-cluster%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AE/ 2. 簡介 MySQL-Cluster是一種技術,該 ...
  • 1.架構圖 註意 (一) Mysql需要把bind-address的配置去掉,否則無法實現虛擬ip訪問 (二) 關閉所有linux防火牆:/sbin/iptables –F(可能沒用) (三) 重啟networking:sudo /etc/init.d/networking restart(可能沒用 ...
  • 本文由ilanniweb提供友情贊助,首發於爛泥行天下 想要獲得更多的文章,可以關註我的微信ilanniweb 昨天把nginx的日誌進行了切割,關於如何切割nginx日誌,可以查看《爛泥:切割nginx日誌》這篇文章。 今天打算分析下nginx日誌,要分析nginx日誌,我們可以通過shell腳本... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...