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-tables
restore 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 制作的备份到较旧版本。