久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL的Clone插件怎么用

194次閱讀
沒有評論

共計 5105 個字符,預計需要花費 13 分鐘才能閱讀完成。

今天丸趣 TV 小編給大家分享一下 MySQL 的 Clone 插件怎么用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

克隆插件簡介

MySQL 8.0.17 引入了 Clone 插件,可以進行本地或從遠程 MySQL 服務器實例進行克隆,克隆的數據是存儲在 InnoDB 中的數據的物理快照,包括 schemas、tables、tablespaces 和數據字典元數據。克隆操作包括本地克隆和遠程克隆。

本地克隆操作:                                                                  遠程克隆操作:

安裝克隆插件

使用 Clone 插件進行克隆操作,必須先進行插件的安裝和配置。插件的名稱是 mysql_clone.so,安裝有兩種方法。

方法 1:

MySQL 數據庫的插件默認放在系統變量 plugin_dir 對應的目錄中,在 MySQL 服務器啟動時使用 –plugin-load-add 選項加載該插件即可,但該方法需每次啟動服務器都需要指定對應的選項,可以將其配置到 my.cnf 文件中,即:

[mysqld]
plugin-load-add=mysql_clone.so

方法 2:

運行時加載該插件,使用 INSTALL PLUGIN 進行安裝,并將插件注冊到 mysql.plugin 系統表中:

install plugin clone soname  mysql_clone.so

安裝后,可在 information_schema.plugins 表或通過 show plugins 查看。

克隆本地數據

本地克隆數據是將 MySQL 數據目錄克隆相同服務器或節點到另一個目錄 支持的語法如下,

CLONE LOCAL DATA DIRECTORY [=]  /path/to/clone_dir

執行上述語句,對應的用戶需要有 BACKUP_ADMIN 權限,而且用戶創建的文件或表空間必須在數據目錄中,同時,克隆的目的地需指定絕對路徑,目錄完整路徑必須存在,但 clone_dir 必須不存在。

演示:克隆本地數據

1)創建用戶

mysql  select version();
+-----------+
| version() |
+-----------+
| 8.0.25 |
+-----------+
1 row in set (0.00 sec)
mysql  create user clone_admin identified by  Cl0neTest 
Query OK, 0 rows affected (0.02 sec)
mysql  grant backup_admin on *.* to clone_admin;
Query OK, 0 rows affected (0.10 sec)

2)創建目錄

[root@node1 ~]# mkdir /mysql/clone/
[root@node1 ~]# chown -R mysql:mysql /mysql/clone/

3)克隆操作

mysql  clone local data directory= /mysql/clone/clone_data 
Query OK, 0 rows affected (17.09 sec)

4)查看克隆后的文件

[root@node1 ~]# ll /mysql/clone/clone_data/
total 6348816
drwxr-x---. 2 mysql mysql 89 Nov 28 11:26 #clone
-rw-r-----. 1 mysql mysql 9231 Nov 28 11:26 ib_buffer_pool
-rw-r-----. 1 mysql mysql 4294967296 Nov 28 11:26 ibdata1
-rw-r-----. 1 mysql mysql 1073741824 Nov 28 11:26 ib_logfile0
-rw-r-----. 1 mysql mysql 1073741824 Nov 28 11:26 ib_logfile1
drwxr-x---. 2 mysql mysql 6 Nov 28 11:26 mysql
-rw-r-----. 1 mysql mysql 25165824 Nov 28 11:26 mysql.ibd
drwxr-x---. 2 mysql mysql 4096 Nov 28 11:26 sakila
drwxr-x---. 2 mysql mysql 28 Nov 28 11:26 sys
-rw-r-----. 1 mysql mysql 16777216 Nov 28 11:26 undo_001
-rw-r-----. 1 mysql mysql 16777216 Nov 28 11:26 undo_002

5)驗證,使用克隆的目錄啟動數據庫

[root@node1 ~]# service mysql.server stop
Shutting down MySQL.... SUCCESS!
[root@node1 ~]# mysqld_safe --datadir=/mysql/clone/clone_data/ --lower-case-table-names=1 --user=mysql
2021-11-28T03:47:11.012900Z mysqld_safe Logging to  /mysql/clone/clone_data/node1.com.cn.err .
2021-11-28T03:47:11.036181Z mysqld_safe Starting mysqld daemon with databases from /mysql/clone/clone_data

克隆遠程數據

克隆遠程 MySQL 服務器實例(donor)并將其傳輸至執行克隆操作的 MySQL 實例(recipient),支持的克隆遠程數據的語法如下:

CLONE INSTANCE FROM  user @ host :port
IDENTIFIED BY  password 
[ DATA DIRECTORY [ = ]  clone_dir  ]
[ REQUIRE [ NO ] SSL ]

其中,

user 是 donor MySQL 服務器實例的用戶名;

password 是 user 的密碼;

host 是 donor MySQL 服務器實例的 hostname 地址,目前支持 IPv4,不支持 IPv6,但可使用別名;

port 是 donor MySQL 服務器實例的端口號;

