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-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]
[--rewrite-database]
[--skip-broken-objects]
[{--skip-nodeid=|-s }id_list]
[--skip-table-check]
[--skip-unknown-objects]
cluster_name
此命令将集群从具有指定备份 ID(--backupid选项;缩写:)的备份还原-I到名为 的 MySQL 集群
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这会导致数据节点文件系统被清除。(请注意,必须手动删除磁盘数据文件。)在此之后,您可以使用所需的备份恢复集群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选项(缩写形式:)
-x。这样做可以减少恢复大型数据集所需的时间,尤其是在使用许多索引的情况下。--disable-metadata同样,您可以使用选项(简称
:)在恢复过程中忽略元数据
-M。
--epoch.
当使用--epoch选项(缩写形式
-e:)时,纪元信息将恢复到 cluster 复制状态表(mysql.ndb_apply_status),这对于 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
--lossy-conversions.
使用--lossy-conversions允许在从备份恢复数据时对列值进行有损转换(类型降级或符号更改)。除了一些例外,管理降级的规则与 MySQL 复制相同;有关属性降级当前支持的特定类型转换的信息,
请参阅
具有不同数据类型的列的复制。restore cluster报告它在每个属性和列的有损转换期间执行的任何数据截断。
--no-binlog.
该--no-binlog选项(缩写形式
:)-l阻止集群中的任何 SQL 节点(mysqld进程)将恢复的数据写入其二进制日志。
--no-restore-disk-objects.
该选项停止restore
cluster恢复任何 MySQL 集群磁盘数据对象,例如表空间和日志文件组;有关这些对象的更多信息,
请参阅
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
--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 Cluster 制作的备份到较旧版本。