5.7.5restore cluster命令

restore cluster
    {--backupid=|-I }backup_id
    [--disable-indexes|-x]
    [--disable-metadata|-M]
    [--epoch|-e]
    [--exclude-databases=db_name]
    [--exclude-intermediate-sql-tables]
    [--exclude-missing-columns]
    [--exclude-missing-tables]
    [--exclude-tables=db_name.tbl_name[,db_name.tbl_name][,...]]
    [--include-databases=db_name]
    [--include-stored-grants]
    [--include-tables=db_name.tbl_name[,db_name.tbl_name][,...]]
    [--lossy-conversions]
    [--no-binlog|-l]
    [--no-restore-disk-objects]
    [{--parallelism=|-p }#]
    [--privilege-tables|-P]
    [--progress-frequency]
    [--promote-attributes]
    [--rewrite-database]
    [--skip-broken-objects]
    [{--skip-nodeid=|-s }id_list]
    [--skip-table-check]
    [--skip-unknown-objects]
    [--password-file=filepath]
    cluster_name

此命令将集群从具有指定备份 ID(--backupid 选项;缩写形式 :)的备份还原-I到名为 的 MySQL NDB 集群cluster_name。在其最简单的形式中,它可以如下所示使用,将命名的集群恢复mycluster到备份 ID 为 3 的备份中保存的状态:

mcm> restore cluster --backupid=3 mycluster;
+--------------------------------+
| Command result                 |
+--------------------------------+
| Restore completed successfully |
+--------------------------------+
1 row in set (18.60 sec)

如果要将现有集群恢复到已知的良好状态,则必须先擦除所有现有数据。使用 停止集群 stop cluster,然后使用 选项重新启动它start cluster--initial这会导致数据节点文件系统被清除。(请注意,对于 MySQL NDB Cluster 7.5,必须手动删除磁盘数据文件。)在此之后,您可以使用restore cluster.

重要的

为了使用 恢复备份 restore cluster,集群在其配置中必须有一个未使用的槽用于ndbapi 进程。否则,该命令将失败并显示错误Unable to perform restore - no vacant ndbapi slots in config for cluster cluster_name。有关如何向集群添加空闲槽 的信息,请参阅 添加空闲进程。ndbapi

可以与此命令一起使用的其他选项包括:

--disable-indexes--disable-metadata。  要在恢复表数据时忽略索引,请使用该 --disable-indexes 选项。这样做可以减少恢复大型数据集所需的时间,尤其是在使用许多索引的情况下。--disable-metadata 同样,您可以使用选项(简称 :)在恢复过程中忽略元数据 -M

--epoch 使用 --epoch选项(缩写形式 -e:)时,纪元信息将恢复到集群复制状态表(mysql.ndb_apply_status),这对于 MySQL NDB Cluster 复制中的副本很有用。

--exclude-databases--exclude-tables。  --exclude-databases 使用选项和 防止一个或多个数据库或表被恢复 --exclude-tables--exclude-databases 获取不应恢复的一个或多个数据库的逗号分隔列表。 采用不应恢复--exclude-tables 的一个或多个表(使用格式)的逗号分隔列表 。使用 or 时 ,只排除选项命名的那些数据库或表;所有其他数据库和表都已恢复。 database.table--exclude-databases--exclude-tables

--exclude-missing-columns 使用此选项时,restore cluster与在备份中找到的那些表的版本相比,忽略正在还原的表中丢失的任何列。

--exclude-missing-tables 使用此选项时,restore cluster忽略备份中未在目标数据库中找到的任何表。

--exclude-intermediate-sql-tables[=TRUE|FALSE] 执行ALTER TABLE 操作时,mysqld创建中间表(其名称以 为前缀 #sql-)。当 时TRUE,该 --exclude-intermediate-sql-tables 选项会阻止restore cluster 恢复此类操作可能遗留下来的此类表。这个选项是TRUE默认的。

--include-databases--include-tables。  分别使用 --include-databases 选项或 --include-tables 仅恢复特定数据库或表的选项。 --include-databases 接受要恢复的数据库的逗号分隔列表。 获取要恢复--include-tables 的以逗号分隔的表列表( 格式)。当 使用 或 时 ,只恢复那些以该选项命名的数据库或表;所有其他数据库和表都被排除在外 ,并且不会被恢复。 database.table--include-databases--include-tablesrestore cluster

--include-stored-grants 管理 NDB Cluster 8.0.19 及以后版本时,restore cluster命令默认不恢复 共享用户和授权mysql.ndb_sql_metadata;使用该 --include-stored-grants 选项覆盖此行为并启用共享用户和授权数据和元数据的恢复。

--lossy-conversions 使用 --lossy-conversions 允许在从备份恢复数据时对列值进行有损转换(类型降级或符号更改)。除了一些例外,管理降级的规则与 MySQL 复制相同;有关属性降级当前支持的特定类型转换的信息, 请参阅 具有不同数据类型的列的复制。restore cluster报告它在每个属性和列的有损转换期间执行的任何数据截断。

--no-binlog --no-binlog 选项(缩写形式 :)-l阻止集群中的任何 SQL 节点(mysqld进程)将恢复的数据写入其二进制日志。

--no-restore-disk-objects 此选项停止restore cluster恢复任何 MySQL NDB Cluster 磁盘数据对象,例如表空间和日志文件组;有关这些对象的更多信息, 请参阅 NDB Cluster 磁盘数据表。

--parallelism=# --parallelism 选项(缩写形式 :)设置命令尝试使用 的 -p最大并行事务数 。restore cluster默认值为 128;最大值为 1024,最小值为 1。

--privilege-tables --privilege-tables 选项(缩写形式 -P:)导致恢复分布式授权所需的表(请参阅使用共享授权表的分布式权限)。

--progress-frequency= N。  每秒将状态报告打印到mcm在 备份过程中 创建 N 的临时 stdout 转储文件中。0(默认值)导致不打印状态报告。最大值为 65535。 mcm_data/clusters/cluster_name/nodeid/tmp

--promote-attributes 允许在 MySQL Cluster Manager 从备份中恢复数据时提升属性。有关更多详细信息,请参阅 MySQL NDB Cluster 手册中关于属性提升的讨论

--rewrite-database= old_dbname, new_dbname 此选项会导致 old_dbname备份中具有名称的数据库在名称下恢复new_dbname

--skip-nodeid --skip-nodeid 选项(缩写形式 -s:)采用以逗号分隔的节点 ID 列表。列出其 ID 的节点可能包括数据节点、SQL 节点或两者。恢复过程会跳过具有这些 ID 的节点。

--skip-broken-objects 此选项导致restore cluster在读取备份时忽略损坏的表,并继续恢复任何剩余的表(未损坏的表)。目前,该 --skip-broken-objects 选项仅在缺少 blob 部分表的情况下有效。

--skip-table-check 可以在不恢复表元数据的情况下恢复数据。这样做的默认行为是 restore cluster如果表数据与表模式不匹配则失败并报错;这可以使用 --skip-table-check 选项覆盖。

--skip-unknown-objects 此选项会导致restore cluster在读取备份时忽略任何它无法识别的模式对象。这可用于恢复,例如,从较新版本的 MySQL NDB Cluster 制作的备份到旧版本。

对于 8.0.28 版及更高版本: MySQL Cluster Manager 支持还NDB机加密集群备份。要恢复加密备份,请使用该 --password-file 选项提供包含备份加密密码的文件。密码文件必须满足以下条件:

  • 该文件必须存在于 mcmd运行正在恢复的数据节点的每个主机上。

  • 如果文件路径是相对的,它是相对于上一个项目符号中提到 的mcmd代理的工作目录。