亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

MySQL復制(一) --- 二進制日志干什么的

系統(tǒng) 3005 0

與小站點相比,大型站點的數(shù)據(jù)庫管理員,需要提前做好以下的事情:

  • 提供災難發(fā)生時核心業(yè)務數(shù)據(jù)的恢復計劃。理論上這個過程至少需要執(zhí)行一次。
  • 通過采集大量用戶數(shù)據(jù)并監(jiān)控網(wǎng)站各節(jié)點的負載,提供優(yōu)化計劃
  • 當用戶數(shù)量急劇增長時的快速橫向擴展計劃
對于所有這些事情,提前計劃并準備好必要時的快速應對是很重要的。

?

為了保證站點可響應和可用性,需要做兩件事:系統(tǒng)的數(shù)據(jù)備份和冗余。備份可以將節(jié)點恢復到它崩潰之前的狀態(tài),備份根據(jù)需求有幾種比如及時恢復(PITR:point-in-time-recovery),在線備份等等;而冗余則保證即使在一個或更多節(jié)點停止服務的情況下,站點仍能繼續(xù)運行,備份一般通過硬件副本來實現(xiàn),讓幾個實例并行運行,并通過復制在幾個機器上保存相同數(shù)據(jù)的多個可用副本。復制的主要應用場景:1)針對高讀寫比的,scale out;2)添加冗余保證高可用性,比如雙主配置(dual-master setup)。

?

二進制日志(binlog)

復制過程需要二進制日志。二進制日志的目的是記錄數(shù)據(jù)庫中表的更改,然后用于復制和PITR,另外少數(shù)審計情況下也會用到。

傳統(tǒng)意義上說,MySQL復制記錄了產(chǎn)生變化的SQL語句,稱為基于語句的復制(statement-based replication)?;谡Z句的復制的缺點是無法保證所有語句都正確復制。所以在5.1版本中,MySQL還提供了基于行的復制(row-based replication)。

查看二進制日志:

      
        #
      
      
         強制把緩存的東西刷到LOGS中,并產(chǎn)生一個Rotate事件寫入binlog中,后面的寫入會寫到新的binlog中
      
      
        
FLUSH LOGS;

# 正常使用很久的DB不建議使用這個命令,需要加參數(shù),指定具體的binlog文件名 【IN 'xxxx'】
SHOW BINLOG EVENTS\G

二進制日志中事件所包含的字段:

      Event_type: 比如Format_desc, Query, Rotate
      
Server_id : 創(chuàng)建事件的服務器id
Log_name : 存儲事件的文件名,一個事件只能存儲在一個文件中
Pos : 事件在文件中的開始位置,及事件的第一個字節(jié)
End_log_pos:事件在文件中的結(jié)束位置,也就是下一個事件的開始位置
Info : 具體事件的信息,Query的時候就是SQL語句

二進制日志的結(jié)構(gòu)和內(nèi)容:

二進制日志不是一個的單獨的文件,它包括一組存儲實際內(nèi)容的二進制日志文件和一個二進制日志索引文件。每個二進制日志文件都以format description event開始,以rotate event結(jié)束。rotate event包含下一個二進制日志文件的名稱,以告知二進制日志繼續(xù)寫入哪個文件。因此FLUSH LOGS的時候會新建一個新binlog文件。?

獲取當前正在寫入的是哪一個二進制日志文件:

      SHOW MASTER STATUS\G
    

RESET MASTER 命令刪除了所有的二進制日志文件并清空了二進制日志索引文件。 RESET SLAVE 命令刪除了Slave復制所用的所有文件,重新開始。

CHANGE MASTER TO 命令用于改變slave連接master的一些參數(shù),其中就包括slave讀取master二進制日志文件的參數(shù)。比如使用MASTER_LOG_FILE和MASTER_LOG_POS來指定master開始發(fā)送事件的binlog位置。

如何建立新Slave

      
        1
      
      :配置新的Slave
      
2 :備份Master(或者備份已經(jīng)復制了Master的Slave)
3 :接下該備份相應的binlog位置
4 :在新Slave上恢復備份
5 :配置Slave從這個binlog位置開始復制

區(qū)別就在于第二步,一種是直接從Master進行備份,一種是通過現(xiàn)有Slave備份,下面分別介紹兩種。

