首頁 資料庫 mysql教程 mysql5.6复制新特性

mysql5.6复制新特性

Jun 07, 2016 pm 04:14 PM
server 複製 新特性 特性

一、名词解释: 1: server_uuid:服务器身份ID。在第一次启动Mysql时,会自动生成一个server_uuid并写入到数据目录下auto.cnf文件里,官方不建议修改。 [root@mysql5_6 data]# pwd /usr/local/mysql/data [root@mysql5_6 data]# cat auto.cnf [auto] server

一、名词解释:

1:

server_uuid:服务器身份ID。在第一次启动Mysql时,会自动生成一个server_uuid并写入到数据目录下auto.cnf文件里,官方不建议修改。

[root@mysql5_6 data]# pwd

/usr/local/mysql/data

[root@mysql5_6 data]# cat auto.cnf

[auto]

server-uuid=b0869d03-d4a9-11e1-a2ee-000c290a6b8f

2:

GTID:全局事务标识符。当开始这个功能时,每次事务提交都会在binlog里生成一个唯一的标示符,它由server_uuid和事务ID组成。首次提交的事务ID为1,第二次为2,第三次为3,依次类推。

查看主机master

show master status;

File  Position   Binlog_Do_DB Binlog_Ignore_DB   Executed_Gtid_Set

binlog.000001 184761                    D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:1-515

在binlog日志已经存在的D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:1-515值,如果有新进来的binlog日志中的gtid有和原来有重复,新进来的语句不执行。

 

二、新特性

1:支持多线程复制.事实上是针对每个database开启相应的独立线程。即每个库有一个单独的(sql thread)如果线上业务中,只有一个database或者绝大多数压力集中在个别database的话,多线程并发复制特性就没有意义了

2:启用GTID,无须再知道binlog和POS点,需要知道master的IP、端口,账号密码即可,因为同步复制是自动的,mysql通过内部机制GTID自动找点同步

在my.cnf使用

gtid_mode = ON

disable-gtid-unsafe-statements = 1

注意:这两个参数无法在线修改,只能在my.cnf修改。

 

三、问题:

GTID的局限性:

1.GTID同步复制是基于事务。所以Myisam表不支持,这可能导致多个GTID分配给同一个事务。

(5.6.9版本已经修改,支持修改Myisam)

2.gtid_mode和disable-gtid-unsafe-statements必须同时使用,不同时使用,启动Mysql报错。

3.无法修改myisam表的数据,会提示Updates to non-transactional tables are forbidden when disable-gtid-unsafe-statements"

4.不支持CREATE TEMPORARY TABLE、DROP TEMPORARY TABLE 临时表操作

5.不支持CREATE TABLE ... SELECT语句。因为该语句会被拆分成create table 和insert两个事务,并且这个两个事务被分配了同一个GTID,这会导致insert被备库忽略掉

6.GTID是自动同步,复制的时候没办法使用全备份+偏移量日志这种办法还原,从机的第一次同步只能从主机的第一个事务点开始还原,所以主机的binlog日志必须保持完整,binlog日志不能丢失。(mysql手册说mysql5.6.9以后的版本可以使用全备份+偏移量日志这种办法还原,继续等待mysql5.6.9出来后再测试)。

以上的问题是RC版,相信到了正式版出来后,问题会有很大的改善。

 5.6.9的测试结果支持全备份+偏移量日志,执行mysqldump命令的时候,在dmp文件中会记录SET @@GLOBAL.GTID_PURGED='E6916BE4-4E3F-11E2-BBC7-000C29EE3F03:1-157',但是设置GTID_PURGED ,必须保证gtid_executed没有设置过,执行reset master即可。)

 

四、测试步骤:

1:在my.cnf设置相应的参数

在master设置

log-bin = binlog

binlog_format = mixed

gtid_mode = ON

disable-gtid-unsafe-statements = 1

binlog_cache_size = 4M

max_binlog_size = 1G

max_binlog_cache_size = 2G

sync_binlog = 1

expire_logs_days = 1

 

在slave设置

#binlog

log-bin = binlog

binlog_format = mixed

gtid_mode = ON

disable-gtid-unsafe-statements = 1

binlog_cache_size = 4M

max_binlog_size = 1G

max_binlog_cache_size = 2G

