内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

MySQL8新特性ClonePlugin是什么

這篇文章主要介紹了MySQL 8 新特性Clone Plugin是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、城中網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站成都商城網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為城中等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

Clone Plugin是MySQL 8.0.17引入的一個(gè)重大特性,為什么要實(shí)現(xiàn)這個(gè)特性呢?個(gè)人感覺(jué),主要還是為Group Replication服務(wù)。在Group Replication中,添加一個(gè)新的節(jié)點(diǎn),差異數(shù)據(jù)的補(bǔ)齊是通過(guò)分布式恢復(fù)(Distributed Recovery)來(lái)實(shí)現(xiàn)的。

在MySQL 8.0.17之前,只支持一種恢復(fù)方式-Binlog。但如果新節(jié)點(diǎn)需要的Binlog已經(jīng)被Purge了,這個(gè)時(shí)候,只能先借助于備份工具(XtraBackup,mydumper,mysqldump)做個(gè)全量數(shù)據(jù)的同步,然后再通過(guò)分布式恢復(fù)同步增量數(shù)據(jù)。

這種方式,雖然也能實(shí)現(xiàn)添加節(jié)點(diǎn)的目的,但總歸還是要借助于外部工具,需要一定的工作量和使用門(mén)檻。要知道,其競(jìng)爭(zhēng)對(duì)手,PXC,默認(rèn)集成了XtraBackup進(jìn)行State Snapshot Transfer(類似于全量同步),而MongoDB則更進(jìn)一步,原生就實(shí)現(xiàn)了Initial Sync同步全量數(shù)據(jù)。從易用性來(lái)看,單就集群添加節(jié)點(diǎn)這一項(xiàng)而言,MySQL確實(shí)不如其競(jìng)爭(zhēng)對(duì)手??蛻趔w驗(yàn)上,還有很大的提升空間。

好在MySQL官方也正視到這個(gè)差距,終于在MySQL 8.0.17實(shí)現(xiàn)了Clone Plugin。當(dāng)然,對(duì)于官方來(lái)說(shuō),實(shí)現(xiàn)這個(gè)特性并不算難,畢竟有現(xiàn)成的物理備份工具(MySQL Enterprise Backup)可供借鑒。

本文將從以下幾個(gè)方面展開(kāi):

  1. Clone Plugin的安裝
  2. Clone Plugin的使用
  3. 如何查看克隆操作的進(jìn)度
  4. 如何基于克隆數(shù)據(jù)搭建從庫(kù)
  5. Clone Plugin的實(shí)現(xiàn)細(xì)節(jié)
  6. Clone Plugin的限制
  7. Clone Plugin與XtraBackup的對(duì)比
  8. Clone Plugin的參數(shù)解析

一、Clone Plugin的安裝

Clone Plugin支持以下兩種安裝方式:

(1)配置文件指定

[mysqld]
plugin-load-add=mysql_clone.so
clone=FORCE_PLUS_PERMANENT復(fù)制代碼

這里的clone,嚴(yán)格來(lái)說(shuō),不是參數(shù)名,而是插件名,可加可不加,F(xiàn)ORCE_PLUS_PERMANENT 控制插件的行為。

有四個(gè)取值:

  • ON**(**開(kāi)啟插件)
  • OFF(禁用插件)
  • FORCE(強(qiáng)制開(kāi)啟。如果插件初始化失敗,MySQL將不會(huì)啟動(dòng))
  • FORCE_PLUS_PERMANENT(在FORCE的基礎(chǔ)上,不允許通過(guò)UNINSTALL PLUGIN命令卸載插件)。

(2)動(dòng)態(tài)加載

[mysqld]
plugin-load-add=mysql_clone.so
clone=FORCE_PLUS_PERMANENT復(fù)制代碼

查看插件是否安裝成功

mysql> show plugins;
...
| clone                           | ACTIVE   | CLONE              | mysql_clone.so | GPL     |
...復(fù)制代碼

clone狀態(tài)顯示為”ACTIVE“代表插件加載成功。

二、Clone Plugin的使用

Clone Plugin支持兩種克隆方式:本地克隆和遠(yuǎn)程克隆。

1、 本地克隆

MySQL 8 新特性Clone Plugin是什么

本地克隆是在實(shí)例本地發(fā)起的,其語(yǔ)法如下:

CLONE LOCAL DATA DIRECTORY [=] 'clone_dir';復(fù)制代碼

其中,clone_dir是克隆目錄。

下面看個(gè)具體的Demo。

創(chuàng)建克隆用戶

mysql> create user 'clone_user'@'%' identified by 'clone_pass';
mysql> grant backup_admin on *.* to 'clone_user'@'%';復(fù)制代碼

創(chuàng)建克隆目錄

# mkdir /data/mysql
# chown -R mysql.mysql /data/mysql復(fù)制代碼

創(chuàng)建本地克隆

# mysql -uclone_user -pclone_pass
mysql> clone local data directory='/data/mysql/3307';復(fù)制代碼

其中,“/data/mysql/3307” 是克隆目錄,其需滿足以下幾點(diǎn)要求:

  1. 克隆目錄必須是絕對(duì)路徑。
  2. “/data/mysql”必須存在,且MySQL對(duì)其有可寫(xiě)權(quán)限。
  3. 3307不能存在。

查看克隆目錄的內(nèi)容

# ll /data/mysql/3307
total 172996
drwxr-x--- 2 mysql mysql       89 May 24 22:37 #clone
-rw-r----- 1 mysql mysql     3646 May 24 22:37 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 May 24 22:37 ibdata1
-rw-r----- 1 mysql mysql 50331648 May 24 22:37 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 May 24 22:37 ib_logfile1
drwxr-x--- 2 mysql mysql        6 May 24 22:37 mysql
-rw-r----- 1 mysql mysql 25165824 May 24 22:37 mysql.ibd
drwxr-x--- 2 mysql mysql       20 May 24 22:37 slowtech
drwxr-x--- 2 mysql mysql       28 May 24 22:37 sys
-rw-r----- 1 mysql mysql 10485760 May 24 22:37 undo_001
-rw-r----- 1 mysql mysql 11534336 May 24 22:37 undo_002復(fù)制代碼

相對(duì)于Xtrabackup,無(wú)需Prepare,直接即可啟動(dòng)使用。

# /usr/local/mysql/bin/mysqld --no-defaults --datadir=/data/mysql/3307 --user mysql --port 3307 &復(fù)制代碼

2、遠(yuǎn)程克隆

MySQL 8 新特性Clone Plugin是什么MySQL 8 新特性Clone Plugin是什么

遠(yuǎn)程克隆涉及兩個(gè)實(shí)例,其中,待克隆的實(shí)例是Donor,接受克隆數(shù)據(jù)的實(shí)例是Recipient。克隆命令需在Recipient上發(fā)起,語(yǔ)法如下:

CLONE INSTANCE FROM 'user'@'host':port
IDENTIFIED BY 'password'
[DATA DIRECTORY [=] 'clone_dir']
[REQUIRE [NO] SSL];復(fù)制代碼

其中,host,port 是待克隆實(shí)例的(Donor)的IP和端口,user,password是Donor上的克隆用戶和密碼,需要backup_admin權(quán)限,如上面創(chuàng)建的clone_user。

DATA DIRECTORY指定備份目錄,不指定的話,則默認(rèn)克隆到Recipient的數(shù)據(jù)目錄下。

REQUIRE [NO] SSL,是否開(kāi)啟SSL通信。

下面,看個(gè)具體Demo。

首先,在Donor實(shí)例上創(chuàng)建克隆用戶,加載Clone Plugin。

mysql> create user 'donor_user'@'%' identified by 'donor_pass';
mysql> grant backup_admin on *.* to 'donor_user'@'%';
mysql> install plugin clone soname 'mysql_clone.so';復(fù)制代碼

backup_admin是克隆操作必需權(quán)限。

接著,在Recipient實(shí)例上創(chuàng)建克隆用戶,加載Clone Plugin。

mysql> create user 'recipient_user'@'%' identified by 'recipient_pass';
mysql> grant clone_admin on *.* to 'recipient_user'@'%';
mysql> install plugin clone soname 'mysql_clone.so';復(fù)制代碼

這里的clone_admin,隱式含有backup_admin(阻塞DDL)和shutdown(重啟實(shí)例)權(quán)限。

設(shè)置Donor白名單。Recipient只能克隆白名單中的實(shí)例。