DATA DIRECTORY [=] clone_dir 是可選的子句用于指定接收克隆數據的目錄,不指定該選項會覆蓋已存在的數據文件,指定該選項可將克隆數據傳輸至該目錄;

REQUIRE [NO] SSL 顯式指定是否使用加密連接;

執行克隆操作,克隆插件必須在 donor 和 recipient MySQL 服務器實例激活,在 donor 服務器實例,克隆用戶需要 BACKUP_ADMIN 權限,在 recipient 服務器實例,克隆用戶需要 CLONE_ADMIN 權限,CLONE_ADMIN 權限包括 BACKUP_ADMIN 和 SHUTDOWN 權限。

執行 CLONE INSTANCE 語句需滿足下面的先決條件:

donor 和 recipient 必須有相同的 MySQL 服務器版本,克隆插件在 8.0.17 版本后支持;

donor 和 recipient 必須運行在相同的操作系統和平臺;

克隆數據,recipient 必須有足夠的磁盤空間;

InnoDB 需要在數據目錄外面創建表空間,可通過 INFORMATION_SCHEMA.FILES 查看;

克隆插件必須在 donor 和 recipient 激活,可通過 SHOW PLUGINS 查看;

donor 和 recipient 必須有相同的 MySQL 服務器字符集和排序規則;

donor 和 recipient 需要有相同的 innodb_page_size 和 innodb_data_file_path 設置;

若克隆加密或頁壓縮的數據,donor 和 recipient 必須有相同的文件系統塊大??;

若克隆加密的數據,需要安全的連接;

recipient 上的 clone_valid_donor_list 設置必須包括 donor MySQL 服務器實例的主機地址;

一次只能有一個克隆操作,克隆期間不能有其他克隆操作,可通過 clone_status 查看;

克隆插件以 1MB 數據包和元數據的形式傳輸數據,在 donor 和 recipient MySQL 服務器實例上所需的最小 max_allowed_packet 是 2MB;

donor 上的 Undo 表空間文件名必須唯一,當數據克隆到 recipient,undo 表空間克隆到 recipient 上 innodb_undo_directory 指定的位置或 DATA DIRECTORY [=] clone_dir 子句指定的目錄;

默認,recipient MySQL 服務器實例在克隆數據完成后自動重啟;

幾個變量控制遠程克隆操作的各個方面;

演示:克隆遠程數據

默認將數據克隆到 recipient 端的數據目錄,并使用 donor 的數據進行覆蓋,然后進行自動重啟 recipient 端的 MySQL 服務器實例

1)登錄到 donor MySQL 服務器實例,創建用戶并安裝插件(若安裝可忽略)

mysql  create user  donor_clone_user  identified by  donor_clone_user 
Query OK, 0 rows affected (0.02 sec)
mysql  grant backup_admin on *.* to donor_clone_user;
Query OK, 0 rows affected (0.01 sec)

2)登錄到 recipient MySQL 服務器實例,創建賬戶并安裝插件,并設置 clone_valid_donor_list

mysql  create user recipient_clone_user identified by  recipient_clone_user 
Query OK, 0 rows affected (0.04 sec)
mysql  grant clone_admin,backup_admin on *.* to recipient_clone_user;
Query OK, 0 rows affected (0.01 sec)
mysql  install plugin clone soname  mysql_clone.so
Query OK, 0 rows affected (0.01 sec)
mysql  set global clone_valid_donor_list= 192.168.56.53:3306 
Query OK, 0 rows affected (0.00 sec)

3)登錄到 recipient MySQL 服務器實例,使用 recipient_clone_user 用戶或 root 用戶執行克隆操作,操作完成后會自動重啟

mysql  clone instance from  donor_clone_user @ 192.168.56.81 :3306 identified by  donor_clone_user 
Query OK, 0 rows affected (51.08 sec)

注:將 donor 的數據克隆到 recipient 端默認會覆蓋其數據文件,也可以指定一個目錄進行克隆,如下:

mysql  clone instance from  donor_clone_user @ 192.168.56.81 :3306 identified by  donor_clone_user  data directory= /mysql/clone/clone_data 
Query OK, 0 rows affected (51.17 sec)

使用新目錄啟動 MySQL 服務器實例:

[root@node2 clone]# mysqld --lower-case-table-names=1 --datadir=/mysql/clone/clone_data/ --user=mysql 

以上就是“MySQL 的 Clone 插件怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,丸趣 TV 小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-15發表,共計5105字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 金山区| 峨眉山市| 石狮市| 黄陵县| 北京市| 承德县| 本溪市| 天峻县| 西充县| 册亨县| 河南省| 柳河县| 娄烦县| 广东省| 唐海县| 衡东县| 兴仁县| 固原市| 平南县| 师宗县| 沧州市| 张家港市| 那坡县| 丹寨县| 封开县| 广南县| 贞丰县| 巩义市| 乌拉特中旗| 勐海县| 定陶县| 金华市| 安新县| 涞源县| 东兴市| 大同县| 郸城县| 永清县| 河津市| 南漳县| 前郭尔|