1. 程式人生 > >MySQL5.7雙主架構搭建(基於GTID方式)

MySQL5.7雙主架構搭建(基於GTID方式)

系統:Centos6.5
資料庫IP:192.168.0.103、192.168.0.104

資料庫埠:都是3306


搭建MySQL步驟 略(詳見:https://blog.csdn.net/xiaoyi23000/article/details/53200205
1、在103節點/etc/my.cnf上配置(配置中只是關於GTID的引數配置,其他相關引數略)
server-id=1033306
relay-log=relay-log.log
binlog_format=ROW
#log_slave_updates=true    #MySQL5.7可以不啟用此引數,5.7版本使用了
gtid_executed表記錄同步複製的資訊,避免兩次寫入relay-log和binlog,降低了從庫磁碟I/O
gtid_mode=on
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
sync_master_info=1
slave_parallel_workers=2
binlog_checksum=CRC32
master_verify_checksum=1
slave_sql_verify_checksum=1
binlog_rows_query_log_events=1
log_bin=mysql-bin.log
#replicate_do_db=tt
slave_parallel_type=logical_clock
#MySQL5.7新增加的值,配置基於表的組提交併行復制,預設值為database(基於庫進行多執行緒複製,MySQL5.6是基於庫的方式進行多執行緒方式複製)建議改為logical_clock,基於表的組方式複製,提高複製的效率。

設定完成後重啟MySQL服務……

2、在104節點
/etc/my.cnf上配置(配置中只是關於GTID的引數配置,其他相關引數略)
server-id=1043306
relay-log=relay-log.log
binlog_format=ROW
#log_slave_updates=true
gtid_mode=on
enforce_gtid_consistency=ON
master_info_repository=TABLE


relay_log_info_repository=TABLE
sync_master_info=1
slave_parallel_workers=2
binlog_checksum=CRC32
master_verify_checksum=1
slave_sql_verify_checksum=1
binlog_rows_query_log_events=1
log_bin=mysql-bin.log
#replicate_do_db=tt
slave_parallel_type=logical_clock
設定完成後重啟MySQL服務……

3、先搭建已103為主,104為從的主從架構,然後再配置雙主的機構模型
①在103上建立104的複製使用者
mysql>create user [email protected]'192.168.0.104' identified by '123123';
mysql>grant replication slave on *.* to [email protected]'192.168.0.104';
②在104上執行復制操作,gtid配置命令如下:

change master to master_host='192.168.0.103', master_user='zhang', master_password='123123', master_port=3306, master_auto_position=1;

104從節點執行正常!!
4、上述已經以103為主,104為從的設定完畢後,再在其基礎上設定104節點為主,103為從的配置
在103主節點上建立新的使用者(※這點很重要,因為之前已經是主從配置,在103節點上建立會自動同步至104上,如果在104上建立使用者,可能會導致兩節點資料不一致情況發生)
mysql>create user [email protected]'192.168.0.103' identified by '123456';
mysql>grant replication slave on *.* to [email protected]'192.168.0.103';
5、然後在103上執行復制命令操作:

mysql>change master to master_host='192.168.0.104', master_user='feng', master_password='123456', master_port=3306, master_auto_position=1;
6、啟動設定的103節點為從的配置
mysql>start slave;

7、檢視配置情況:
mysql>show slave status\G;

8、測試配置:
①在192.168.0.103上

create database aaa;

create table a1 (id int,name varchar(12));
insert into a1 values (103,'張');

②分別在103、104庫上進行檢視資料
兩個庫上資料庫和表以及資料都存在!

==============================================================
③在192.168.0.104上
create database bbb;
create table b1 (id int,name varchar(12));
insert into b1 values (104,'曉楓');

④分別在103、104庫上進行檢視資料

兩個庫上資料庫和表以及資料都存在!


總結:經過上述操作,MySQL5.7基於GTID模式的雙主模型配置完畢,生產環境雙主模型一般都會做高可用,然後做讀寫分離架構,很少用到雙主同時寫庫操作,除非寫的頻率較高的庫,那樣還需要通過其他設定解決資料庫中表的主鍵衝突問題。


相關推薦

MySQL5.7架構搭建基於GTID方式

系統:Centos6.5資料庫IP:192.168.0.103、192.168.0.104資料庫埠:都是3306搭建MySQL步驟 略(詳見:https://blog.csdn.net/xiaoyi23000/article/details/53200205)1、在103節點

MySQL5.7一從多源複製同步配置

MySQL5.7多主一從(多源複製)同步配置(抄襲) 原文地址:https://my.oschina.net/u/2399373/blog/2878650 多主一從,也稱為多源複製,資料流向: 主庫1 -> 從庫s 主庫2 -> 從庫s 主庫n -> 從庫s 應用場

Centos6.5 Mysql5.7一從 多臺主機上拉取的資料 合併到同一臺數據庫

我也是多文件參考,摸著石頭過河,花了不少時間,不過最終是配置成功(在配置的時候如果遇到錯誤,請自己找度娘解決) 以下是轉過來的部分做了修改:尊重原創,原創無價 #### 解決思路: 1、主資料庫使用Innodb引擎,並設定sql_mode為 NO_AUTO_CREATE_USER 2、從

MySQL 5.7一從多源複製同步配置

下載網站:www.SyncNavigator.CN   客服QQ1793040 ----------------------------------------------------------     關於HKROnline

CentOS 7 使用者/密碼vsftpd搭建主動模式/PORT

一、CentOS 7 非匿名vsftpd搭建(主動模式/PORT) 檢查是否安裝了vsftp,輸入命令: rpm -qa | grep vsftpd 返回版本資訊則已安裝,沒有,則未安裝。 啟動vsftpd systemctl start vsftpd 配置v

zabbix4.0搭建基於CentOS6.8

環境 服務端:188.188.3.241,系統:centos6.8,mysql:5.7.3,php:5.4.9,nginx:1.12.0 =================================================分割線==================================

springcloud簡單搭建基於springboot2.0

主要是看到關於這種搭建的簡單東西可以賺到很多積分,於是就想去寫一個。 基於srpingboot2.0 搭建   註冊中心搭建  每一個專案module 最好是建 web   當然IDEA也有那些標準的模板   pom.x

程式設計工具Mac下的Java環境和Node.js/Ruby開發環境搭建基於Intellj Idea

參考: 一、Mac下的Java環境配置 1. 安裝Jdk 下載Mac版本的JDK,下好之後安裝,此時在bash中使用java -version命令已經看到Version號。 Mac支援多版本Java虛擬機器的選擇,選擇如下: 開啟Java控制檯之後可以在Desktop

mysql5.7安裝各種問題解決總結中…………。

1.service mysqld start 錯誤:/etc/init.d/mysqld: line 252: my_print_defaults: command not found Starting MySQL ERROR! Couldn't find MySQL se

uboot,核心uImage,網路根檔案系統nfs的搭建基於友善mini2440

基於友善的mini2440的環境搭建。(通過uboot下載,採用nfs根檔案系統的方式) 連上usb轉串列埠線,電源線,USB下載線,網線一頭接電腦、一頭接開發板。 開關打到NOR,啟動, 進入NOR上的supervivi介面,按a,通過DNW下載u-boot.bin到NA

實現微信開啟網頁時,獲取當前微信使用者資訊Java基於snsapi_userinfo方式

/** * 1 第一步:使用者同意授權,獲取code * 2 第二步:通過code換取網頁授權access_token * 3 第三步:重新整理access_token(如果需要) * 4 第四步:拉取使用者資訊(需scope為 snsapi_user

springMVC第一個demo基於註解方式

因為粗心沒仔細看報錯資訊所以搭建了好久,剛好有時間就記錄下來,希望其他訪問不到Controller類的初學者不要跟我一樣粗心浪費時間 jre版本:1.8 tomca版本:v9.0 spring版本:5.0.1 導包:本人匯入了spring的所有包,沒出現問題,不知道有沒有壞處,高手路過可以指

Webservice06---SOAP訊息的傳遞和處理基於Message方式

使用Message方式傳遞和處理SOAP訊息。 1.1、建立服務 private String wsdlUrlStr = "http://localhost:9999/ns?wsdl"; private String targetNameSpace

STM32之ADC例項基於DMA方式

ADC簡介:     ADC(Analog-to-Digital Converter,模/ 數轉換器)。也就是將模擬訊號轉換為數字訊號進行處理,在儲存或傳輸時,模數轉換器幾乎必不可少。    STM32在片上整合的ADC外設非常強大,我使用的奮鬥開發板是STM32F103V

edittext 插入表情基於socket方式

大家在用android版的qq時候一定見過有傳送表情這樣一個功能,我們知道類似qq這樣的即時通訊軟體基本上都是通過socket方式實現的,在網上找了找有些網友已經實現了在edittext裡面插入表情,但是真正基於 socket實現的還真沒找到,在很一些網友幫助下加上自己的摸索終於實現了基於socket方式傳

基於Windows7下snort+apache+php 7 + acid或者base + adodb + jpgraph的入侵檢測系統的搭建圖文詳解推薦

為什麼,要寫這篇論文?    是因為,目前科研的我,正值研三,致力於網路安全、大資料、機器學習、人工智慧、區域鏈研究領域!   論文方向的需要,同時不侷限於真實物理環境機器實驗室的攻防環境、也不侷限於真實物理機器環境實驗室的大資料叢集平臺。在此,為了需要的博友們,能在自己虛擬機器裡(我這裡

mysql5.7機主熱備

熱備這個東西必然消耗資源,對mysql應用的影響暫時還沒有研究,對mysql操作頻繁的場景下必然會有影響。 資料需要備份的請參考我的博文 mysql資料備份 先下載mysql的rpm安裝包。本文件預設是離線環境。 若無特殊說明,操作預設雙機都要進行。 首先下載rpm安裝包 mysql

MySQL5.7.17主從複製搭建(一一從)教程詳解

mysql> stop slave; #暫停從庫 mysql>CHANGE MASTER TO MASTER_HOST='192.168.0.120',MASTER_USER='repl', MASTER_PASSWORD='[email protected]',MASTER_LOG_

Hadoop-2.7.6namenode配置搭建HA高可用叢集部署教程

配置雙namenode的目的就是為了防錯,防止一個namenode掛掉資料丟失,具體原理本文不詳細講解,這裡只說明具體的安裝過程。Hadoop HA的搭建是基於Zookeeper的,關於Zookeeper的搭建可以檢視這裡 hadoop、zookeeper、hbase、spa

基於CentOS 7 web服務環境搭建包含JDK+Nginx+Tomcat+Mysql+Redis

前言 安裝和配置防火牆 安裝telnet服務語言包 安裝JDK 安裝Nginx