mysql 主主結構_高性能mysql主主架構

(3)配置參數說明

server-id:ID值唯一的標識了復制群集中的主從服務器,因此它們必須各不相同。master_id必須為1到232–1之間的一個正整數值,slave_id值必須為2到232–1之間的一個正整數值。

log-bin:表示打開binlog,打開該選項才可以通過I/O寫到Slave的relay-log,也是可以進行replication的前提;

binlog-do-db:表示需要記錄進制日志的數據庫。如果有多個數據庫可用逗號分隔,或者使用多個binlog-do-db選項

binlog-ignore-db:表示不需要記錄二進制日志的數據庫。如果有多個數據庫可用逗號分隔,或者使用多個binlog-do-db選項

replicate-do-db:表示需要同步的數據庫,如果有多個數據庫可用逗號分隔,或者使用多個replicate-do-db選項

replicate-ignore-db=mysql:表示不需要同步的數據庫,如果有多個數據庫可用逗號分隔,或者使用多個replicate-ignore-db=mysql選項

log-slave-updates:配置從庫上的更新操作是否寫入二進制文件,如果這臺從庫,還要做其他從庫的主庫,那么就需要打這個參數,以便從庫的從庫能夠進行日志同步

slave-skip-errors:在復制過程,由于各種原因導致binlog中的sql出錯,默認情況下,從庫會停止復制,要用戶介入。可以設置Slave-skip-errors來定義錯誤號,如果復制過程中遇到的錯誤號是定義的錯誤號,便可以跳過。如果從庫是用來做備份,設置這個參數會存在數據不一致,不要使用。如果是分擔主庫的查詢壓力,可以考慮。

sync_binlog=1 or N:sync_binlog的默認值是0,這種模式下,MySQL不會同步到磁盤中去。這樣的話,MySQL依賴操作系統來刷新二進制日志binary log,就像操作系統刷其他文件的機制一樣。因此如果操作系統或機器(不僅僅是MySQL服務器)崩潰,有可能binlog中最后的語句丟失了。

要想防止這種情況,你可以使用sync_binlog全局變量,使binlog在每N次binlog寫入后與硬盤同步。當sync_binlog變量設置為1是最安全的,因為在crash崩潰的情況下,你的二進制日志binary log只有可能丟失最多一個語句或者一個事務。但是,這也是最慢的一種方式(除非磁盤有使用帶蓄電池后備電源的緩存cache,使得同步到磁盤的操作非常快)。

即使sync_binlog設置為1,出現崩潰時,也有可能表內容和binlog內容之間存在不一致性。

auto_increment_offset和auto_increment_increment:auto_increment_increment和auto_increment_offset用于主-主服務器(master-to-master)復制,并可以用來控制auto_increment列的操作。兩個變量均可以設置為全局或局部變量,并且假定每個值都可以為1到65,535之間的整數值。將其中一個變量設置為0會使該變量為1。

這兩個變量影響auto_increment列的方式:auto_increment_increment控制列中的值的增量值,auto_increment_offset確定auto_increment列值的起點。

如果auto_increment_offset的值大于auto_increment_increment的值,則auto_increment_offset的值被忽略。

(4)服務器A和服務器B分別啟動mysql服務

服務器A:

[root@shenma?~]#?service?mysqld?restart

Shutting?down?MySQL.....?SUCCESS!

Starting?MySQL.........................?SUCCESS!

服務器B:

[root@shenma1?~]#?service?mysqld?restart

Shutting?down?MySQL.....?SUCCESS!

Starting?MySQL...........?SUCCESS!

(5)分別查看主備服務器狀態

服務器A:

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.03 sec)

注:這里鎖表的目的是為了生產環境中不讓進新的數據,好讓從服務器定位同步位置。同步完成后,記得解鎖

mysql>unlock tables;

mysql> show master status \G;

*************************** 1. row ***************************

File: mysql-bin-1.000001

Position: 120

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

ERROR:

No query specified

服務器B:

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.07 sec)

mysql> show master status\G

*************************** 1. row ***************************

File: mysql-bin-2.000001

Position: 120

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.07 sec)

(6)分別在服務器A、B上用change master語句指定同步位置

服務器A:

mysql> change master to

-> master_host='192.168.0.108',

-> master_user='repluser',

-> master_password='123456',

-> master_log_file='mysql-bin-2.000001',

-> master_log_pos=120;

Query OK, 0 rows affected, 2 warnings (0.84 sec)

服務器B:

mysql> change master to

-> master_host='192.168.0.105',

-> master_user='repluser',

-> master_password='123456',

-> master_log_file='mysql-bin-1.000001',

-> master_log_pos=120;

Query OK, 0 rows affected, 2 warnings (0.11 sec)

