偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

利用 MySQL 克隆插件搭建主從

數(shù)據(jù)庫 MySQL
MySQL 克隆插件適用于需要快速、高效地復(fù)制數(shù)據(jù)庫的場景,尤其是在對數(shù)據(jù)一致性、速度和停機時間敏感的應(yīng)用中。然而,其使用也受限于一定的條件和環(huán)境,因此在具體應(yīng)用時需充分評估其適用性和局限性。

前言:

MySQL 的 Clone 插件是一個強大的功能,首次引入于 MySQL 8.0.17 版本。簡單來說,Clone Plugin 是一款物理克隆數(shù)據(jù)工具,它能夠幫助我們快速、高效地克隆或復(fù)制數(shù)據(jù)庫,極大地簡化了數(shù)據(jù)庫遷移、備份和恢復(fù)的過程,讓我們在處理大量數(shù)據(jù)時更加得心應(yīng)手。本篇文章我們一起來學(xué)習(xí)下如何使用克隆插件。

克隆插件介紹

克隆插件的工作原理是創(chuàng)建存儲在 InnoDB 中的 schema、table、tablespaces 和 data dictionary metadata的物理快照。這個快照實際上是一個完整的數(shù)據(jù)目錄,MySQL克隆插件可以使用這個目錄來配置并恢復(fù)一個 MySQL 服務(wù)器。

使用克隆插件,用戶可以執(zhí)行本地克隆和遠程克隆兩種操作:

  • 本地克?。簩?shù)據(jù)從啟動克隆操作的 MySQL 服務(wù)器克隆到該服務(wù)器主機上的指定目錄下。
  • 遠程克?。荷婕暗奖镜?MySQL 服務(wù)器(接收方)和遠程 MySQL 服務(wù)器(發(fā)送方),克隆的數(shù)據(jù)通過網(wǎng)絡(luò)從發(fā)送方傳輸?shù)浇邮辗?。默認情況下,遠程克隆操作會刪除接收方數(shù)據(jù)目錄中的現(xiàn)有數(shù)據(jù),并用克隆的新數(shù)據(jù)替換。

不過克隆插件的使用也是有一定的限制的,參考官方文檔,總結(jié)幾點如下:

  • DDL阻塞與兼容性:

在早期版本中,克隆操作期間會阻塞源服務(wù)器(Donor)上的所有 DDL 操作,但從 MySQL 8.0.27 開始,克隆命令不再阻塞 Donor 上的 DDL 操作。

克隆操作要求源和目標 MySQL 服務(wù)器版本兼容,通常不允許跨大版本克隆。直至最近更新(如MySQL 8.0.37),小版本間的克隆限制有所放寬,但仍需注意版本兼容性。

  • 存儲引擎限制:

克隆操作僅支持InnoDB表,對于其他存儲引擎的表,只會克隆其表結(jié)構(gòu)而不會復(fù)制數(shù)據(jù)。

  • 配置與日志不復(fù)制:

克隆插件不會復(fù)制 Donor 服務(wù)器的配置參數(shù)和二進制日志(Binlog)設(shè)置,這意味著目標實例需要獨立配置。

  • 操作系統(tǒng)與網(wǎng)絡(luò)限制:

捐贈者和接受者必須運行在相同的操作系統(tǒng)上,并且在某些情況下,要求網(wǎng)絡(luò)連接直接而不通過MySQL Router。

指定的 Donor 端口不能是X Protocol端口。

  • 字符集與排序規(guī)則:

源和目標 MySQL 服務(wù)器必須具有相同的字符集和排序規(guī)則。

利用 Clone Plugin 搭建主從

下面我們來具體操作下如何利用遠程克隆來搭建主從復(fù)制:

# 主從服務(wù)器安裝克隆插件 
mysql> INSTALL PLUGIN clone SONAME 'mysql_clone.so';

# 寫入my.cnf配置文件
[mysqld]
plugin-load-add=mysql_clone.so

# 查看插件狀態(tài) 確認為 ACTIVE
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME = 'clone';
+------------------------+---------------+
| PLUGIN_NAME            | PLUGIN_STATUS |
+------------------------+---------------+
| clone                  | ACTIVE        |
+------------------------+---------------+

# 從節(jié)點執(zhí)行遠程克隆
# 遠程克隆語法:
CLONE INSTANCE FROM 'user'@'host':port
IDENTIFIED BY 'password'
[DATA DIRECTORY [=] 'clone_dir']
[REQUIRE [NO] SSL];

DATA DIRECTORY:是一個可選子句,用于在接收端指定要克隆的數(shù)據(jù)的目錄。
如果不想刪除接受方原數(shù)據(jù)目錄中的現(xiàn)有數(shù)據(jù),可以使用此選項修改數(shù)據(jù)copy的目錄,必須有絕對路徑,且目錄必須不存在。
不指定的話,則默認克隆到接受方的數(shù)據(jù)目錄下。

# 執(zhí)行克隆操作,用戶需要有BACKUP_ADMIN權(quán)限,建議使用管理員賬號
mysql> CLONE INSTANCE FROM 'root'@'172.16.255.49':3306 IDENTIFIED BY 'xxxxxxx';
Query OK, 0 rows affected (12.40 sec)

