首页 > 其他分享 >5.clone plugin(克隆插件)的限制

5.clone plugin(克隆插件)的限制

时间:2023-04-01 22:23:13浏览次数:42  
标签:插件 克隆 plugin Clone 参数 Donor 拷贝 clone

1.在使用 Clone Plugin 时,注意以下限制:

克隆期间,会阻塞 DDL 。同样,DDL 也会阻塞克隆命令的执行。不过从  MySQL 8.0.27 开始,克隆命令不会阻塞 Donor 上的 DDL 。

  • Clone Plugin 不会拷贝 Donor 的配置参数。
  • Clone Plugin 不会拷贝 Donor 的 Binlog。
  • Clone Plugin 只会拷贝 InnoDB 表的数据,对于其它存储引擎的表,只会拷贝表结构。
  • Donor 实例中如果有表通过 DATA DIRECTORY 子句设置了绝对路径,在进行本地克隆时,会提示文件已存在。在进行远程克隆时,绝对路径必须存在且有可写权限。
  • 不允许通过 MySQL Router 连接 Donor 实例。
  • 执行 CLONE INSTANCE 操作时,指定的 Donor 端口不能为 X Protocol 端口。

除此之外,在进行远程克隆时,还有如下要求:

  • MySQL 版本(包括小版本)必须一致。

  • 主机的操作系统和位数(32 位,64 位)必须一致。两者可基于参数 version_compile_os,version_compile_machine 获取。

  • Recipient 必须有足够的磁盘空间存储克隆数据。

  • 字符集相关参数必须一致,具体包括:character_set_server(字符集),collation_server(校验集)和 character_set_filesystem。

  • 参数 innodb_page_size 必须一致。

  • 无论是 Donor ,还是 Recipient ,同一时间,只能执行一个克隆操作。

  • Recipient 需要重启,所以其必须通过 mysqld_safe 或 systemd 等进程管理工具进行管理,否则的话,实例关闭后,需手动拉起。

2.clone plugin与xtrabackup的异同

下面看看 Clone Plugin 和 XtraBackup 的异同点:

  • 在实现上,两者都有 FILE COPY 和 REDO COPY 阶段,但 Clone Plugin 比 XtraBackup 多了一个 PAGE COPY 阶段。由此带来的好处是,Clone Plugin 的恢复速度比XtraBackup 快。
  • XtraBackup 没有 Redo Archiving 特性,有可能出现未拷贝的 Redo 日志被覆盖的情况。
  • GTID 下建立复制, Clone Plugin 无需额外执行 SET GLOBAL GTID_PURGED 操作。

3.clone plugin的参数解析

  • clone_autotune_concurrency

  是否自动调节克隆过程中并发线程数的数量,默认为 ON ,此时,最大线程数由参数 clone_max_concurrency  控制。若设置为 OFF ,并发线程数将是固定的,等于 clone_max_concurrency 。后者的默认值为 16 。

  • clone_block_ddl

  克隆过程中是否对 Donor 实例加备份锁。如果加了,则会阻塞 DDL。默认为 OFF,不加。该参数是 MySQL 8.0.27 引入的。

  • clone_delay_after_data_drop

Drop 完用户表空间,等待多久才执行数据拷贝操作。引入该参数的初衷是某些文件系统(如 VxFS)是异步释放空间的。如果 Drop 完用户表空间,就马上执行数据拷贝操作,有可能会因为空间不足而导致克隆失败。该参数是 MySQL 8.0.29 引入的,默认为 0,不等待。

  • clone_buffer_size

  本地克隆时,中转缓冲区的大小,默认 4M 。缓冲区越大,备份速度越快,相应地,对磁盘 IO 的压力也越大。

  • clone_ddl_timeout

  克隆操作需要获取备份锁。在执行 CLONE 命令时,如果有 DDL 正在执行,则 CLONE 命令会被阻塞,等待获取备份锁(Waiting for backup lock)。等待的最大时长由 Recipient 实例上的 clone_ddl_timeout 决定,该参数默认为 300s。如果在这个时间内还没获取到备份锁,CLONE 命令会失败,且提示 ERROR 3862 (HY000): Clone Donor Error: 1205 : Lock wait timeout exceeded; try restarting transaction.需要注意的是,在执行 DDL 时,如果有 CLONE 命令在执行,DDL 同样也会因为备份锁而阻塞,只不过,DDL 操作的等待时长由lock_wait_timeout 决定,该参数默认为 31536000s,即 365 天。

  • clone_donor_timeout_after_network_failure

  远程克隆时,如果出现了网络错误,克隆操作不会马上终止,而是会等待一段时间。如果在这个时间内,网络恢复了,操作会继续进行。在 MySQL 8.0.24 之前,等待时间是固定的 5 min。从 MySQL 8.0.24 开始,可通过 clone_donor_timeout_after_network_failure 设置这个时间,默认是 5 min。

  • clone_enable_compression

  远程克隆传输数据时,是否开启压缩。默认为 OFF 。开启压缩能节省网络带宽,但相应地,会增加 CPU 消耗。

  • clone_max_data_bandwidth