mysql> set global clone_valid_donor_list = '192.168.244.10:3306';復(fù)制代碼

設(shè)置該參數(shù)需要SYSTEM_VARIABLES_ADMIN權(quán)限。

在Recipient上發(fā)起克隆命令

# mysql -urecipient_user -precipient_pass
mysql> clone instance from 'donor_user'@'192.168.244.10':3306 identified by 'donor_pass';
Query OK, 0 rows affected (36.97 sec)復(fù)制代碼

遠(yuǎn)程克隆會(huì)依次進(jìn)行以下操作:

**(1)****獲取備份鎖。**備份鎖和DDL互斥。注意,不僅僅是Recipient,Donor上的備份鎖同樣會(huì)獲取。

**(2)****DROP用戶表空間。**注意,DROP的只是用戶數(shù)據(jù),不是數(shù)據(jù)目錄,也不包括mysql,ibdata等系統(tǒng)表空間。

**(3)從Donor實(shí)例拷貝數(shù)據(jù)。**對(duì)于用戶表空間,會(huì)直接拷貝,如果是系統(tǒng)表空間 ,則會(huì)重命名為xxx.#clone,不會(huì)直接替代原文件。

 ll /data/mysql/3306/data/
...
-rw-r----- 1 mysql mysql     3646 May 25 07:20 ib_buffer_pool
-rw-r----- 1 mysql mysql     3646 May 27 07:31 ib_buffer_pool.#clone
-rw-r----- 1 mysql mysql 12582912 May 27 07:31 ibdata1
-rw-r----- 1 mysql mysql 12582912 May 27 07:31 ibdata1.#clone
-rw-r----- 1 mysql mysql 50331648 May 27 07:32 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 May 27 07:31 ib_logfile0.#clone
...
-rw-r----- 1 mysql mysql 25165824 May 27 07:31 mysql.ibd
-rw-r----- 1 mysql mysql 25165824 May 27 07:31 mysql.ibd.#clone
...復(fù)制代碼

**(4)重啟實(shí)例。**在啟動(dòng)的過(guò)程中,會(huì)用xxx.#clone替換掉原來(lái)的系統(tǒng)表空間文件。

三、如何查看克隆操作的進(jìn)度

查看克隆操作的進(jìn)度主要依托于performance_schema.clone_status和performance_schema.clone_progress這兩張表。

首先看看performance_schema.clone_status表。

mysql> select * from performance_schema.clone_status\G
*************************** 1\. row ***************************
             ID: 1
            PID: 0
          STATE: Completed
     BEGIN_TIME: 2020-05-27 07:31:24.220
       END_TIME: 2020-05-27 07:33:08.185
         SOURCE: 192.168.244.10:3306
    DESTINATION: LOCAL INSTANCE
       ERROR_NO: 0
  ERROR_MESSAGE:
    BINLOG_FILE: mysql-bin.000009
BINLOG_POSITION: 665197555
  GTID_EXECUTED: 59cd4f8f-8fa1-11ea-a0fe-000c29f66609:1-560
1 row in set (0.06 sec)復(fù)制代碼

顧名思義,該表記錄了克隆操作的當(dāng)前狀態(tài)。

其中,

  • **PID:**Processlist ID。對(duì)應(yīng)show processlist中的Id,如果要終止當(dāng)前的克隆操作,執(zhí)行kill processlist_id命令即可。

  • **STATE:**克隆操作的狀態(tài),Not Started(克隆尚未開(kāi)始),In Progress(克隆中),Completed(克隆成功),F(xiàn)ailed(克隆失敗)。如果是Failed狀態(tài),ERROR_NO,ERROR_MESSAGE會(huì)給出具體的錯(cuò)誤編碼和錯(cuò)誤信息。

  • **BEGIN_TIME,END_TIME:**克隆操作開(kāi)始,結(jié)束時(shí)間。

  • **SOURCE:**Donor實(shí)例的地址。

  • **DESTINATION:**克隆目錄?!癓OCAL INSTANCE”代表當(dāng)前實(shí)例的數(shù)據(jù)目錄。

  • **GTID_EXECUTED,BINLOG_FILE(BINLOG_POSITION):**克隆操作結(jié)束時(shí),主庫(kù)已經(jīng)執(zhí)行的GTID集合,及一致性位置點(diǎn)??衫眠@些信息來(lái)搭建從庫(kù)。