# 克隆完成后 數(shù)據(jù)庫服務(wù)會自動重啟,再次進入查看克隆狀態(tài)
mysql> select * from performance_schema.clone_status\G; 
*************************** 1. row ***************************
             ID: 1
            PID: 0
          STATE: Completed
     BEGIN_TIME: 2024-07-03 16:41:34.473
       END_TIME: 2024-07-03 16:41:56.788
         SOURCE: 172.16.255.49:3306
    DESTINATION: LOCAL INSTANCE
       ERROR_NO: 0
  ERROR_MESSAGE: 
    BINLOG_FILE: bin-log.000007
BINLOG_POSITION: 153538
  GTID_EXECUTED: 4bab9d8c-0ea8-11ef-a209-0050569c2bf5:1-380

# 狀態(tài)無誤后,從庫即可開啟主從復(fù)制
mysql> CHANGE REPLICATION SOURCE TO SOURCE_HOST='172.16.255.49',
    ->     SOURCE_PORT = 3306,
    ->     SOURCE_USER='repl',
    ->     SOURCE_PASSWORD='xxxx',
    ->     MASTER_AUTO_POSITION = 1;
Query OK, 0 rows affected, 3 warnings (0.05 sec)

mysql> start REPLICA;
Query OK, 0 rows affected (0.02 sec)

mysql> SHOW REPLICA STATUS\G  
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: 172.16.255.49
                  Source_User: repl
                  Source_Port: 3306
                Connect_Retry: 60
              Source_Log_File: bin-log.000007
          Read_Source_Log_Pos: 154754
               Relay_Log_File: relay-log.000002
                Relay_Log_Pos: 414
        Relay_Source_Log_File: bin-log.000007
           Replica_IO_Running: Yes
          Replica_SQL_Running: Yes

自己做過一遍才發(fā)現(xiàn),使用克隆插件搭建主從真的方便快速很多,原來搭建主從至少需要源端備份+目標端恢復(fù)兩個步驟,遇到數(shù)據(jù)庫比較大的情況將非常耗時。而有了克隆插件,只需一條命令即能實現(xiàn)物理克隆,確實方便快速很多。

其實 MySQL 克隆插件使用場景還有很多,下面列舉幾種使用場景:

  1. 快速構(gòu)建測試環(huán)境:在開發(fā)和測試環(huán)境中快速創(chuàng)建與生產(chǎn)環(huán)境數(shù)據(jù)一致的數(shù)據(jù)庫副本,以進行功能測試、性能測試等。
  2. 災(zāi)難恢復(fù):在數(shù)據(jù)庫發(fā)生故障時,可以快速從備份或另一個健康實例克隆數(shù)據(jù),以減少恢復(fù)時間和業(yè)務(wù)中斷。
  3. 數(shù)據(jù)庫遷移:在升級硬件、切換服務(wù)器時,使用克隆插件可以快速遷移數(shù)據(jù)而無需長時間的停機。
  4. 水平擴展:在數(shù)據(jù)庫需要增加讀取能力時,可以快速克隆數(shù)據(jù)庫到新的服務(wù)器上,作為只讀從庫。
  5. 數(shù)據(jù)庫物理備份:克隆插件可以用于構(gòu)建本地或遠程的熱備節(jié)點,以提高數(shù)據(jù)的可用性和容錯能力。

總結(jié):

綜上所述,MySQL 克隆插件適用于需要快速、高效地復(fù)制數(shù)據(jù)庫的場景,尤其是在對數(shù)據(jù)一致性、速度和停機時間敏感的應(yīng)用中。然而,其使用也受限于一定的條件和環(huán)境,因此在具體應(yīng)用時需充分評估其適用性和局限性。

參考:

責任編輯:武曉燕 來源: MySQL技術(shù)
相關(guān)推薦

2020-06-01 15:45:54

MySQL數(shù)據(jù)庫Clone

2021-06-26 08:09:21

MySQL不停機不鎖表

2017-04-20 21:00:06

MySQLbinlog主從復(fù)制

2011-08-30 13:08:55

Mysql ProxyLua分離

2011-05-13 17:14:03

AMF

2022-08-18 08:24:19

Mysql數(shù)據(jù)庫

2022-04-08 15:08:22

數(shù)據(jù)庫MySQL備份

2022-02-11 08:41:19

WindowsRedis集群

2020-04-14 21:12:42

Redis集群Linux

2020-11-26 06:30:53

MySQL數(shù)據(jù)權(quán)限

2009-11-23 20:15:00

ibmdwLotus

2017-09-18 15:58:09

2017-08-24 10:08:20

PlexSyncthing服務(wù)器

2011-08-25 15:02:17

Lua環(huán)境搭建EditPlus

2021-03-01 08:33:39

插件庫弱符號程序

2017-09-12 08:03:29

數(shù)據(jù)庫MySQL主庫

2024-09-13 15:32:18

2022-03-28 10:44:51

MySQL日志存儲

2012-09-29 09:32:27

產(chǎn)品克隆

2022-04-02 20:51:19

Tab搭建操作系統(tǒng)鴻蒙
點贊
收藏

51CTO技術(shù)棧公眾號