sync_binlog = 1

expire_logs_days = 1

slave_parallel_workers #开启基于库的多线程复制。默认是0,不开启,最大并发数为1024个线程

#relay log

max_relay_log_size = 1G

relay_log_purge = 1

relay_log_recovery = 1 #当被设置成ENABLED,在CRASH后自动放弃所有未执行的relay-log,并且重新从MASTER获取日志;这样保证relay-log的完整

#master_verify_checksum = 1 #主从复制事件校验,master

#slave_sql_verify_checksum = 1 #主从复制事件校验

#slave_allow_batching = 1

log_slave_updates

 

2:在slave执行

CHANGE MASTER TO

MASTER_HOST = '127.0.0.1',

MASTER_PORT = 3306,

MASTER_USER = 'rel',

MASTER_PASSWORD = '123',

MASTER_AUTO_POSITION = 1,

MASTER_DELAY=30; #延时30秒执行

注意:此参数功能,relay日志会及时同步到slave机,只是日志的中的事件会根据事件的时间戳延时30秒执行。此功能在实际场景中运用也较多。

3:启动slave

start slave;

 

五、观察结果:

在slave执行 show slave status \G;

观察Retrieved_Gtid_Set和Executed_Gtid_Set项。

Retrieved_Gtid_Set: D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:2602

Executed_Gtid_Set: D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:1-2602

Retrieved_Gtid_Set项:记录了relay日志从Master获取了binlog日志的位置

Executed_Gtid_Set项:记录本机执行的binlog日志位置(如果是从机,包括Master的binlog日志位置和slave本身的binlog日志位置)

 

预测:

Executed_Gtid_Set:从本机的binlog中获取,如果binlong日志中记录了主机的Gtid,那么即使我们在从机重新同步,从机的IO进程依然不会从主机获取这些数据,

 

测试如下:

第一步:在slave执行:show slave stauts \G;

Retrieved_Gtid_Set: D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:1-2601

Executed_Gtid_Set: D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:1-2601

显示的Slave从Master同步,relay获取了执行了D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:1-2601,然后执行,在binglog日志中记录了D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:1-2601。

第二步:在slave执行

1:stop slave;

2:reset slave;

3:删除所有relay文件;

4:CHANGE MASTER TO

MASTER_HOST = '127.0.0.1',

MASTER_PORT = 3306,

MASTER_USER = 'rel',

MASTER_PASSWORD = '123',

MASTER_AUTO_POSITION = 1,

MASTER_DELAY=30;

 

5:start slave;

执行show slave status \G;

Retrieved_Gtid_Set:

Executed_Gtid_Set: D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:1-2601

Retrieved_Gtid_Set项没有值,说明重新同步的时候,relay没有从master取数据。

第三步:在master执行一条sql语句

在slave执行show slave status \G;

Retrieved_Gtid_Set: D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:2602

Executed_Gtid_Set: D68DBC47-3AAE-11E2-BC2F-842B2B699BDA:1-2602

观测结果符合预期。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

qq音樂歌詞怎麼複製 歌詞複製的方法 qq音樂歌詞怎麼複製 歌詞複製的方法 Mar 12, 2024 pm 08:22 PM

  我們用戶們在使用這款平台的時候應該都能夠了解到上面對於一些功能的多樣性,我們知道一些歌曲的歌詞都寫的非常的不錯。有時候甚至都會多聽幾遍,覺得其中的含義都是非常深刻的,所以我們想要去了解其中的勝意,就想要直接的複製下來當文案來使用,不過對於要使用的話,還是要學會如何去複製歌詞才可以,這些操作方面我相信大家們應該都並不模式,但是在手機上面操作確實是有點難度,所以為了能夠讓大家們更好的了解的話,今日小編就來為你們好好的講解上面的一些操作體驗,如果你們也喜歡的話,就和小編一起來看看吧,不要錯過了。 

如何安裝、解除安裝、重設Windows伺服器備份 如何安裝、解除安裝、重設Windows伺服器備份 Mar 06, 2024 am 10:37 AM