远程克隆时,可允许的最大数据拷贝速率,单位 MB/s 。默认为 0,不限制。如果 Donor 的磁盘 IO 存在瓶颈,可通过该参数来限速。

注意,这里限制的只是单个线程的拷贝速率。如果是多个线程并行拷贝,实际最大拷贝速率 = clone_max_data_bandwidth * 线程数。

  • clone_max_network_bandwidth

远程克隆时,可允许的最大网络传输速率,单位 MiB/s 。默认为 0,不限制。如果网络带宽存在瓶颈,可通过该参数来限速。

  • clone_valid_donor_list

在 Recipient 上设置 Donor 白名单,Recipient 只能克隆白名单中指定的实例。在执行克隆操作之前,必须设置该参数。

  • clone_ssl_ca,clone_ssl_cert,clone_ssl_key

     SSL 相关。

 

标签:插件,克隆,plugin,Clone,参数,Donor,拷贝,clone
From: https://www.cnblogs.com/zmc60/p/17279560.html

相关文章

  • OpenGL Mac开发-如何使用imgui(1.89.4)插件进行调试
    为了调试我们的OpenGLDemo,可以尝试使用一个成熟的开源GUI插件imgui。1,首先进入imgui在github上的地址。在Release中下载最近的版本,可以得到一个Zip压缩包。现在是2023年的4月1日,我下载到的版本是1.89.4,与Cherno的OpenGL教程中的代码略微有些区别。如果你看的是Cherno的教程,也......
  • Microsoft Child Process Debugging Power Tool 插件
    使用VisualStudio2022调试Dapr应用程序 使用Dapr编写的是一个多进程的程序,两个进程之间依赖于启动顺序来组成父子进程,使用VisualStudio调试起来可能会比较困难,因为VisualStudio默认只会把你当前设置的启动项目的启动调试。好在有VisualStudio扩展(MicrosoftC......
  • Pycharm中使用codeium插件,中文注释显示为乱码(方块字)的解决办法
    在使用codeium这个AI提示插件的过程中,使用中文注释,智能提示的提示语,会有可能展示为乱码、方块字如下图中的灰色提示语:tab以后,就展示正常了。在中文网上搜了下,没有相关资料,去codeium的discord频道问了下,找到了解答:解答为:将首选项->编辑器->字体从“JetBrainsMono”更改为......
  • VSCode升级语言插件后界面变回英文,如何切换回中文
    按快捷键Ctrl+Shift+P,输入ConfigureDisplayLanguage回车后选择简体中文重启VSCode后生效 参考:VScode:将VScode界面的显示语言改为简体中文,切换VScode界面的显示语言......
  • 使用IDEA插件反编译jar包
    使用IDEA插件反编译jar包和class命令行:java-cp+"插件路径"+org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler-dgs=true+jar包+反编译后存储位置示例java-cp"D:\IDEA\IntelliJIDEA2020.1.4\plugins\java-decompiler\lib\java-decompiler.jar......
  • 报错 qt.qpa.plugin: Could not load the Qt platform plugin “xcb“ in ““ even t
    参考:https://blog.csdn.net/qq_39938666/article/details/120452028  ==========================================  使用ubuntu系统下python的seaborn模块画图,报错:qt.qpa.plugin:CouldnotloadtheQtplatformplugin“xcb“in““eventhoughitwasfound......
  • 插件模式 bug优化2
    目前客户的现象很经典,某一个核cpu打满了!网卡开启了RSS,每个work都绑定了一个cpu。使用strace分析的时候,发现使用总是某一个线程被唤醒,然后这个work一直都在处理io事件。--这个问题原因就是惊群导致。详细就不写了,具体看内核就可知。主要是应用层的问题:由于代码比较老,里面很多......
  • idea常用插件
    GrepConsole在启动应用时或调试时,IDEA控制台输出一大堆日志,想要快速找到自己需要类型的日志是很麻烦的,此时使用此插件可以快速定位到自己想要的类型日志,比如TRACE、DEBUG等,也可以单独打开标签页显示自己需要的日志,日志分类也可以配置自己喜欢的颜色。stackoverflow程序员......
  • 关于lib-flexible插件中的单位转换
    lib-flexible是淘宝项目组开发出来的一个小插件,属于开源项目。一般而言,lib-flexible并不独立出现,而是搭配px2rem-loader一起做适配方案,目的是自动将css中的px转换成rem。lib-flexible:根元素html的font-size为此时屏幕宽度/10,也就有1rem=html的font-size大小。1.但是当分辨率(屏......
  • eclispe freemarker ide 插件安装
    首先打开jbossTools的下载页面 http://www.jboss.org/tools/download/进入到此页面,看到图上的红色框吗?这里的链接是安装jbosstools http://download.jboss.org/jbosstools/updates/stable/juno/好了,打开eclipse  好了,你点OK后,左则就会提示一系列jbosstools的eclipse插......