接下來(lái)看看performance_schema.clone_progress表。

mysql> select * from performance_schema.clone_progress;
+------+-----------+-----------+----------------------------+----------------------------+---------+-----------+-----------+-----------+------------+---------------+
| ID   | STAGE     | STATE     | BEGIN_TIME                 | END_TIME                   | THREADS | ESTIMATE  | DATA      | NETWORK   | DATA_SPEED | NETWORK_SPEED |
+------+-----------+-----------+----------------------------+----------------------------+---------+-----------+-----------+-----------+------------+---------------+
|    1 | DROP DATA | Completed | 2020-05-27 07:31:28.581661 | 2020-05-27 07:31:35.855706 |       1 |         0 |         0 |         0 |          0 |             0 |
|    1 | FILE COPY | Completed | 2020-05-27 07:31:35.855952 | 2020-05-27 07:31:58.270881 |       2 | 482463294 | 482463294 | 482497011 |          0 |             0 |
|    1 | PAGE COPY | Completed | 2020-05-27 07:31:58.271250 | 2020-05-27 07:31:58.719085 |       2 |  10977280 |  10977280 |  11014997 |          0 |             0 |
|    1 | REDO COPY | Completed | 2020-05-27 07:31:58.720128 | 2020-05-27 07:31:58.930804 |       2 |    465408 |    465408 |    465903 |          0 |             0 |
|    1 | FILE SYNC | Completed | 2020-05-27 07:31:58.931094 | 2020-05-27 07:32:01.063325 |       2 |         0 |         0 |         0 |          0 |             0 |
|    1 | RESTART   | Completed | 2020-05-27 07:32:01.063325 | 2020-05-27 07:32:59.844119 |       0 |         0 |         0 |         0 |          0 |             0 |
|    1 | RECOVERY  | Completed | 2020-05-27 07:32:59.844119 | 2020-05-27 07:33:08.185367 |       0 |         0 |         0 |         0 |          0 |             0 |
+------+-----------+-----------+----------------------------+----------------------------+---------+-----------+-----------+-----------+------------+---------------+
7 rows in set (0.00 sec)復(fù)制代碼

該表記錄了克隆操作的進(jìn)度信息。

  • **STAGE:**一個(gè)克隆操作可依次細(xì)分為DROP DATA,F(xiàn)ILE COPY,PAGE COPY,REDO COPY,F(xiàn)ILE SYNC,RESTART,RECOVERY等7個(gè)階段。當(dāng)前階段結(jié)束了才會(huì)開(kāi)始下一個(gè)階段。

  • **STATE:**當(dāng)前階段的狀態(tài)。有三種狀態(tài):Not Started,In Progress,Completed。

  • **BEGIN_TIME,END_TIME:**當(dāng)前階段的開(kāi)始時(shí)間和結(jié)束時(shí)間。

  • **THREADS:**當(dāng)前階段使用的并發(fā)線程數(shù)。

  • **ESTIMATE:**預(yù)估的數(shù)據(jù)量。

  • **DATA:**已經(jīng)拷貝的數(shù)據(jù)量。

  • **NETWORK:**通過(guò)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。如果是本地克隆,該列的值為0。

  • **DATA_SPEED,NETWORK_SPEED:**當(dāng)前數(shù)據(jù)拷貝的速率和網(wǎng)絡(luò)傳輸?shù)乃俾省?/p>

    注意,是當(dāng)前值。

四、如何基于克隆數(shù)據(jù)搭建從庫(kù)

在前面,我們介紹過(guò)performance_schema.clone_status表,該表會(huì)記錄Donor實(shí)例的一致性位置點(diǎn)信息。我們可以利用這些信息來(lái)搭建從庫(kù)。

mysql> select * from performance_schema.clone_status\G
*************************** 1\. row ***************************
...
    BINLOG_FILE: mysql-bin.000009
BINLOG_POSITION: 665197555
  GTID_EXECUTED: 59cd4f8f-8fa1-11ea-a0fe-000c29f66609:1-560
1 row in set (0.06 sec)復(fù)制代碼

這里,區(qū)分兩種場(chǎng)景,GTID復(fù)制和基于位置點(diǎn)的復(fù)制。

