欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中延遲復制的實現(xiàn)

 更新時間:2025年02月24日 09:43:44   作者:妍妍的寶貝  
MySQL延遲復制允許副本服務器滯后源服務器指定時間,用于數(shù)據(jù)保護、歷史檢查等,延遲復制通過設(shè)置MASTER_DELAY選項實現(xiàn),下面就來介紹 一下,感興趣的可以了解一下

1 MySQL 延遲復制介紹

MySQL 5.7 支持延遲復制,使得 副本服務器故意滯后于源服務器至少一個 指定的時間量。默認延遲為 0 秒。使用 CHANGE MASTER TO 選項設(shè)置延遲 到 N 秒:MASTER_DELAY

1.1 延遲復制語法:

CHANGE MASTER TO MASTER_DELAY = N;

1.2 延遲復制可用于多種用途:

  • 為了防止用戶在MASTER頭上出現(xiàn)錯誤。DBA 可以滾動 將延遲的SLAVE返回到災難發(fā)生前的時間。

  • 檢查數(shù)據(jù)庫很久以前的樣子,沒有必須重新加載備份。例如,如果延遲為 1 周,DBA 需要查看數(shù)據(jù)庫的外觀 在最近幾天的發(fā)展之前,耽誤了可以檢查SLAVE。

1.3 延遲復制的有關(guān)的參數(shù)

SHOW SLAVE STATUS 有三個字段 提供有關(guān)延遲的信息:

  • SQL_Delay:一個非負整數(shù),表示 副本必須滯后于源的秒數(shù)。

  • SQL_Remaining_Delay:此字段包含一個整數(shù),表示 延遲的剩余秒數(shù)。

  • Slave_SQL_Running_State:一個字符串 指示 SQL 線程的狀態(tài)(類似于 )。該值等于 將 SQL 線程的值為 由 SHOW PROCESSLIST顯示。Slave_IO_StateState

1.4 延遲復制的操作

延遲復制在哪臺機子上做呢?是由哪個線程來完成

  • 延遲復制時用來控制sql線程的,和i/o線程無關(guān)
  • 這個延遲復制不是i/o線程過段時間來復制,i/o是正常工作的
  • 是日志已經(jīng)保存在slave端了,那個sql要等多久進行回放

2 MySQL 延遲復制 實操

2.1 實驗環(huán)境

MASTER/SLAVE服務器名稱          IP地址server-id
MASTERMySQL-01192.168.239.210 10        
SLAVE-1MySQL-02192.168.239.22020
SLAVE-2MySQL-03192.168.239.23030

2.2 對 SLAVE --MySQL-3 進行延遲復制操作

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.239.210
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000007
          Read_Master_Log_Pos: 194
               Relay_Log_File: mysql-3-relay-bin.000007
                Relay_Log_Pos: 367
        Relay_Master_Log_File: mysql-bin.000007
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
          Exec_Master_Log_Pos: 194
              Relay_Log_Space: 742

             Master_Server_Id: 10
                  Master_UUID: cd27e5ae-5fe3-11ef-a5d8-000c29a51779
             Master_Info_File: /data/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL

# 停止 SQL_thread 進程,停止本地回放
mysql> stop slave sql_thread;
Query OK, 0 rows affected (0.00 sec)

# 改變 本地回放的延遲時間
mysql> change master to master_delay=60;
Query OK, 0 rows affected (0.00 sec)

# 打開本地回放 sql_thread 進程
mysql> start slave sql_thread;
Query OK, 0 rows affected (0.00 sec)

2.3 停止相關(guān)進程的原因

為什么要停止本地 sql_thread 進程而不是停止IO_thread呢?

這是由于停止sql_thread 只是 停止的是本地的回放,而不是停止IO_thread的復制。即使停掉本地的回放,IO_thread 進程仍然會對MASTER 的bin-log 進行接收并寫入本地的 Relay log,而不是停止寫入本地 Relay log 。等待sql_thread進程再次啟動進程就會去讀取本地Realy log 并 將本地的 Relay log 回放到數(shù)據(jù)庫中。這樣子做 能在保證成功修改SLAVE參數(shù)的同時也能保持MASTER與SLAVE的數(shù)據(jù)一致性。

2.4 實驗測試

MASTER 上操作

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ZUCONG             |
| mysql              |
| performance_schema |
| shuyan             |
| sys                |
+--------------------+
6 rows in set (0.03 sec)