(7)分別在服務器A,B上啟動從服務器線程

服務器A:

mysql> start slave;

Query OK, 0 rows affected (0.23 sec)

服務器B:

mysql> start slave;

Query OK, 0 rows affected (0.23 sec)

(8)分別在服務器A,B查看從服務器狀態

服務器A:

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.0.108

Master_User: repluser

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin-2.000001

Read_Master_Log_Pos: 120

Relay_Log_File: shenma-relay-bin.000002

Relay_Log_Pos: 285

Relay_Master_Log_File: mysql-bin-2.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

服務器B:

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.0.105

Master_User: repluser

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin-1.000001

Read_Master_Log_Pos: 120

Relay_Log_File: shenma1-relay-bin.000002

Relay_Log_Pos: 285

Relay_Master_Log_File: mysql-bin-1.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

(9)測試主主同步

服務器A:創建數據庫wql

mysql> create database wql;

Query OK, 1 row affected (0.06 sec)

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| performance_schema |

| test ? ? ? ? ? ? ? |

| wordpress ? ? ? ? ?|

| wql ? ? ? ? ? ? ? ?|

+--------------------+

6 rows in set (0.00 sec)

服務器B:查看是否同步wql數據庫

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| performance_schema |

| test ? ? ? ? ? ? ? |

| wql ? ? ? ? ? ? ? ?|

+--------------------+

5 rows in set (0.07 sec)

(10)雙向測試

服務器B:創建shenma庫

mysql> create database shenma;

Query OK, 1 row affected (0.01 sec)

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| performance_schema |

|?shenma?? ? ? ? ? ? |

| test ? ? ? ? ? ? ? |

| wql ? ? ? ? ? ? ? ?|

+--------------------+

6 rows in set (0.00 sec)

服務器A:查看shenma庫是否同步

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| performance_schema |

| shenma ? ? ? ? ? ? |

| test ? ? ? ? ? ? ? |

| wordpress ? ? ? ? ?|

| wql ? ? ? ? ? ? ? ?|

+--------------------+

7 rows in set (0.00 sec)務器的tmysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| performance_schema |

| shenma ? ? ? ? ? ? |

| test ? ? ? ? ? ? ? |

| wordpress ? ? ? ? ?|

| wql ? ? ? ? ? ? ? ?|

+--------------------+

7 rows in set (0.00 sec) ret gdf g

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539671.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539671.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539671.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解決ios編譯swift報錯pcm was built: mtime changed

問題 編譯ios工程失敗時,其中的幾個swift文件報以下錯 /Users/tomes/code/project/xxx.swift File /Users/tomes/Library/Developer/Xcode/DerivedData/Spec-dgyhrnmgvfkjkqbboklnfgrudqip/Build/Products/Debug-iphoneos/xxxx.framework/Headers/xxxx.h has been…

AI工程師職業規劃和學習路線完整版

AI工程師職業規劃和學習路線完整版 如何成為一名機器學習算法工程師 成為一名合格的開發工程師不是一件簡單的事情,需要掌握從開發到調試到優化等一系列能 力,這些能力中的每一項掌握起來都需要足夠的努力和經驗。而要成為一名合格的機器學習算法工程師&…

oracle 多個with as