1、GTID復(fù)制

mysql> CHANGE MASTER TO MASTER_HOST = 'master_host_name', MASTER_PORT = master_port_num,
       ...
       MASTER_AUTO_POSITION = 1;
mysql> START SLAVE;復(fù)制代碼

需要注意的是,無(wú)需額外執(zhí)行set global gtid_purged操作。通過(guò)克隆數(shù)據(jù)啟動(dòng)的實(shí)例,gtid_purged已經(jīng)初始化完畢。

mysql> show global variables like 'gtid_purged';
+---------------+--------------------------------------------+
| Variable_name | Value                                      |
+---------------+--------------------------------------------+
| gtid_purged   | 59cd4f8f-8fa1-11ea-a0fe-000c29f66609:1-560 |
+---------------+--------------------------------------------+
1 row in set (0.00 sec)復(fù)制代碼

2、基于位置點(diǎn)的復(fù)制

這里,同樣要區(qū)分兩種場(chǎng)景。

場(chǎng)景1,Recipient要作為Donor的從庫(kù)。

mysql> SELECT BINLOG_FILE, BINLOG_POSITION FROM performance_schema.clone_status; 
mysql> CHANGE MASTER TO MASTER_HOST = 'master_host_name', MASTER_PORT = master_port_num,
       ...
       MASTER_LOG_FILE = 'master_log_name',
       MASTER_LOG_POS = master_log_pos;
mysql> START SLAVE;復(fù)制代碼

其中,

master_host_name,master_port_num:Donor實(shí)例的IP和端口。

master_log_name,master_log_pos:performance_schema.clone_status 中的BINLOG_FILE, BINLOG_POSITION。

場(chǎng)景2,Donor本身就是一個(gè)從庫(kù),Recipient要作為Donor主庫(kù)的從庫(kù)。

mysql> SELECT MASTER_LOG_NAME, MASTER_LOG_POS FROM mysql.slave_relay_log_info;
mysql> CHANGE MASTER TO MASTER_HOST = 'master_host_name', MASTER_PORT = master_port_num,
       ...
       MASTER_LOG_FILE = 'master_log_name',
       MASTER_LOG_POS = master_log_pos;
mysql> START SLAVE;復(fù)制代碼

其中,

master_host_name,master_port_num:Donor主庫(kù)的IP和端口。

master_log_name,master_log_pos:mysql.slave_relay_log_info中的Master_log_name,Master_log_pos(分別對(duì)應(yīng) SHOW SLAVE STATUS 中的 Relay_Master_Log_File,Exec_Master_Log_Pos)。

在搭建從庫(kù)時(shí),建議設(shè)置--skip-slave-start。該參數(shù)默認(rèn)為OFF,實(shí)例啟動(dòng)后,會(huì)自動(dòng)執(zhí)行START SLAVE操作。

如果Donor是個(gè)從庫(kù),Recipient會(huì)基于mysql.slave_master_info,mysql.slave_relay_log_info中的信息自動(dòng)建立復(fù)制,很多時(shí)候,這未必是我們的預(yù)期行為。

五、Clone Plugin的實(shí)現(xiàn)細(xì)節(jié)

克隆操作可細(xì)分為以下5個(gè)階段。

[INIT] ---> [FILE COPY] ---> [PAGE COPY] ---> [REDO COPY] -> [Done]復(fù)制代碼

**1、INIT:**初始化一個(gè)克隆對(duì)象。

**2、FILE COPY:**拷貝所有數(shù)據(jù)文件。在拷貝之前,會(huì)記錄一個(gè)LSN,作為“CLONE START LSN”,這個(gè)LSN其實(shí)是當(dāng)前CHECKPOINT的LSN,同時(shí)啟動(dòng)“Page Tracking”特性。

“Page Tracking”會(huì)跟蹤“CLONE START LSN”之后被修改的頁(yè),具體來(lái)說(shuō),會(huì)記錄該頁(yè)的Tablespace ID和page ID。數(shù)據(jù)文件拷貝結(jié)束后,會(huì)將當(dāng)前CHECKPOINT的LSN記為“CLONE FILE END LSN”。

