亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL對數據庫數據進行復制的基本過程詳解

2024-07-24 13:08:29
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了MySQL對數據庫數據進行復制的基本過程,解讀了Slave的一些相關配置,需要的朋友可以參考下
 

復制

     復制是從一個MySQL服務器(master)將數據拷貝到另外一臺或多臺MySQL服務器(slaves)的過程.復制是異步進行的--slaves服務器不需要持續地保持連接來接收master的數據.依據配置的不同,可以復制所有數據庫,或指定的數據庫,甚至是某一數據庫指定的表.

     使用復制功能的目的在于:

向外擴展的解決方案 -- 通過在多臺服務器之間分散負載來提高性能.在這種環境下,所有寫和更新操作都在master服務器上進行,而讀操作則發生在一臺或多臺slaves服務器上.
數據安全 -- 因為數據是被復制到slave上的,并且slave可以暫停復制過程,因此可以在不破壞master數據的前提下在slave服務器上進行備份
分析 -- 實時數據在master上創建,然而數據分析卻可以slave服務器上進行,且不會影響master的性能
長距離數據分布 -- 如果分公司需要主公司的數據復本進行工作,就可以通過復制創建一個本地復本,從而不需要長久地訪問master服務器
      MySQL的復制是單向異步的,這與MySQL Cluster的同步復制特性正好相反.MySQL5.5支持半同步(semisynchronous),即在master上的提交之后,并不是立即返回,而是等待至少有一個slave確認說已經收到和記錄了當前事務之后,再返回.

      最好的復制方法與數據的展現方式及所選擇的存儲引擎有關,核心的復制格式有兩種:SBR(Statement Based Replication) -- 復制所有的SQL語句,和RBR(Row Based Replication) -- 僅復制被改變的rows. 當然也有最三種方案可供選擇:MBR(Mixed Based Replication),這也是MySQL5.5之后版本的默認模式.

復制配置

      MySQL服務器之間的復制使用的是二進制日志機制.對master的更新與變動都會作為事件(event)記錄在日志中,日志中的信息會隨變化的不同被記錄成不同的格式.slaves被配置成從master讀取日志,并且執行二進制日志中的事件到slave本地數據庫.一旦master啟動二進制日志功能,那么所有語句操作都會被記錄下來,每一個slave會收到一份整個日志內容的拷貝.slave的責任就是決定日志中的哪條語句需要被執行,而我們不能通過配置master來僅僅記錄某些特定的事件.如果您沒有另行指定,在主服務器二進制日志中的所有事件都在slave上執行.如果需要,還可以配置slave僅應用來自于特定數據庫或表的事件.

      每個slave都會保持一份二進制日志文件的記錄,且記錄其已經讀取和處理過記錄的位置.這表明,多個slaves可以連接到master,并且執行日志的不同部分,因為slave自己來控制這個過程,單個slave的斷開與連接,不會影響master的操作.同時也正因為每個slave會記錄二進制日志中的位置,所以slaves可以斷開,重連,然后從記錄的位置開始起上.

      Master和每一個slave都必須賦予一個唯一的ID(可能使用server_id),另外,還必須告知slave其master的主機,日志文件名和位置(position).可以在會話中通過CHANGE MASTER TO來改變,詳細信息會記錄在master.info文件中.

1. 如何啟動復制

      1.1 創建一個用于復制的用戶

            每個slave都必須使用標準MySQL用戶名和密碼連接到master,任何帳號都可以,只要被授予了REPLICATION SLAVE權限.雖然創建一個單獨用于復制的用戶并不是必須的,但是你需要清楚的是用于復制的帳號的用戶名與密碼都是用明文的方式存儲在master.info中的,因此出于安全的考慮還是創建一個的好.如:

      mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.158.1.100' IDENTIFIED BY 'testpass';

即創建了一個用戶名為"repl",密碼為"testpass"的帳號,所有的slaves都可以使用同一個帳號,當然我們也可以為每一個slave都創建一個登錄帳號.

      1.2 配置Master

            首先,必須得開啟master的二進制日志功能,其次為master設置一個唯一的server-id -- 1~p, li { white-space: pre-wrap; }232-1 之間的正整數.如在my.cnf或my.ini中作如下設置:

      [mysqld]      log-bin=master-bin      server-id=1

