雷竞技下载官网Percona TokuBackup¶
重要的
从雷竞技下载官网Percona Server for MySQL 8.0.28-19,不再支持TokuDB存储引擎。我们已经从安装包中删除了存储引擎,并在二进制构建中禁用了存储引擎。
从雷竞技下载官网Percona Server for MySQL 8.0.26-16,二进制构建和包包括但禁用TokuDB存储引擎插件。tokudb_enabled选项和tokudb_backup_enabled选项控制插件的状态,默认设置为FALSE。尝试加载插件的结果是插件无法初始化并打印弃用消息。
我们建议将数据迁移到MyRocks存储引擎.为了使插件能够迁移到另一个存储引擎,在my.cnf文件中将tokudb_enabled和tokudb_backup_enabled选项设置为TRUE,并重新启动服务器实例。然后,您可以加载插件。
中声明TokuDB存储引擎已弃用雷竞技下载官网Percona Server for MySQL 8.0.有关更多信息,请参阅Percona博客文章:雷竞技下载官网注意:TokuDB支持的变化和未来从Percona服务器删除MySQL 8.0雷竞技下载官网.
雷竞技下载官网TokuBackup是一个开源热备份实用程序MySQL运行TokuDB存储引擎(包括雷竞技下载官网用于MySQL的Percona服务器而且MariaDB).它不会在备份期间锁定数据库。的TokuBackup标准库拦截写入文件的系统调用,并将写入复制到备份目录。
请注意
目前正在考虑这个特性技术预览版并且不应该在生产环境中使用。
从二进制文件安装¶
安装TokuBackup可以用ps-admin脚本。
安装雷竞技下载官网Percona TokuBackup请完成以下步骤。以root用户或使用sudo命令。
运行ps-admin.enable-tokubackup要添加
preload-hotbackup选择到(mysqld_safe)的部分my.cnf.输出可以是:
2.重启mysql服务::bash:正在检查SELinux状态…信息:SELinux已禁用。检查配置文件中是否已经设置了preload-hotbackup选项…INFO:配置文件中没有设置preload-hotbackup选项。检查TokuBackup插件状态…提示:TokuBackup插件未安装。INFO: Successfully added preload-hotbackup option into /etc/my.cnf PLEASE RESTART MYSQL SERVICE AND RUN THIS SCRIPT AGAIN TO FINISH INSTALLATION!$服务mysql重新启动运行ps-admin -enable-tokubackup再次完成安装TokuBackup插件。
检查SELinux状态…INFO: SELinux已禁用。
INFO:配置文件中设置了preload-hotbackup选项。
检查TokuBackup插件状态…INFO: TokuBackup插件未安装。
检查Percona服务器雷竞技下载官网是否运行libHotBackup。Percona服务器正在运行libHot雷竞技下载官网Backup。所以预加载。
正在安装TokuBackup插件…信息:成功安装TokuBackup插件。
备份¶
运行雷竞技下载官网Percona TokuBackup时,备份目标目录必须存在,可写,且由同一用户拥有MySQL服务器正在运行(通常mysql)和空的。
一旦创建了该目录,就可以使用以下命令运行备份:
mysql>集tokudb_backup_dir=' / path_to_empty_directory ';
请注意
设置tokudb_backup_dir变量会自动将备份进程启动到指定的目录。雷竞技下载官网Percona TokuBackup每次都会进行全量备份,目前没有增量备份选项
如果在此步骤中出现任何错误(例如由错误配置引起),报告错误部分将解释如何找出原因。
从备份恢复¶
雷竞技下载官网Percona TokuBackup没有任何恢复备份的功能。你可以使用rsync或cp恢复文件。您应该检查恢复的文件是否具有正确的所有权和权限。
请注意:确保datadir是空的MySQL从备份中恢复之前,服务器关闭。不能恢复到正在运行的mysqld实例的datadir(导入部分备份时除外)。
方法的使用方法,下面的示例展示了如何使用rsync命令恢复备份。
$rsync-avrP/ /数据/备份/var/lib/mysql/
由于文件的属性被保留,在大多数情况下,您将需要将其所有权更改为mysql在启动数据库服务器之前。否则,这些文件将归创建备份的用户所有。
$乔恩- rmysql: mysql/var/lib/mysql
如果您已更改默认TokuDB数据目录(tokudb_data_dir)或TokuDB日志目录(tokudb_log_dir)或两者都有,备份后您将在备份目录中看到每个设置的单独文件夹。你需要分别恢复每个文件夹:
$rsync-avrP/ /备份/ mysql_data_dir /数据/var/lib/mysql/美元rsync-avrP/ /备份/ tokudb_data_dir /数据/道路/ /原始/ tokudb_data_dir /美元rsync-avrP/ /备份/ tokudb_log_dir /数据/道路/ /原始/ tokudb_log_dir /美元乔恩- rmysql: mysql/var/lib/mysql美元乔恩- rmysql: mysql/ /原始/ tokudb_data_dir $ /路径乔恩- rmysql: mysql/ /原始/ tokudb_log_dir /路径
高级配置¶
raybet雷竞技竞猜在线官网监测进展¶
TokuBackup更新PROCESSLIST备份正在进行时的状态。您可以通过运行查看输出显示PROCESSLIST或显示完整流程列表.
不包括源文件¶
您可以基于tokudb_backup_exclude会话变量中的正则表达式集排除某些文件和目录。如果源文件名匹配被排除的正则表达式,则将该源文件排除在备份之外。
例如,排除所有发现了+从备份目录,使用以下命令:
mysql>集tokudb_backup_exclude=' /丢失\ \ +发现($ | /)';
请注意
服务器pid默认情况下,文件被排除。如果你提供了你自己的附加条款,并且有pid文件在默认位置,您将需要添加mysqld_safe。pid条目。
节流备份速率¶
您可以使用tokudb_backup_throttle会话级变量限制备份速率。该变量限制备份的写入速率(单位为每秒字节),以防止TokuBackup挤占系统中的其他作业。缺省值和最大值为18446744073709551615。
mysql>集tokudb_backup_throttle=1000000;
限制备份目标¶
您可以使用tokudb_backup_allowed_prefix系统级变量限制备份所在的目标目录的位置。尝试备份到指定目录或其子目录之外的位置将导致错误。
默认为零,备份没有限制的位置。方法中设置此只读变量my.cnf配置文件,并显示显示变量命令:
mysql>显示变量就像“tokudb_backup_allowed_prefix”;
输出可以是:
+------------------------------+-----------+ | Variable_name |值 | +------------------------------+-----------+ | tokudb_backup_allowed_prefix | / dumpdir | +------------------------------+-----------+
报告错误¶
雷竞技下载官网Percona TokuBackup使用两个变量来捕获错误。它们是tokudb_backup_last_error和tokudb_backup_last_error_string。当TokuBackup遇到错误时,这些将分别报告错误号和错误字符串。例如,在尝试备份到非空目录后,以下输出显示了这些参数:
mysql>集tokudb_backup_dir=“/ tmp / backupdir”;
输出可以是:
mysql> SELECT @@tokudb_backup_last_error(42000):变量'tokudb_backup_dir'不能被设置为'/tmp/backupdir'的值;+----------------------------+ | @@ tokudb_backup_last_error | +----------------------------+ | 17 | +----------------------------+
mysql>选择@@tokudb_backup_last_error_string;
输出可以是:
+---------------------------------------------------+ | @@ tokudb_backup_last_error_string | +---------------------------------------------------+ | tokudb备份无法创建所需的目录。| +---------------------------------------------------+
使用TokuDB热备进行复制¶
TokuDB热备份在应用程序读取和写入这些文件时对TokuDB文件进行事务一致性拷贝。TokuDB热备份库拦截某些写入文件的系统调用,并在将文件复制到备份目录时复制对备份文件的写入。复制的文件内容与原始文件相同。
TokuDB热备份也有一个API。此API包括开始捕捉而且停止捕捉命令。“capturing”命令启动该过程,当文件的一部分被复制到备份位置,并且该部分被更改时,这些更改也应用于备份位置。
复制通常使用备份复制来创建副本。您必须知道副本和源配置的最后执行的全局事务标识符(GTID)或二进制日志位置。
要锁定表,使用用读锁刷新表或者使用智能锁为备份锁定表或锁定binlog进行备份.
在复制过程中,binlog将被刷新,并通过“捕获”机制将更改复制到备份。复制完所有内容后,“捕获”机制仍在运行,使用锁定binlog进行备份.执行此语句后,binlog将被刷新,所做的更改将被捕获,任何可能改变binlog位置或执行GTID的查询将被阻止。
执行此命令后,可以停止捕获和检索上次执行的GTID或binlog日志位置,并解锁binlog。
备份完成后,备份目录下有以下文件:
tokubackup_slave_info
tokubackup_binlog_info
这些文件包含副本和源文件的信息。您可以使用此信息从源或副本启动一个新的副本。
的显示主机状态而且显示奴隶状态命令提供信息。
重要的
从MySQL 8.0.22开始,显示奴隶状态语句已弃用。使用显示副本状态代替。
在特定的binlog格式中,二进制日志事件可以包含在副本端生成临时表的语句,而后续语句的结果可能取决于临时表的内容。通常,不会选择临时表进行备份,因为它们是在单独的目录中创建的。使用binlog事件创建的临时表创建的备份在恢复时可能会导致问题,因为临时表没有恢复。可能导致数据不一致。
以下系统变量-tokudb-backup-safe-slave(用于启用或禁用安全从模式)和-tokudb-backup-safe-slave -timeout(用于定义等待临时表消失的最大时间(以秒为单位)。的safe-slave模式,当与锁定binlog进行备份,副本SQL线程将停止并检查副本生成的临时表是否存在。如果存在临时表,复制SQL线程将重新启动,直到没有临时表或达到定义的超时。
不应将此选项用于组复制。
使用时间戳创建备份¶
如果计划在某个位置存储多个备份,则应该向备份目录名称添加时间戳。
一个示例Bash脚本有以下信息:
# !/bin/bash tm=$(日期"+%Y-%m-%d-%H-% m-% S");backup_dir = $ PWD /备份/ tm美元;Mkdir -p $backup_dir;Bin /mysql -uroot -e "set tokudb_backup_dir='$backup_dir'"
局限性和已知问题¶
你必须禁用InnoDB备份时异步IOInnoDB表与TokuBackup.否则,您将得到不一致的、不可恢复的备份。适当的设置是
innodb_use_native_aio = 0.为了能够运行时间点恢复,您需要手动获取二进制日志位置。
事务性存储引擎(TokuDB而且InnoDB)会在数据库第一次启动时对其备份副本执行恢复。
使用非事务性存储引擎的表(MyISAM)在复制过程中没有锁定,并可能在启动备份时报告问题。最好避免在热备份操作结束时修改这些表的操作(添加/更改用户、存储过程等)。
中将数据库本地复制到中指定的路径
/ /备份/路径.此文件夹必须存在、可写、为空,并且包含足够的空间用于数据库的完整副本。TokuBackup总是备份MySQLDatadir和可选的tokudb_data_dir、tokudb_log_dir和二进制日志文件夹。类中不相同或不包含时,才会分别备份后三个MySQLdatadir。的父文件夹MySQLdatadir。
不支持其他目录结构。所有InnoDB,MyISAM,其他存储引擎文件必须在MySQLdatadir。
TokuBackup不遵循符号链接。
TokuBackup不备份MySQL配置文件(s)。
TokuBackup如果表空间不在datadir范围内,则不备份表空间。
由于上游bug# 80183,TokuBackup不能恢复备份的表数据,如果备份是在运行
优化表或修改表…表空间.TokuBackup不支持增量备份。