**3、PAGE COPY:**拷貝“CLONE START LSN”和“CLONE FILE END LSN”之間的頁(yè),在拷貝之前,會(huì)對(duì)這些頁(yè)進(jìn)行排序-基于Tablespace ID和page ID,盡量避免拷貝過(guò)程中出現(xiàn)隨機(jī)讀寫(xiě)。同時(shí),開(kāi)啟“Redo Archiving”特性。

“Redo Archiving”會(huì)在后臺(tái)開(kāi)啟一個(gè)歸檔線程將Redo文件中的內(nèi)容按Chunk拷貝到歸檔文件中。通常來(lái)說(shuō),歸檔線程的拷貝速度會(huì)快于Redo日志的生成速度。即使慢于,在寫(xiě)入新的Redo日志時(shí),也會(huì)等待歸檔線程完成拷貝,不會(huì)出現(xiàn)還未拷貝的Redo日志被覆蓋的情況。當(dāng)所有修改的頁(yè)拷貝完畢后,會(huì)獲取實(shí)例的一致性位置點(diǎn)信息,此時(shí)的LSN記為“CLONE LSN”。

4、REDO COPY:拷貝歸檔文件中“CLONE FILE END LSN”與“CLONE LSN”之間的Redo日志。

**5、Done:**調(diào)用snapshot_end()銷毀克隆對(duì)象。

六、Clone Plugin的限制

1、克隆期間,不允許執(zhí)行DDL命令。同樣,DDL會(huì)阻塞克隆命令的執(zhí)行

2、Clone Plugin不會(huì)拷貝Donor的配置參數(shù)。

3、Clone Plugin不會(huì)拷貝Donor的二進(jìn)制日志文件。

4、Clone Plugin只會(huì)拷貝InnoDB表的數(shù)據(jù),對(duì)于其它存儲(chǔ)引擎的表,只會(huì)拷貝表結(jié)構(gòu)。

5、Donor實(shí)例中如果有表通過(guò)DATA DIRECTORY指定了絕對(duì)路徑,在進(jìn)行本地克隆時(shí),會(huì)提示文件已存在。在進(jìn)行遠(yuǎn)程克隆時(shí),絕對(duì)路徑必須存在且有可寫(xiě)權(quán)限。

6、不允許通過(guò)MySQL Router連接Donor實(shí)例。

7、執(zhí)行CLONE INSTANCE操作時(shí),指定的Donor端口不能為X Protocol端口。

除此之外,在進(jìn)行遠(yuǎn)程克隆時(shí),還會(huì)進(jìn)行如下檢查:

  • MySQL版本(包括小版本)必須一致,且支持Clone Plugin。
ERROR 3864 (HY000): Clone Donor MySQL version: 8.0.20 is different from Recipient MySQL version 8.0.19.復(fù)制代碼
  • 主機(jī)的操作系統(tǒng)和位數(shù)(32位,64位)必須一致。兩者可根據(jù)version_compile_os,version_compile_machine參數(shù)獲取。
  • Recipient必須有足夠的磁盤(pán)空間存儲(chǔ)克隆數(shù)據(jù)。
  • 字符集(character_set_server),校驗(yàn)集(collation_server),character_set_filesystem必須一致。
  • innodb_page_size必須一致。會(huì)檢查innodb_data_file_path中ibdata的數(shù)量和大小。
  • 目前Clone Plugin(8.0.20)的實(shí)現(xiàn),無(wú)論是Donor,還是Recipient,同一時(shí)間,只能執(zhí)行一個(gè)克隆操作。后續(xù)會(huì)支持多個(gè)克隆操作并發(fā)執(zhí)行。
ERROR 3634 (HY000): Too many concurrent clone operations. Maximum allowed - 1.復(fù)制代碼
  • Recipient需要重啟,所以其必須通過(guò)mysqld_safe或systemd等進(jìn)行管理。如果是通過(guò)mysqld進(jìn)行啟動(dòng),實(shí)例關(guān)閉后,需要手動(dòng)啟動(dòng)。
ERROR 3707 (HY000): Restart server failed (mysqld is not managed by supervisor process).復(fù)制代碼
  • ACTIVE狀態(tài)的Plugin必須一致。

七、Clone Plugin與XtraBackup的對(duì)比

1、在實(shí)現(xiàn)上,兩者都有FILE COPY和REDO COPY階段,但Clone Plugin比XtraBackup多了一個(gè)PAGE COPY,由此帶來(lái)的好處是,Clone Plugin的恢復(fù)速度比XtraBackup更快。