主要看多個with的格式 [sql] view plaincopy WITH T3 AS ( SELECT T1.ID, T1.CODE1, T2.DESCRIPTION FROM TB_DATA T1, TB_CODE T2 WHERE T1.CODE1 T2.CODE ), T4 AS ( SELECT T1.ID, T1.CODE2, T2.DESCRIPTION FROM TB_DATA T1, TB_CODE T2 WHERE T1.C…

mysql主鍵 命中率_mysql主鍵問題

MySQL主鍵一. MySQL主鍵設計原則MySQL主鍵應當是對用戶沒有意義的。MySQL主鍵應該是單列的,以便提高連接和篩選操作的效率(當然復合主鍵是可以的,只是不建議)永遠也不要更新MySQL主鍵MySQL主鍵不應包含動態變化的數據,如時間戳、創建時間列、…

Centos7常用命令[掛載文件系統]

Centos7常用命令[掛載文件系統]------------------------------------------------------------------------------# 掛載一個叫做hda2的盤-確定目錄/mnt/hda2已經存在[rootlocalhost ~]# mount /dev/hda2 /mnt/hda2# 卸載一個叫做hda2的盤-先從掛載點/mnt/hda2退出[rootlocalh…

hadoop SecondNamenode

一、定義 * The Secondary Namenode is a helper to the primary Namenode. * The Secondary is responsible for supporting periodic checkpoints * of the HDFS metadata. The current design allows only one Secondary * Namenode per HDFs cluster. * The Secondary Nam…

Tensorflow Python API 翻譯(sparse_ops)

作者:chen_h 微信號 & QQ:862251340 微信公眾號:coderpai 我的博客:請點擊這里計劃現將 tensorflow 中的 Python API 做一個學習,這樣方便以后的學習。 原文鏈接該章介紹有關稀疏張量的API稀疏張量表示對于多維稀疏…

高性能mysql 小查詢_高性能MySql進化論(十一):常見查詢語句的優化

總結一下常見查詢語句的優化方式1 COUNT1. COUNT的作用 COUNT(table.filed)統計的該字段非空值的記錄行數 COUNT(*)或者是COUNT(not nullable field) 統計的是全表的行數如果要是統計全表記錄數,COUNT(*)效率會比COUNT(not nullable fie…

ORA-01861: 文字與格式字符串不匹配

select to_date(20160401000000,yyyy-mm-dd) from dual; ---------- 報錯:ORA-01861: 文字與格式字符串不匹配 原因:字符串20160401000000與要轉換的格式 yyyy-mm-dd 格式不對。 20160401000000 是 yyyymmddhh24miss 格式的 -------- select to_da…

首席架構師徐海峰眼中的架構和出色的架構師

CSDN架構領域編輯采訪了一些與會講師,談談他們將在會上分享的內容、相關技術和程序人生,帶你領略講師風采。 本期我們采訪的講師是來自閱文集團首席架構師徐海峰,主要負責內容中心的網站架構和分布式存儲、分布式計算工作。10年互聯網開發經驗…

java socket建立長連接_Java Web項目中使用Socket通信多線程、長連接的方法

很多時候在javaweb項目中我們需要用到Socket通信來實現功能,在web中使用Socket我們需要建立一個監聽程序,在程序啟動時,啟動socket監聽。我們的應用場景是在java項目中,需要外接如一個硬件設備,通過tcp通信&#xff0c…

hadoop-eclipse-plugin使用

下載hadoop安裝包:http://www.carfab.com/apachesoftware/hadoop/common/hadoop-1.0.2/ 但是沒有plugin,我到這個地方下載的:http://ishare.iask.sina.com.cn/f/23642243.html?fromlikecopy到你的eclipse_home的plugins下面。配置map/reduce…

hadoop eclipse plugin windows下載集合

收集了hadoop穩定版本的eclipse plugin for windows。資源分一律為0分 hadoop-eclipse-plugin-1.2.1.jar http://download.csdn.net/detail/zengmingen/9488180 hadoop-eclipse-plugin-2.2.0.jar http://download.csdn.net/detail/zengmingen/9488182 hadoop-eclipse-pl…

java 記事本界面_JAVA/GUI程序之記事本

自上半年JAVA課程結束后,再也沒有看過JAVA了,最近不是很忙,又簡單的看了看,本博客純屬記錄學習過程,請大神們別笑,其中錯誤是難免的,畢竟是新手寫的博客。下面就進入我們的正題吧,復…

104. Maximum Depth of Binary Tree

104. Maximum Depth of Binary Tree 題目 Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 解析 // Maximum Depth of Binary Tree class Solution { publ…

mapper-reducer word count 實例

統計一個文件里各單詞的個數,假設這個文件很大。 原理如下圖: 編寫代碼: WCMapper.java package zengmg.hadoop.mr.wordcount;import java.io.IOException;import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; …

java 遠程調用url_使用Java的URL/HttpURLConnection進行遠程調用(POST請求)

利用Java的HttpURLConnection進行遠程url請求(調用遠程接口)測試類:請求類型為json,以post方式請求,利用OutputStream寫入數據實體類:public class User implementsSerializable {privateString name;privateString password;publicString ge…

LindDotNetCore~職責鏈模式的應用

回到目錄 職責鏈模式 它是一種設計模塊,主要將操作流程與具體操作解耦,讓每個操作都可以設置自己的操作流程,這對于工作流應用是一個不錯的選擇! 下面是官方標準的定義:責任鏈模式是一種設計模式。在責任鏈模式里&…

MR程序的幾種提交運行模式

MR程序的幾種提交運行模式 本地模型運行 1/在windows的eclipse里面直接運行main方法,就會將job提交給本地執行器localjobrunner執行 ----配置path:D:\hadoop-2.7.2\bin ----配置hadoop_home:D:\hadoop-2.7.2 ----復制 hadoop.dll和winutil…

構件之法讀書筆記04

我們前兩周我們團隊一起制作了一個大學生記賬軟件,但是我們沒有對我們的軟件進行測試,只要是這個功能能夠順利進行,我們就覺得OK。 其實,我認為我們的軟件是有問題的,對于一些極限的操作能否完成,在各種環境…