需要注意的是:為了在使用InnoDB事務時創建復制達到最大可能的穩定及一致,你需要使用:innodb_flush_log_at_trx_commit=1和sync_binlog=1兩個選項.并同時確保:skip-networking=0否則slave與master就無法通信了.

     1.3配置Slave

      在slave上我們唯一需要配置的就是為slave指定一個唯一的server-id. Slave上的二進制日志功能的開啟不必須的,但開啟可以用來作slave上的數據備份或災難數據恢復,同時也可以使用slave作為更復雜復制拓撲架構的一部分(如:某個slave作為其它slaver的master時).

     1.4 獲取Master信息

     為了配置slave復制,你需要知道master在其二進制日志中的當前位置,這樣當slave開始復制過程時,就知道從當前這個點開始處理事件了.如果在master上已經存在數據,且這些數據需要在開始復制之前同步到其它slaves上,那么你就得讓master停止處理語句,獲得當前位置,然后導出數據.為了得到master的狀態信息,需要通過下面的步驟:

執行:

mysql>FLUSH TABLES WITH READ LOCK 

來阻止所有的寫操作,包括InnoDB的commit操作. 需要注意的此時只有退出了連接客戶端這個"鎖"才能被釋放掉.
通過:

mysql>SHOW MASTER STATUS