2、XtraBackup沒(méi)有Redo Archiving特性,有可能出現(xiàn)未拷貝的Redo日志被覆蓋的情況。

3、GTID下建立復(fù)制,無(wú)需額外執(zhí)行set global gtid_purged操作。

八、Clone Plugin的參數(shù)解析

  • clone_autotune_concurrency是否自動(dòng)調(diào)節(jié)克隆過(guò)程中并發(fā)線程數(shù)的數(shù)量,默認(rèn)為ON,此時(shí),最大線程數(shù)受clone_max_concurrency參數(shù)控制。若設(shè)置為OFF,則并發(fā)線程數(shù)的數(shù)量將是固定的,同clone_max_concurrency參數(shù)一致。該參數(shù)的默認(rèn)值為16。
  • clone_buffer_size本地克隆時(shí),中轉(zhuǎn)緩沖區(qū)的大小,默認(rèn)4M。緩沖區(qū)越大,備份速度越快,相應(yīng)的,對(duì)磁盤(pán)IO的壓力越大。
  • clone_ddl_timeout克隆操作需要獲取備份鎖(Backup Lock)。如果在執(zhí)行CLONE命令時(shí),有DDL在執(zhí)行,則CLONE命令會(huì)被阻塞,等待獲取備份鎖(Waiting for backup lock)。等待的最大時(shí)長(zhǎng)由clone_ddl_timeout參數(shù)決定,默認(rèn)300(單位秒)。如果在這個(gè)時(shí)間內(nèi)還沒(méi)獲取到鎖,CLONE命令會(huì)失敗,且提示“ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction”。

需要注意的是,如果在執(zhí)行DDL時(shí),有CLONE命令在執(zhí)行,DDL同樣會(huì)因獲取不到備份鎖被阻塞,只不過(guò),DDL操作的等待時(shí)長(zhǎng)由lock_wait_timeout參數(shù)決定,該參數(shù)的默認(rèn)值為31536000s,即365天。

  • clone_enable_compression遠(yuǎn)程克隆,在傳輸數(shù)據(jù)時(shí),是否開(kāi)啟壓縮。開(kāi)啟壓縮能節(jié)省網(wǎng)絡(luò)帶寬,但相應(yīng)的,會(huì)增加CPU消耗。
  • clone_max_data_bandwidth遠(yuǎn)程克隆時(shí),可允許的最大數(shù)據(jù)拷貝速率(單位MiB/s)。默認(rèn)為0,不限制。注意,這里限制的只是單個(gè)線程的拷貝速率,如果存在多個(gè)線程并行拷貝,實(shí)際最大拷貝速率=clone_max_data_bandwidth*線程數(shù)。
  • clone_max_network_bandwidth遠(yuǎn)程克隆時(shí),可允許的最大網(wǎng)絡(luò)傳輸速率(單位MiB/s)。默認(rèn)為0,不限制。如果網(wǎng)絡(luò)帶寬存在瓶頸,可通過(guò)該參數(shù)進(jìn)行限速。
  • clone_valid_donor_list設(shè)置Donor白名單,只能克隆白名單中指定的實(shí)例。
  • clone_ssl_ca,clone_ssl_cert,clone_ssl_keySSL相關(guān)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享MySQL 8 新特性Clone Plugin是什么內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!

文章標(biāo)題:MySQL8新特性ClonePlugin是什么
文章起源:http://www.rwnh.cn/article28/igidcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序網(wǎng)站維護(hù)、自適應(yīng)網(wǎng)站Google、網(wǎng)站收錄網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
博兴县| 鄂州市| 灵寿县| 广水市| 永胜县| 遂溪县| 芦溪县| 宣化县| 和硕县| 温泉县| 伊宁市| 田林县| 博湖县| 宁南县| 宜川县| 屯留县| 碌曲县| 青州市| 海兴县| 科尔| 安顺市| 新余市| 共和县| 江永县| 留坝县| 阜南县| 岐山县| 靖安县| 柘城县| 昌黎县| 安阳市| 确山县| 汝南县| 裕民县| 洪雅县| 辛集市| 即墨市| 饶阳县| 樟树市| 靖宇县| 镇平县|