1:克隆Master:

      
        #
      
      
         刷新所有的表并鎖定數(shù)據(jù)庫,防止在檢查binlog位置之前數(shù)據(jù)庫發(fā)生改變
      
      
        
FLUSH TABLES WITH READ LOCK ;

# 獲取當前的binlog文件和pos
SHOW MASTER STATUS\G

# 備份master
mysqldump --all-databases --host=master- 1 >backup.sql

# 解鎖
UNLOCK TABLES;

# 在slave上恢復備份
mysql --host=slave- 1 <backup.sql

# 配置slave
CHANGE MASTER TO
MASTER_HOST = ' master-1 ' ,
MASTER_PORT = 3306 ,
MASTER_USER = ' slave-1 ' ,
MASTER_PASSWORD = ' xxxx ' ,
MASTER_LOG_FILE = ' master-bin.000042 ' ,
MASTER_LOG_POS = 546552 ;

# 啟動slave
START SLAVE;

其實mysqldump命令提供了 master_data 選項,自動把MASTER_LOG_FILE和MASTER_LOG_POS信息dump到backup.sql中

另外:FLUSH TABLES WITH READ LOCK對于InnoDB是不安全的,因為雖然會鎖表,不會產(chǎn)生新事務,但是后臺仍然有一些活動在繼續(xù)進行。

所以安全的創(chuàng)建InnoDB數(shù)據(jù)表的備份可以使用下面的方法。

      
        1
      
      :關(guān)閉服務器,然后復制文件。如果數(shù)據(jù)庫很大 ,最好采取這種方法,因為這時使用mysqldump進行數(shù)據(jù)恢復會很慢
      

2 :執(zhí)行FLUSH TABLES WITH READ LOCK之后,使用mysqldump

3 :執(zhí)行FLUSH TABLES WITH READ LOCK之后,使用快照的方法,比如LVM(Linux),ZFS(Solaris)快照

?

2:克隆Slave:

      
        #
      
      
         防止出現(xiàn)不一致的備份映像,備份Slave之前需要先停止replication
      
      
        
STOP SLAVE;

# 確定從哪里開始復制,注意Relay_Master_Log_File和Exec_Master_Log_Pos
SHOW SLAVE STATUS\G

# 配置新的slave,指向master
CHANGE MASTER TO
MASTER_HOST = ' master-1 ' ,
MASTER_PORT = 3306 ,
MASTER_USER = ' slave-1 ' ,
MASTER_PASSWORD = ' xxxx ' ,
MASTER_LOG_FILE = ' master-bin.000042 ' ,
MASTER_LOG_POS = 546632 ;

# 啟動新的slave
START SLAVE

?

---待續(xù)

MySQL復制(一) --- 二進制日志干什么的


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99国产精品高清一区二区二区 | 99久热在线精品视频播放6 | 成人做爰毛片免费视频 | 九九热精品免费观看 | 人人插97 | a毛片免费在线观看 | 狠狠色婷婷综合天天久久丁香 | 国产三级观看久久 | 日本欧美中文字幕 | 国产欧美日本亚洲精品五区 | 337p日本大胆欧美人术艺术6 | 狠狠狠狠狠狠狠狠 | 奇米777影视 | 久久99亚洲精品久久频 | 午夜18免费观看 | 97高清国语自产拍中国大陆 | 亚洲精品国产手机 | 国产尤物在线视频 | 亚洲精品香蕉一区二区在线观看 | 农村妇女又色黄一级毛片 | 日韩男人天堂 | 国产aaa毛片| 欧美seav在线 | www.一区| 久久一 | 日本岛国片在线观看 | 免费视频久久 | 牛牛本精品99久久精品 | 夜夜精品视频 | 亚洲精品国产第一区二区尤物 | 欧美一级毛片久久精品 | 国产精品合集一区二区 | 亚洲色视频 | 久久一本久综合久久爱 | 国产精品国产高清国产专区 | 国产 日韩 欧美 亚洲 | 一级全黄色毛片 | 亚洲天堂国产精品 | 狠狠的干狠狠的操 | 一区二区在线精品免费视频 | 欧美人与动人物a级网站 |