mysql主備複製搭建
這裡我使用單臺伺服器上的兩個mysql例項進行搭建,主要用到了mysql自帶的mysqld_multi
一、複製原理
開始搭建前有個mysql複製原理的基礎知識需要補充:
mysql進行主備複製使用到了三個執行緒:
1.主庫上的轉儲存執行緒:
會將mysql server提交的事務寫入到二進位制檔案中,這個二進位制檔案就叫做binlog。
2.備庫上的連線執行緒:
備庫啟動後,負責和主庫通訊,讀取binlog,同時,將binlog儲存進自己的一個叫中繼日誌的relaylog中。
3.備庫上的relaylog重放執行緒:
此執行緒會將relaylog中的事件在備庫上進行回放,說白點就是重新執行一次
二、搭建步驟
1./etc新增檔案mysqld_multi.cnf
將/user/share/mysql/my-innodb-heavy-4G.cnf檔案複製到/etc,重新命名為xxx.cnf(任何你想要的名字)
在配置檔案中新增兩個例項
Java程式碼
1. [mysqld1]
2. # generic configuration options
3. port = 3306
4. socket = /home/tmp/server1/mysql1.sock
5. datadir = /home/mysql/data1
6. log-error = /home/mysql/data1/error.log
7. pid-file = /home/mysql/data1/mysql1.pid
8. log_bin = mysql-bin
9. server_id = 101
10.
11. [mysqld2]
12. port = 3307
13. socket = /home/tmp/server2/mysql2.sock
14. datadir = /home/mysql/data2
15. log-error = /home/mysql/data2/error.log
16. pid-file = /home/mysql/data2/mysql2.pid
17. log_bin = mysql-bin
18. server_id = 102
19. relay_log = /home/relaylog/mysql-relay-bin
20. log_slave_updates = 1
21. read_only = 1
這裡我會將將mysqld1這個例項做為主庫,mysqld2這個例項作為備庫
2.做好了配置之後開啟兩個例項:
mysqld_multi--defaults-file=xxx.cnf start 1,2 &
3.開啟例項後檢測兩個例項是否正常啟動:
mysqld_multi --defaults-file=xxx.cnf report 1
mysqld_multi --defaults-file=xxx.cnf report 2
如果都看到如下結果,說明例項已啟動成功:
4.開啟複製前主庫的準備工作:
1.在主庫上增加一個複製賬號:
使用sock檔案登陸mysql:
mysql -u root -S/home/tmp/server1/mysql1.sock(這個套接字檔案還記得嗎,是在之前定義例項的時候 定義的)
Java程式碼
1. grant replication slave,replication client on *.* to [email protected]'127.0.0.1' identified by 'xxxxx';
2.檢視主庫上的binlog是否開啟:
showmaster status;
Java程式碼
1. +------------------+----------+--------------+------------------+
2. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
3. +------------------+----------+--------------+------------------+
4. | mysql-bin.000001 | 507 | | |
5. +------------------+----------+--------------+------------------+
mysql-bin.000001這個檔案的字首就是你在配置例項1時指定的log-bin。
5.開啟複製:
登陸到備庫:
mysql -u root-S/home/tmp/server2/mysql2.sock
Java程式碼
1. change master to master_host = "localhost",
2. master_user = 'repl',
3. master_password = 'xxx',(你之前在主庫上建立複製賬號時指定的)
4. master_log_file = 'mysql-bin.000001',
5. master_log_pos = 0,
6. master_port = 3306;
檢視複製是否開始工作:
Java程式碼
1. Slave_IO_State: Waiting for master to send event
2. Master_Host: localhost
3. Master_User: repl
4. Master_Port: 3306
5. Connect_Retry: 60
6. Master_Log_File: mysql-bin.000001
7. Read_Master_Log_Pos: 507
8. Relay_Log_File: mysql-relay-bin.000174
9. Relay_Log_Pos: 235
10. elay_Master_Log_File: mysql-bin.000001
11. Slave_IO_Running: Yes
12. Slave_SQL_Running: Yes
當看到Slave_IO_Running: Yes 和 Slave_SQL_Running:Yes證明io通訊執行緒和sql回放執行緒都已經啟動。至此,主備複製結構配置完成
相關推薦
mysql主備複製搭建
這裡我使用單臺伺服器上的兩個mysql例項進行搭建,主要用到了mysql自帶的mysqld_multi 一、複製原理 開始搭建前有個mysql複製原理的基礎知識需要補充: mysql進行主備複製使用到了三個執行緒: 1.主庫上的轉儲存執行緒: 會將mysql se
mysql主備環境搭建
#主機配置: service mysqld stop #配置my.cnf: vim /etc/my.cnf log-bin=mysql-bin-master #啟用二進位制日誌 server-id = 1 #本機資料庫ID 標示 binlog-do-db=sdg
MySQL主備複製原理、實現及異常處理
複製概述 MySQL支援三種複製方式:基於行(Row)的複製、基於語句(Statement)的複製和混合型別(Mixed)的複製。 基於語句的複製早在3.23版本中就存在,而基於行的複製方式在5.1版本中才被加進來。這兩種方式都是通過在主庫上記錄二進位制日誌
mysql+mycat搭建穩定高可用叢集,負載均衡,主備複製,讀寫分離
資料庫效能優化普遍採用叢集方式,oracle叢集軟硬體投入昂貴,今天花了一天時間搭建基於mysql的叢集環境。 主要思路 簡單說,實現mysql主備複製-->利用mycat實現負載均衡。 比較了常用的讀寫分離方式,推薦mycat,社群活躍,效能穩定。 測試環境 MYSQL版
MySQL建立雙向主備複製伺服器配置方法
1、環境描述 伺服器A(主) 192.85.1.175 伺服器B(從) 192.85.1.176 Mysql版本:5.1.61 系統版本:System OS:ubuntu 10.10 X86 (系統安裝及資料環境搭建,省略) 2. 建立同步使用者: 在
mysql主備搭建
mysql主備(master-slave)搭建 環境:mysql5.7.21(master),mysql5.7.20(slave) ===========================master server===================
mysql主備模式的讀寫分離與主從複製
從資料庫層面上對負載做優化的方法各式各樣。從書上看到分表分庫等常見手段,後來學習別人部落格才明白分表分庫各自天生缺點使他無法成為主流而並沒有那麼多人用,正好畢業設計想嘗試一下主從的架構,所以這裡一邊搭建一邊做記錄。 目錄: 1.介紹 2.應用層面實現mysql讀寫分離
LVS+Keepalived+Mysql+主備數據庫架構
pos extra top k with 定義 compiler probe http 不一致 這是一個坑...磨了不少時間。見證自己功力有待提升。。。 架構圖 數據庫 1.安裝數據庫 這塊不難, 直接引用: mysql安裝 2.數據庫主備 這塊不難
keepalive基礎知識及主備模型搭建
其中 devel ring ice inux 文件中 實現 unit emd lvs模型屬於單點故障,對real server的健康狀態檢查可以通過寫腳本實現,keepalived可以實現高可用:keepalive:vrrp協議在Linux主機上以守護進程方式的實現; 能夠
Linux下PostgreSQL主備環境搭建和切換
1. 概念 資料庫熱備:資料庫熱備是指為主資料庫的建立、維護和監控一個或多個備用資料庫,它們時刻處於開機狀態,同主機保持同步。當主機失靈時,可以隨時啟用熱備資料庫來代替,以保護資料不受故障、災難、錯誤和崩潰的影響。 流複製(streaming replication):PostgreSQL提
《深入淺出MySQL:資料庫開發、優化與管理維護(2nd)》第31章之MySQL半同步複製搭建學習筆記
MySQL的非同步複製在使用的過程中,主庫和從庫的資料之間存在一定的延遲,這樣存在一個隱患:當在主庫上寫入一個事務並提交成功,而從庫尚未得到主庫推送的Binlog日誌時,主庫宕機了,例如主庫可能因磁碟損壞、記憶體故障等造成主庫上該事務Binlog丟失,此時從庫就可能損失這個事務,從而造成主從不一致。
【MySQL】主從複製搭建
前言 MySQL能夠將一個 MySQL Server的 Instance 中的資料完整的複製到另外一個 MySQL Server 的 Instance 中,雖然複製過程並不是實時而是非同步進行的,但是延時非常之少 搭建步驟 1. 修改主伺服器配置 新增使用
mysql之 誤用SECONDS_BEHIND_MASTER衡量MYSQL主備的延遲時間
連結:http://www.woqutech.com/?p=1116 MySQL 本身通過 show slave status 提供了 Seconds_Behind_Master ,用於衡量主備之間的複製
分散式Redis主備複製
當資料落在不同節點上時,如何保證資料節點之間的一致性是非常關鍵的 Redis採用主備複製的方式保證一致性,所有節點中,只有一個節點為主節點(master),它對外提供寫服務,然後非同步的將資料複製到其他節點上 主備複製流程 Redis包含master 和slave 2種節點: ma
postgres HA 主備環境搭建
1. postgres 主備環境搭建 1.1 HA 實現方式 熱備份、冷備份 冷備份:物理備份,也就是檔案複製。主機寫完一個WAL日誌檔案後,才複製到standby伺服器上去應用。 熱備份:流複製,也就是同步複製或非同步複製。主備機實時同步
mysql 主備配置
1、準備: 主機: master 192.168.40.129 slave 192.168.40.130mysql版本 mysql5.7mysql啟動 service mysqld start防火牆關閉 service
mysql半同步複製搭建及驗證測試
非同步複製:客戶端提交日誌後,主庫寫入日誌到binlog,即可成功返回給客戶端。 半同步複製:客戶端提交日誌後,主庫寫入日誌到binlog,需等待其中一個slave也接收到binlog事務併成功寫入relay log後,主庫才返回commmit操作成功給客戶端。 如果主庫與
MySQL主備模式的資料一致性解決方案
根據阿里交易型業務的特點,以及在雙十一這樣業內罕有的需求推動下,我們在官方的MySQL基礎上增加了非常多實用的功能、效能補丁。
mysql主備切換canal出現的問題解析
通過配置VIP,在進行主備切換時,出現的報錯資訊: 1.當主備節點當前binlog檔名稱相同時,原主節點的position小於主備切換後的position,出現如下報錯: 2020-07-02 15:08:09,332 INFO [destination = 1-236 , address = /192.1
mysql+mycat搭建穩定高可用集群,負載均衡,主備復制,讀寫分離
root用戶 架構 .bat 出現 內存 ace 權威指南 上層 復制 主要思路 測試環境 實現mysql主備復制 配置A主mysql 配置B備mysql 驗證同步配置結果 驗證是否同步 關閉B備mysql的同步,驗證讀寫分離