mysql> use shuyan;
mysql> show tables;
+------------------+
| Tables_in_shuyan |
+------------------+
| wawa             |
+------------------+
mysql> select * from wawa;
+----+------+
| id | name |
+----+------+
|  1 | wawa |
+----+------+
mysql> insert into wawa(id,name) values(2,'shuyan');

SLAVE 上 查看  

MySQL-02 并沒有做延遲復制

mysql> select * from shuyan.wawa;
+----+--------+
| id | name   |
+----+--------+
|  1 | wawa   |
|  2 | shuyan |
+----+--------+

MySQL-03 做了60秒的延遲復制

mysql> select * from shuyan.wawa;
+----+------+
| id | name |
+----+------+
|  1 | wawa |
+----+------+

2.5 動圖演示全過程

接下來是一個動圖的演示 修改 master_delay 參數(shù)并增加master 數(shù)據(jù) 觀察slave延遲復制的過程

到此這篇關(guān)于MySQL中延遲復制的實現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL 延遲復制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何利用Xtrabackup進行mysql增量備份

    詳解如何利用Xtrabackup進行mysql增量備份

    這篇文章主要為大家介紹了如何利用Xtrabackup進行mysql增量備份詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • MySQL5.7 mysqldump備份與恢復的實現(xiàn)

    MySQL5.7 mysqldump備份與恢復的實現(xiàn)

    這篇文章主要介紹了MySQL5.7 mysqldump備份與恢復的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Mysql MVCC多版本并發(fā)控制詳情

    Mysql MVCC多版本并發(fā)控制詳情

    這篇文章主要介紹了Mysql MVCC多版本并發(fā)控制詳情,MVCC是一種并發(fā)控制的方法,一般在數(shù)據(jù)庫管理系統(tǒng)中,實現(xiàn)對數(shù)據(jù)庫的并發(fā)訪問,在編程語言中實現(xiàn)事務內(nèi)存,下文更多相關(guān)介紹需要的小伙伴可以參考一下
    2022-04-04
  • Mysql數(shù)據(jù)庫使用concat函數(shù)執(zhí)行SQL注入查詢

    Mysql數(shù)據(jù)庫使用concat函數(shù)執(zhí)行SQL注入查詢

    這篇文章主要介紹了Mysql數(shù)據(jù)庫使用concat函數(shù)執(zhí)行SQL注入查詢,concat函數(shù)在SQL注入查詢中會有意想不到的作用,本文就起講解它的使用,需要的朋友可以參考下
    2015-04-04
  • mysql?分組函數(shù)和分組查詢使用詳解

    mysql?分組函數(shù)和分組查詢使用詳解

    分組函數(shù)用作統(tǒng)計使用,又稱聚合函數(shù),統(tǒng)計函數(shù),組函數(shù),這篇文章主要介紹了mysql分組函數(shù)分組查詢的操作代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • CentOS7下二進制安裝mysql 5.7.23

    CentOS7下二進制安裝mysql 5.7.23

    這篇文章主要為大家詳細介紹了CentOS7下二進制安裝mysql 5.7.23,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • MySQL分區(qū)表的基本入門教程

    MySQL分區(qū)表的基本入門教程

    這篇文章主要給大家介紹了關(guān)于MySQL分區(qū)表的基本入門教程,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-05-05
  • Mysql中in和exists的區(qū)別?&?not?in、not?exists、left?join的相互轉(zhuǎn)換問題

    Mysql中in和exists的區(qū)別?&?not?in、not?exists、left?join的相互轉(zhuǎn)換問題

    這篇文章主要介紹了Mysql中in和exists的區(qū)別?&?not?in、not?exists、left?join的相互轉(zhuǎn)換,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • MySQL查看版本的五種方法總結(jié)

    MySQL查看版本的五種方法總結(jié)

    在日常項目開發(fā)過程中,我們經(jīng)常要連接自己的數(shù)據(jù)庫,此時不知道數(shù)據(jù)庫的版本是萬萬不可的,下面這篇文章主要給大家介紹了關(guān)于MySQL查看版本的五種方法,需要的朋友可以參考下
    2023-02-02
  • Mysql自動備份與還原方法

    Mysql自動備份與還原方法

    Mysql自動備份與還原方法,需要的朋友可以參考下。
    2011-06-06

最新評論