在主服務器上建立一個為從服務器進行復制使用的用戶。該賬戶必須授予 REPLICATION SLAVE 權限,由于僅僅是進行復制使用所以不需要再授予任何其它權限。
成都創新互聯公司企業建站,10余年網站建設經驗,專注于網站建設技術,精于網頁設計,有多年建站和網站代運營經驗,設計師為客戶打造網絡企業風格,提供周到的建站售前咨詢和貼心的售后服務。對于網站制作、成都做網站中不同領域進行深入了解和探索,創新互聯在網站建設中充分了解客戶行業的需求,以靈動的思維在網頁中充分展現,通過對客戶行業精準市場調研,為客戶提供的解決方案。
mysql GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'192.168.0.2' IDENTIFIED BY 'slavepasswd';
mysql FLUSH PRIVILEGES;
3、編輯主服務器的配置文件:/etc/my.cnf的[ mysqld ] 部分:
server-id = 本機數據庫 ID 標示,該部分還應有一個server-id=Master_id選項,其中master_id必須為1到232之間的一個正整數值
log-bin = 二進制日志的位置和名稱
binlog-do-db = 需要備份的數據庫名,如果備份多個數據庫,重復設置這個選項即可
binlog-ignore-db = 不需要備份的數據庫苦命,如果備份多個數據庫,重復設置這個選項即可
主從復制延遲的監測,我以前的做法是通過比較show slave statusG中的兩個變量的差值(Read_Master_Log_Pos,Exec_Master_Log_Pos),將差值設置為一個自己認為合理的范圍,Seconds_Behind_Master 沒有適用過,今天做一次解析:
Seconds_Behind_Master 是通過比較 SQL THREAD 接受 events事件的時間戳(timestamp) 與IO THREAD 執行事件 events時間戳的差值--秒數來確定slave 落后于master多少。如果主從機器的時間不同,該時間的計算也是不會受影響的(如果時間發生異常,則這個秒數的就不怎么可靠啦)
如果slave SQL thread 或者 slave I/O thread 或者沒有連接到master,那么該變量的值為NULL.
0:表示master slave 復制沒有延遲(大部分情況下是這個樣子)。
正值:表示slave落后于master的秒數。
在網絡很快的情況下,I/O thread 能夠很快的從master上獲取binlog到slave的 relay-log。這種情況下, seconds_behind_master的值能真正代表slave落后于master的秒數。在網絡很差的情況下,I/O thread 同步很慢,slave收到的二進制日志信息,SQL THREAD能夠很快的執行。這個時候 seconds_behind_master 是0,這種情況下 slave落后于master很多。
為了排除網絡的干擾,我們可以參考percona 的工具 pt-heartbeat.
該工具可以計算出MySQL復制或者是PostgreSQL,它可以更新master或者監控復制。它還可以從my.cnf 讀取配置。它借助timestmp的比較實現的,首先需要保證主從服務器時間必須要保持一致,通過與相同的一個NTP server同步時鐘。它需要在主庫上創建一個heartbeat的表,里面的時間戳ts就是當前的時間戳 now(),該結構也會被復制到從庫上。表建好以后,會在主庫上以后臺進程的模式去執行一行更新操作的命令,定期去向表中的插入數據,這 個周期默認為1 秒,同時從庫也會在后臺執行一個監控命令,與主庫保持一致的周期+0.5S(默認0.5S延遲檢查)去比較,復制過來記錄的ts值與主庫上的同一條ts值,差值為0表示無延時,差值越大表示 延時的秒數越多。
方法
subQuery = (new Query())
-select(['service_id', 'ctime'])
-from(self::tableName())
-where(['service_id' = $service_id])
-orderBy(['service_id' = SORT_DESC, 'ctime' = SORT_DESC]);
$res = (new Query())
-from(['tmp' = $subQuery])
-groupBy(['service_id'])
-all(self::getDb());
return $res;
文章標題:mysql怎么復制延遲 mysql主從復制延遲
文章分享:http://m.newbst.com/article36/docjpsg.html
成都網站建設公司_創新互聯,為您提供定制網站、外貿建站、App設計、網站改版、品牌網站建設、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