WindowsServerBackup是WindowsServer作業系統自帶的功能,旨在協助使用者保護重要資料和系統配置,並為中小型和企業級企業提供完整的備份和復原解決方案。只有執行Server2022及更高版本的使用者才能使用此功能。在本文中,我們將介紹如何安裝、解除安裝或重設WindowsServerBackup。如何重置Windows伺服器備份如果您的伺服器備份遇到問題,備份所需時間過長,或無法存取已儲存的文件,那麼您可以考慮重新設定WindowsServer備份設定。要重設Windows

掌握Spring MVC的關鍵概念:了解這些重要特性 掌握Spring MVC的關鍵概念:了解這些重要特性 Dec 29, 2023 am 09:14 AM

了解SpringMVC的關鍵特性:掌握這些重要的概念,需要具體程式碼範例SpringMVC是一種基於Java的Web應用開發框架,它透過模型-視圖-控制器(MVC)的架構模式來幫助開發人員建立靈活可擴展的Web應用程式。了解和掌握SpringMVC的關鍵特性將使我們能夠更有效地開發和管理我們的網路應用程式。本文將介紹一些SpringMVC的重要概念

PS複製圖層快速鍵 PS複製圖層快速鍵 Feb 23, 2024 pm 02:34 PM

在PS複製圖層快速鍵中,我們可以知道使用PS的時候如果想要進行複製圖層的操作,可以使用到快捷鍵【Ctrl+J】進行快速複製。這篇複製圖層快捷鍵的介紹就能夠告訴大家具體的操作方法,以下就是詳細的內容,趕快看看吧。 PS複製圖層快速鍵答:【Ctrl+J】具體方法:1、在ps中開啟影像,選取需要複製的圖層。 2、鍵盤同時按下【Ctrl+J】,即可完成圖層的複製。其他複製方式:1.開啟影像後,按住圖層,向下放【新建圖層】圖示移動。 2.移動到該圖示後,鬆手。 3、即可完成圖層複製。

複製快捷鍵ctrl加什麼 複製快捷鍵ctrl加什麼 Mar 15, 2024 am 09:57 AM

在 Windows 系統中,複製的快速鍵是 Ctrl+C;在蘋果系統中,複製的快速鍵是 Command+C;在 Linux 系統中,複製的快速鍵是 Ctrl+Shift+C。了解這些快捷鍵可以提高使用者的工作效率,方便地進行文字或檔案複製操作。

學習使用複製貼上的快捷鍵 學習使用複製貼上的快捷鍵 Jan 13, 2024 pm 12:27 PM

很多的使用者在使用電腦的時候,如果遇到一些需要複製貼上的東西時,用滑鼠複製非常麻煩,那麼複製貼上的快捷鍵需要如何使用呢,快來看看詳細的教程吧~複製貼上快捷鍵怎麼用:1、複製鍵:Ctrl+C,選擇需要複製的文字或圖片,按下快速鍵。 2.貼上鍵:Ctrl+V,在需要貼上的位置上,直接按下快速鍵就行了。

excel複製表格保留原格式怎麼操作? excel複製表格保留原格式怎麼操作? Mar 21, 2024 am 10:26 AM

我們常常會用Excel處理多個表格數據,而設定好的表格經過複製貼上後,原有的格式又恢復預設了,還得需要我們重新設定。其實有方法可以讓Excel複製表格保留原格式的,下面小編就跟大家講解下具體的方法。一、Ctrl鍵拖曳複製操作步驟:使用快速鍵【Ctrl+A】全選表格內容後,將滑鼠遊標移至表格邊緣直到出現移動遊標。按住【Ctrl】鍵,接著拖曳表格到所需位置即可完成移動。需要注意的是,這種方法只適用於單一工作表,無法在不同工作表之間進行移動。二、選擇性貼上步驟:按【Ctrl+A】快速鍵全選中表格,按

如何備份CMS織夢資料庫檔案? 如何備份CMS織夢資料庫檔案? Mar 13, 2024 pm 06:09 PM

如何備份CMS織夢資料庫檔案?在使用CMS織夢建站的過程中,保障資料庫檔案的安全性是非常重要的,以防止資料遺失或損壞。備份資料庫檔案是一項必不可少的操作,以下將介紹如何備份CMS織夢資料庫檔案並附上具體程式碼範例。一、使用phpMyAdmin進行備份phpMyAdmin是常用的資料庫管理工具,透過它可以方便地對資料庫進行備份作業。以下是使用phpMyAdm

See all articles