來確定當前的二進制日志文件及位移量(offset)
p, li { white-space: pr     

1.5 在Slave上配置Master信息

mysql> CHANGE MASTER TO-> MASTER_HOST='master_host_name',-> MASTER_USER='replication_user_name',-> MASTER_PASSWORD='replication_password',-> MASTER_LOG_FILE='master_bin_log_file_name',-> MASTER_LOG_POS='recorded_log_position';

 

2. 復制格式的選擇

     每種二進制日志格式都有自己的優缺點,對大多數用戶來說,MBR提供了最好的效果.但當需要為某些特定任務選取SBR或RBR時,可以通過下面的比較來決定哪一個更適合:

     SBR的優勢:

從MySQL3.23開始,就被證明了的技術
更少的數據寫入日志. 當更新或刪除影響到很多行時,SBR會使用更少的存儲空間,這也意味著在導入或恢復時需要更少的時間
日志文件包含所有的語句操作所作的變動,因此可以用來審計數據庫
     SBR的劣勢:

語句表述(Statements)對SBR來說是不安全的,不是所有修改數據的語句都可以使用SBR復制.任何為確定的行為都很難被復制,如具有LIMIT或ORDER BY的DELETE或UPDATE
INSERT ... SELECT 比RBR需要更多數量的行鎖定
需要掃描整個表的UPDATE(因為沒有在WHERE中使用索引)比RBR要鎖定更多的行
對InnoDB,使用了AUTO_INCREMENT的INSERT會阻塞其它非沖突的INSERT
對于復雜的語句,slave在更新或插入之前必須先進行評估和執行,而RBR只需要運行語句應用不同就可以了
存儲過程執行同樣的NOW()
確定的UDFs必須被應用到所有的slaves上
master與slave上的表必須(幾乎)相同
      RBR的優勢:

所有的改變都能被復制,這是最安全的復制模式. 但mysql數據庫不會被復制,mysql會被認為是一個特殊節點數據庫
這種技術與很多其它數據庫管理系統一樣,因此可以許多在其它系統上的認知,都可以轉移到MySQL上來
Master需要更少的鎖定來執行:INSERT ... SELECT,INSERT中有AUTO_INCREMENT,以及WHERE中沒有使用鍵值的 UPDATE/DELETE
Slaves在執行INSERT,UPDATE/DELETE時,需要更少的鎖定
      RBR的劣勢:

RBR勢必會產生更多的日志數據
你不能通過log知道什么語句被執行了,然后你卻可以通過mysqlbinlog查看什么數據被改變了
相關命令

  • mysql>show slave hosts -- 查看所有連接到Master的Slave信息
  • mysql>show master status -- 查看Master狀態信息
  • mysql>show slave status -- 查看Slave狀態信息
  • mysql>show binary logs -- 查看所有二進制日志
  • mysql>show binlog events [IN log_file] -- 查看二進制日志中的事件


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性视频在线| 亚洲欧美色婷婷| 久久精品国产综合| 久久久国产成人精品| 57pao国产精品一区| 成人有码视频在线播放| 日韩精品免费电影| 中文字幕亚洲激情| 日韩精品电影网| 国产精品91免费在线| 日韩美女中文字幕| 日韩性生活视频| 成人黄色激情网| 国产91成人在在线播放| 岛国视频午夜一区免费在线观看| 综合国产在线观看| 欧美成人免费观看| 日韩欧美成人网| 国产中文字幕亚洲| 日韩美女视频免费看| 国产精品99久久久久久久久| 91天堂在线视频| www.xxxx欧美| 国产亚洲精品久久| 黄色精品在线看| 成人97在线观看视频| 欧美肥臀大乳一区二区免费视频| 亚洲精品久久久久中文字幕欢迎你| 欧美诱惑福利视频| 精品亚洲一区二区三区四区五区| 久久久av电影| 国产一区二区黑人欧美xxxx| 国产v综合ⅴ日韩v欧美大片| 中文字幕欧美日韩va免费视频| 中文字幕在线亚洲| 日韩精品免费一线在线观看| 日韩在线观看视频免费| 国产精品丝袜一区二区三区| 欧美激情图片区| 日韩日本欧美亚洲| 亚洲欧美变态国产另类| 欧美亚洲午夜视频在线观看| 欧美影院久久久| 菠萝蜜影院一区二区免费| 国产亚洲一区二区在线| 91夜夜未满十八勿入爽爽影院| 97视频在线观看免费高清完整版在线观看| 国产精品18久久久久久首页狼| 国产精品69精品一区二区三区| 久久男人的天堂| 亚洲人成电影网站色| 福利视频导航一区| 亚洲国产精品99久久| 88xx成人精品| 欧美性猛交99久久久久99按摩| 色婷婷综合久久久久中文字幕1| 欧美色道久久88综合亚洲精品| 日韩成人在线播放| 亚洲男人的天堂网站| 成人网在线免费观看| 97精品国产97久久久久久春色| 亚洲精品永久免费精品| 国产成人精品优优av| 亚洲精品久久久久中文字幕二区| 日韩精品中文在线观看| 久久电影一区二区| 国产色视频一区| 亚洲第一精品夜夜躁人人躁| 日本成人精品在线| 狠狠躁夜夜躁人人躁婷婷91| 中文字幕精品—区二区| 亚洲精品美女在线观看| 欧美综合国产精品久久丁香| 日韩电影中文字幕| 国产在线观看精品一区二区三区| 欧美成人黄色小视频| 亚洲免费视频一区二区| 亚洲直播在线一区| 日韩高清电影好看的电视剧电影| 精品一区二区三区四区| 国产噜噜噜噜噜久久久久久久久| 在线性视频日韩欧美| 欧美一级淫片aaaaaaa视频| 国产在线视频欧美| 57pao成人永久免费视频| 中文字幕亚洲欧美日韩2019| 亚洲免费高清视频| 日韩欧美亚洲综合| 91牛牛免费视频| 亚洲人成网站在线播| 青草青草久热精品视频在线网站| 精品一区二区三区电影| 中文字幕亚洲综合久久筱田步美| 欧美肥臀大乳一区二区免费视频| 欧美激情中文字幕在线| 成人精品久久久| 国产综合在线看| 国产mv免费观看入口亚洲| 亚洲国产天堂久久综合| 欧美日韩国产成人在线观看| 日本欧美在线视频| 91免费高清视频| 国产精品黄页免费高清在线观看| 亚洲精品电影网站| 亚洲久久久久久久久久| 久久久欧美一区二区| 亚洲激情国产精品| 97视频在线免费观看| 国产成人精品在线| 欧美在线视频一区| 精品久久久久久久久久久久久久| 91国内揄拍国内精品对白| 亚洲性日韩精品一区二区| 国语自产精品视频在免费| 91高清视频免费观看| 热久久视久久精品18亚洲精品| 国产做受69高潮| 日韩在线观看你懂的| 欧美第一淫aaasss性| 亚洲天堂av电影| 亚洲天堂av综合网| 国产精品无av码在线观看| 国产精品久久婷婷六月丁香| 国产精品观看在线亚洲人成网| 日韩黄色在线免费观看| 国产性猛交xxxx免费看久久| 欧美性生交大片免网| **欧美日韩vr在线| 国产精品一二三在线| 精品国产自在精品国产浪潮| 久久综合国产精品台湾中文娱乐网| 欧美一区二区三区免费观看| 亚洲成人精品视频在线观看| 国产午夜精品美女视频明星a级| 亚洲国产精品va在线看黑人动漫| 国产精品日韩电影| 亚洲最大福利网| 国产精品999999| 日韩欧美成人免费视频| 成人黄色片在线| 亚洲第一网站男人都懂| 久久久精品欧美| 亚洲电影免费在线观看| 欧美国产高跟鞋裸体秀xxxhd| 自拍偷拍亚洲一区| 欧美午夜女人视频在线| 91美女福利视频高清| 成人a视频在线观看| 日韩经典第一页| 亚洲欧美变态国产另类| 欧美劲爆第一页| 欧美一级视频一区二区| 国产ts一区二区| 日韩最新av在线| 国产精品亚洲自拍| 国产小视频91| 国产欧美久久一区二区| 日韩av电影在线网| 97久久精品人人澡人人爽缅北| 97视频在线观看免费| 国产精品高清网站| 亚洲成人动漫在线播放| 亚洲自拍偷拍一区| 亚洲人成啪啪网站|