10bet网址
MySQL 5.6参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 29.4 mb
PDF (A4)- 29.5 mb
手册页(TGZ)- 190.2 kb
手册页(Zip)- 305.0 kb
信息(Gzip)- 2.8 mb
信息(邮政编码)- 2.8 mb
本手册节选

18.5.22 ndb_restore—恢复NDB集群备份

NDB集群恢复程序是作为一个单独的命令行实用程序实现的ndb_restore,通常可以在MySQL . exe中找到箱子目录中。该程序读取作为备份结果创建的文件,并将存储的信息插入到数据库中。

请注意

从NDB 7.3.25和7.4.24开始,该程序不再打印NDBT_ProgramExit:…当它运行结束时。从早期版本升级时,依赖于此行为的应用程序应相应修改。

ndb_restore方法创建的每个备份文件必须执行一次开始备份命令用于创建备份(请参见18.6.8.2节“使用NDB集群管理客户端创建备份”).这等于创建备份时集群中的数据节点数量。

请注意

使用前ndb_restore,建议集群运行在单用户模式下,除非您正在并行恢复多个数据节点。看到章节18.6.6,“NDB集群单用户模式”,以获取更多资料。

可用于的选项ndb_restore如下表所示。其他描述见下表。

表18.31 ndb_restore程序使用的命令行选项

格式 描述 添加、弃用或删除

——附加

将数据追加到以制表符分隔的文件

(所有基于MySQL 5.6的NDB版本都支持)

——backup-path =路径

备份文件路径

(所有基于MySQL 5.6的NDB版本都支持)

——backupid = #

- b #

使用此ID从备份中恢复

(所有基于MySQL 5.6的NDB版本都支持)

——character-sets-dir =路径

包含字符集的目录

(所有基于MySQL 5.6的NDB版本都支持)

——连接= connection_string

- c connection_string

——connectstring的别名

(所有基于MySQL 5.6的NDB版本都支持)

——connect-retries = #

在放弃连接之前重试连接的次数

新增:NDB 7.4.9

——connect-retry-delay = #

尝试联系管理服务器之间等待的秒数

新增:NDB 7.4.9

——连接字符串= connection_string

- c connection_string

与——ndb-connectstring相同

(所有基于MySQL 5.6的NDB版本都支持)

——核心文件

写入内核文件错误;用于调试

(所有基于MySQL 5.6的NDB版本都支持)

——defaults-extra-file =路径

读取全局文件后读取给定文件

(所有基于MySQL 5.6的NDB版本都支持)

——defaults-file =路径

仅从给定文件读取默认选项

(所有基于MySQL 5.6的NDB版本都支持)

——defaults-group-suffix =字符串

也可以用concat读取组(group,后缀)

(所有基于MySQL 5.6的NDB版本都支持)

——disable-indexes

导致忽略备份中的索引;可能会减少恢复数据所需的时间

(所有基于MySQL 5.6的NDB版本都支持)

——dont-ignore-systab-0

- f

在恢复期间不要忽略系统表;实验;不用于生产

(所有基于MySQL 5.6的NDB版本都支持)

——exclude-databases =列表

要排除的一个或多个数据库的列表(包括未命名的数据库)

(所有基于MySQL 5.6的NDB版本都支持)

——exclude-intermediate-sql-tables(=真|假)

不要恢复复制ALTER TABLE操作后留下的任何中间表(名称前缀为'#sql-');指定FALSE来恢复这样的表

新增:NDB 7.3.6

——exclude-missing-columns

导致数据库中表的版本中缺少的表的备份版本中的列被忽略

(所有基于MySQL 5.6的NDB版本都支持)

——exclude-missing-tables

导致数据库中缺失的备份表被忽略

新增:NDB 7.3.7

——排除表=列表

要排除的一个或多个表的列表(包括同一数据库中未命名的表);每个表引用必须包含数据库名称

(所有基于MySQL 5.6的NDB版本都支持)

——fields-enclosed-by =字符

字段由这个字符括起来

(所有基于MySQL 5.6的NDB版本都支持)

——fields-optionally-enclosed-by

字段可选择由此字符括起来

(所有基于MySQL 5.6的NDB版本都支持)

——fields-terminated-by =字符

字段以此字符结束

(所有基于MySQL 5.6的NDB版本都支持)

——帮助

-?

显示帮助文本并退出

(所有基于MySQL 5.6的NDB版本都支持)

——十六进制

以十六进制格式打印二进制类型

(所有基于MySQL 5.6的NDB版本都支持)

——包括数据库=列表

要恢复的一个或多个数据库的列表(不包括未命名的数据库)

(所有基于MySQL 5.6的NDB版本都支持)

——包括表格=列表

要恢复的一个或多个表的列表(不包括同一数据库中未命名的表);每个表引用必须包含数据库名称

(所有基于MySQL 5.6的NDB版本都支持)

——lines-terminated-by =字符

行以此字符结束

(所有基于MySQL 5.6的NDB版本都支持)

——登录路径=路径

从登录文件读取给定路径

(所有基于MySQL 5.6的NDB版本都支持)

——lossy-conversions

- l

当从备份中恢复数据时,允许对列值进行有损转换(类型降级或符号更改)

(所有基于MySQL 5.6的NDB版本都支持)

——no-binlog

如果mysqld已连接并使用二进制日志记录,则不要记录恢复的数据

(所有基于MySQL 5.6的NDB版本都支持)

——已

不读取默认选项从任何选项文件除了登录文件

(所有基于MySQL 5.6的NDB版本都支持)

——no-restore-disk-objects

- d

不恢复与“磁盘数据”相关的对象

(所有基于MySQL 5.6的NDB版本都支持)

——没有

- u

不升级数组类型的变量大小属性还没有调整VAR数据,不改变列属性

(所有基于MySQL 5.6的NDB版本都支持)

——ndb-connectstring = connection_string

- c connection_string

设置连接ndb_mgmd的连接字符串。语法:“[nodeid = id;][主机=]主机名(港口):”。覆盖NDB_CONNECTSTRING和my.cnf中的条目

(所有基于MySQL 5.6的NDB版本都支持)

——ndb-mgmd-host = connection_string

- c connection_string

与——ndb-connectstring相同

(所有基于MySQL 5.6的NDB版本都支持)

——ndb-nodegroup-map =地图

- z

指定节点组映射;未使用的,不支持的

(所有基于MySQL 5.6的NDB版本都支持)

——ndb-nodeid = #

为该节点设置节点ID,覆盖由——ndb-connectstring设置的任何ID

(所有基于MySQL 5.6的NDB版本都支持)

——ndb-optimized-node-selection

为事务的节点选择启用优化。默认启用;使用——skip-ndb-optimized-node-selection禁用

(所有基于MySQL 5.6的NDB版本都支持)

——nodeid = #

- n #

执行备份的节点ID

(所有基于MySQL 5.6的NDB版本都支持)

——并行= #

- p #

恢复数据时使用的并行事务数

(所有基于MySQL 5.6的NDB版本都支持)

——preserve-trailing-spaces

- p

当将定宽字符串类型提升为变宽类型时,允许保留尾随空格(包括填充)

(所有基于MySQL 5.6的NDB版本都支持)

——打印

将元数据、数据和日志打印到标准输出(相当于——Print -meta——Print -data——Print -log)

(所有基于MySQL 5.6的NDB版本都支持)

——打印数据的

打印数据到标准输出

(所有基于MySQL 5.6的NDB版本都支持)

——print-defaults

打印程序参数列表并退出

(所有基于MySQL 5.6的NDB版本都支持)

——print-log

打印日志到标准输出

(所有基于MySQL 5.6的NDB版本都支持)

——print-meta

将元数据打印到标准输出

(所有基于MySQL 5.6的NDB版本都支持)

——progress-frequency = #

打印每个给定秒数的恢复状态

(所有基于MySQL 5.6的NDB版本都支持)

——promote-attributes

——一个

允许从备份中恢复数据时提升属性

(所有基于MySQL 5.6的NDB版本都支持)

——rebuild-indexes

导致在备份中发现的有序索引的多线程重建;使用的线程数通过设置BuildIndexThreads来确定

(所有基于MySQL 5.6的NDB版本都支持)

——恢复数据

- r

使用NDB API将表数据和日志恢复到NDB集群

(所有基于MySQL 5.6的NDB版本都支持)

——restore-epoch

- e

恢复纪元信息到状态表;在复制集群上用于启动复制;更新或插入mysql中的行。ID为0的ndb_apply_status

(所有基于MySQL 5.6的NDB版本都支持)

——restore-meta

- m

使用NDB API将元数据恢复到NDB集群

(所有基于MySQL 5.6的NDB版本都支持)

——restore-privilege-tables

恢复以前移动到NDB的MySQL特权表

(所有基于MySQL 5.6的NDB版本都支持)

——rewrite-database =字符串

恢复到不同名称的数据库;格式为olddb,newdb

(所有基于MySQL 5.6的NDB版本都支持)

——skip-broken-objects

忽略备份文件中缺失的blob表

(所有基于MySQL 5.6的NDB版本都支持)

——skip-table-check

- s

在恢复期间跳过表结构检查

(所有基于MySQL 5.6的NDB版本都支持)

——skip-unknown-objects

导致在将新版本的NDB备份恢复到旧版本时忽略ndb_restore无法识别的模式对象

(所有基于MySQL 5.6的NDB版本都支持)

——选项卡=路径

- t路径

在提供的路径中为每个表创建一个以制表符分隔的.txt文件

(所有基于MySQL 5.6的NDB版本都支持)

——使用

-?

显示帮助文本并退出;和——help一样

(所有基于MySQL 5.6的NDB版本都支持)

——verbose = #

输出的详细程度

(所有基于MySQL 5.6的NDB版本都支持)

——版本

- v

显示版本信息并退出

(所有基于MySQL 5.6的NDB版本都支持)


  • ——附加

    命令行格式 ——附加

    当与——选项卡而且——打印数据的选项,这将导致数据附加到具有相同名称的任何现有文件。

  • ——backup-pathdir_name

    命令行格式 ——backup-path =路径
    类型 目录名称
    默认值 ./

    备份目录的路径是必需的;这是提供给ndb_restore使用——backup-path选项,且必须包含待恢复备份的ID backup对应的子目录。例如,如果数据节点为DataDir/var/lib/mysql-cluster,则备份目录为/var/lib/mysql-cluster /备份, ID为3的备份文件在/var/lib/mysql-cluster /备份/ BACKUP-3.对象所在目录的绝对路径或相对路径ndb_restore可执行文件的位置,并可选地加上前缀backup-path =

    可以将备份恢复到与创建备份时配置不同的数据库。例如,假设备份具有备份ID12,在两个存储节点的集群中创建2而且3.,将恢复为四节点集群。然后ndb_restore必须运行两次—在进行备份的集群中的每个存储节点上运行一次。然而,ndb_restore不能总是将运行一个MySQL版本的集群中的备份恢复到运行不同MySQL版本的集群中。看到18.3.7节“NDB集群升级降级”,以获取更多资料。

    重要的

    的旧版本,无法恢复从较新版本的NDB集群生成的备份ndb_restore.您可以将新版本的MySQL备份恢复到旧集群,但必须使用的副本ndb_restore从更新的NDB集群版本执行此操作。

    例如,要将运行NDB集群7.4.35的集群备份恢复到运行NDB集群7.3.34的集群,必须使用ndb_restore这是NDB集群7.4.35发行版附带的。

    为了更快速的恢复,可以并行地恢复数据,前提是有足够数量的可用集群连接。也就是说,当并行地恢复到多个节点时,必须使用(api)(mysqld)集群中的部分。config.ini文件可用于每个并发ndb_restore的过程。但是,必须始终在日志之前应用数据文件。

  • ——backupid- b

    命令行格式 ——backupid = #
    类型 数字
    默认值 没有一个

    该选项用于指定备份的ID或序列号,与管理客户端中显示的数字相同备份backup_id完成备份完成时显示的信息。(见18.6.8.2节“使用NDB集群管理客户端创建备份”.)

    重要的

    恢复集群备份时,必须确保从具有相同备份ID的备份中恢复所有数据节点。使用来自不同备份的文件最多只能将集群恢复到不一致的状态,并且可能会完全失败。

  • ——character-sets-dir

    命令行格式 ——character-sets-dir =路径

    包含字符集的目录。

  • ——连接- c

    命令行格式 ——连接= connection_string
    类型 字符串
    默认值 localhost: 1186

    别名——ndb-connectstring

  • ——connect-retries

    命令行格式 ——connect-retries = #
    介绍了 5.6.28-ndb-7.4.9
    类型 整数
    默认值 12
    最小值 0
    最大值 12

    在放弃连接之前重试连接的次数。

  • ——connect-retry-delay

    命令行格式 ——connect-retry-delay = #
    介绍了 5.6.28-ndb-7.4.9
    类型 整数
    默认值 5
    最小值 0
    最大值 5

    尝试联系管理服务器之间等待的秒数。

  • ——连接字符串

    命令行格式 ——连接字符串= connection_string
    类型 字符串
    默认值 (没有)

    一样——ndb-connectstring

  • ——核心文件

    命令行格式 ——核心文件

    写入内核文件错误;用于调试。

  • ——defaults-extra-file

    命令行格式 ——defaults-extra-file =路径
    类型 字符串
    默认值 (没有)

    读取全局文件后读取给定文件。

  • ——defaults-file

    命令行格式 ——defaults-file =路径
    类型 字符串
    默认值 (没有)

    仅从给定文件读取默认选项。

  • ——defaults-group-suffix

    命令行格式 ——defaults-group-suffix =字符串
    类型 字符串
    默认值 (没有)

    也可以用concat(group,后缀)读取组。

  • ——disable-indexes

    命令行格式 ——disable-indexes

    在从本机恢复数据时禁用索引恢复NDB备份。然后,您可以通过使用多线程构建索引,一次性恢复所有表的索引——rebuild-indexes,这应该比为非常大的表并发地重建索引要快。

    在NDB 7.4.34及以后版本中,这个选项也会删除备份中指定的任何外键。

  • ——dont-ignore-systab-0- f

    命令行格式 ——dont-ignore-systab-0

    通常,在恢复表数据和元数据时,ndb_restore的副本NDB备份中存在的系统表。——dont-ignore-systab-0恢复系统表。此选项仅供实验和开发使用,不建议在生产环境中使用

  • ——exclude-databasesdb-list

    命令行格式 ——exclude-databases =列表
    类型 字符串
    默认值

    一个或多个不应恢复的数据库的逗号分隔列表。

    此选项通常与——排除表;有关更多信息和示例,请参阅该选项的描述。

  • ——exclude-intermediate-sql-tables [真|假)

    命令行格式 ——exclude-intermediate-sql-tables(=真|假)
    介绍了 5.6.17-ndb-7.3.6
    类型 布尔
    默认值 真正的

    执行复制时ALTER TABLE操作,mysqld创建中间表(其名称前缀为# sql -).当真正的,——exclude-intermediate-sql-tables选择使ndb_restore从恢复这些操作遗留下来的这些表。这个选项是真正的默认情况下。

    此选项在NDB 7.3.6中引入。(错误# 17882305)

  • ——exclude-missing-columns

    命令行格式 ——exclude-missing-columns

    可以使用此选项仅恢复选定的表列,这将导致ndb_restore与备份中找到的表的版本相比,忽略正在恢复的表中缺少的任何列。此选项适用于正在恢复的所有表。如果希望仅将此选项应用于选定的表或数据库,则可以将其与一个或多个属性组合使用——包括:- *——排除- *本节其他地方描述的选项,然后使用这些选项的补充集将数据恢复到其余表。

  • ——exclude-missing-tables

    命令行格式 ——exclude-missing-tables
    介绍了 5.6.21-ndb-7.3.7

    可以使用此选项仅恢复选定的表,这将导致ndb_restore忽略备份中没有在目标数据库中找到的任何表。

    该选项在NDB 7.3.7中引入。

  • ——排除表

    命令行格式 ——排除表=列表
    类型 字符串
    默认值

    要排除的一个或多个表的列表;每个表引用必须包含数据库名称。常与——exclude-databases

    ——exclude-databases——排除表时,仅排除由该选项命名的数据库或表;恢复所有其他数据库和表ndb_restore

    的几个调用ndb_restoreusng——排除- *选项(为了清晰起见,省略了其他可能需要的选项),以及这些选项对从NDB集群备份恢复的影响:

    表18.32使用——exclude-*选项调用ndb_restore的几种方法,以及这些选项对从NDB集群备份恢复的影响。

    选项 结果
    ——exclude-databases = db1 所有数据库中的所有表db1恢复;没有表格db1恢复
    ——exclude-databases = db1、db2(或——exclude-databases = db1——exclude-databases = db2 所有数据库中的所有表db1而且db2恢复;没有表格db1db2恢复
    ——排除表= db1.t1 除了所有的桌子t1在数据库db1恢复;中所有其他表db1恢复;恢复所有其他数据库中的所有表
    ——排除表= db1.t2 db2.t1(或——排除表= db1.t2——排除表= db2.t1) 数据库中的所有表db1除了t2和数据库中的所有表db2除了桌子t1恢复;没有其他表格db1db2恢复;恢复所有其他数据库中的所有表

    您可以同时使用这两个选项。例如,下面的命令会导致所有数据库中的所有表除了数据库db1而且db2,和表格t1而且t2在数据库db4,进行修复:

    $> ndb_restore[…]——exclude-databases=db1,db2——exclude-tables=db3.t1,db3.t2

    (同样,为了清晰扼要,我们省略了刚才示例中其他可能必要的选项。)

    你可以使用——包括:- *而且——排除- *选项一起,但须遵守以下规则:

    • 所有人的行动——包括:- *而且——排除- *选项是累积的。

    • 所有——包括:- *而且——排除- *选项按照传递给ndb_restore的顺序计算,从右到左。

    • 在选项冲突的情况下,第一个(最右边)选项优先。换句话说,与给定数据库或表匹配的第一个选项(从右到左)赢了

    例如,下面一组选项的原因ndb_restore从数据库中恢复所有表db1除了db1.t1,同时不从任何其他数据库恢复其他表:

    ——包括数据库= db1排除表= db1.t1

    然而,颠倒刚刚给出的选项的顺序只会导致所有表从数据库db1恢复(包括。db1.t1,但没有来自任何其他数据库的表),因为——包括数据库最右边的选项是与数据库的第一个匹配db1因此优先于任何其他匹配的选项db1或任何表格db1

    ——排除表= db1.t1——包括数据库= db1
  • ——fields-enclosed-by字符

    命令行格式 ——fields-enclosed-by =字符
    类型 字符串
    默认值

    每个列值都包含在传递给该选项的字符串中(无论数据类型如何;参见——fields-optionally-enclosed-by).

  • ——fields-optionally-enclosed-by

    命令行格式 ——fields-optionally-enclosed-by
    类型 字符串
    默认值

    传递给此选项的字符串用于包含包含字符数据的列值(例如字符VARCHAR二进制文本,或枚举).

  • ——fields-terminated-by字符

    命令行格式 ——fields-terminated-by =字符
    类型 字符串
    默认值 \ t(选项卡)

    传递给此选项的字符串用于分隔列值。默认值为制表符(\ t).

  • ——帮助

    命令行格式 ——帮助

    显示帮助文本并退出。

  • ——十六进制

    命令行格式 ——十六进制

    如果使用此选项,所有二进制值将以十六进制格式输出。

  • ——包括数据库db-list

    命令行格式 ——包括数据库=列表
    类型 字符串
    默认值

    要还原的一个或多个数据库的逗号分隔列表。常与——包括表格;有关进一步信息和示例,请参阅该选项的描述。

  • ——包括表格

    命令行格式 ——包括表格=列表
    类型 字符串
    默认值

    要恢复的以逗号分隔的表列表;每个表引用必须包含数据库名称。

    ——包括数据库——包括表格时,仅恢复由该选项命名的数据库或表;排除所有其他数据库和表ndb_restore,并且不会恢复。

    下表显示了对ndb_restore使用——包括:- *选项(为了清晰起见,省略了其他可能需要的选项),以及这些选项对从NDB集群备份恢复的影响:

    表18.33使用——include-*选项调用ndb_restore的几种方法,以及它们对从NDB集群备份恢复的影响。

    选项 结果
    ——包括数据库= db1 只有数据库中的表db1恢复;忽略所有其他数据库中的所有表
    ——包括数据库= db1、db2(或——包括数据库= db1——包括数据库= db2 只有数据库中的表db1而且db2恢复;忽略所有其他数据库中的所有表
    ——包括表格= db1.t1 只有表t1在数据库db1恢复;没有其他表格db1或在任何其他数据库中进行恢复
    ——包括表格= db1.t2 db2.t1(或——包括表格= db1.t2——包括表格= db2.t1 只有桌子t2在数据库db1还有桌子t1在数据库db2恢复;没有其他表格db1db2,或恢复任何其他数据库

    您也可以同时使用这两个选项。例如,下面将导致数据库中的所有表db1而且db2,连同桌子t1而且t2在数据库db4,进行恢复(没有其他数据库或表):

    $> ndb_restore[…]——include-databases=db1,db2——include-tables=db3.t1,db3.t2

    (在刚才的例子中,我们再次省略了其他可能是必需的选项。)

    也可以只恢复选定的数据库,或从单个数据库中恢复选定的表——包括:- *(或——排除- *)选项,使用如下所示的语法:

    ndb_restoreother_optionsdb_name, (db_name[,……) |tbl_name(,tbl_name][…]]

    换句话说,您可以指定以下任何一个要恢复:

    • 来自一个或多个数据库的所有表

    • 一个数据库中的一个或多个表

  • ——lines-terminated-by字符

    命令行格式 ——lines-terminated-by =字符
    类型 字符串
    默认值 \ n (linebreak)

    指定用于结束每一行输出的字符串。默认为换行字符(\ n).

  • ——登录路径

    命令行格式 ——登录路径=路径
    类型 字符串
    默认值 (没有)

    从登录文件读取给定路径。

  • ——lossy-conversions- l

    命令行格式 ——lossy-conversions

    此选项旨在补充——promote-attributes选择。使用——lossy-conversions当从备份恢复数据时,允许对列值进行有损转换(类型降级或符号更改)。除了一些例外,管理降级的规则与MySQL复制相同;看到17.4.1.9.2节“具有不同数据类型的列的复制”,以获取有关属性降级当前支持的特定类型转换的信息。

    ndb_restore对每个属性和列报告在有损转换期间执行的任何数据截断。

  • ——no-binlog

    命令行格式 ——no-binlog

    此选项可阻止任何已连接的SQL节点写入由ndb_restore到二进制对数上。

  • ——已

    命令行格式 ——已

    不要从除登录文件外的任何选项文件中读取默认选项。

  • ——no-restore-disk-objects- d

    命令行格式 ——no-restore-disk-objects

    此选项停止ndb_restore从恢复任何NDB集群磁盘数据对象,如表空间和日志文件组;看到18.6.10节“NDB集群磁盘数据表”,以了解更多有关这些项目的资料。

  • ——没有- u

    命令行格式 ——没有

    当使用ndb_restore要恢复备份,请VARCHAR使用旧的固定格式创建的列可以调整大小,并使用现在使用的可变宽度格式重新创建。可以通过指定重写此行为——没有

  • ——ndb-connectstring

    命令行格式 ——ndb-connectstring = connection_string
    类型 字符串
    默认值 (没有)

    设置连接ndb_mgmd的连接字符串。语法:“[nodeid = id;][主机=]主机名(港口):”。覆盖NDB_CONNECTSTRING和my.cnf中的条目。

  • ——ndb-mgmd-host

    命令行格式 ——ndb-mgmd-host = connection_string
    类型 字符串
    默认值 (没有)

    一样——ndb-connectstring

  • ——ndb-nodegroup-map地图- z

    命令行格式 ——ndb-nodegroup-map =地图

    用于将备份从一个节点组恢复到另一个节点组,但从未完全实现;不受支持的。

  • ——ndb-nodeid

    命令行格式 ——ndb-nodeid = #
    类型 整数
    默认值 (没有)

    为该节点设置节点ID,覆盖由设置的任何ID——ndb-connectstring

  • ——ndb-optimized-node-selection

    命令行格式 ——ndb-optimized-node-selection

    为事务的节点选择启用优化。默认启用;使用——skip-ndb-optimized-node-selection禁用。

  • ——nodeid- n

    命令行格式 ——nodeid = #
    类型 数字
    默认值 没有一个

    指定执行备份的数据节点的节点ID。

    当恢复到数据节点数量与备份位置不同的集群时,此信息有助于识别要恢复到给定节点的正确文件集或文件集。(在这种情况下,通常需要将多个文件恢复到单个数据节点。)看到第18.5.22.2节,“恢复到不同数量的数据节点”,以了解更多资料及例子。

  • ——并行性- p

    命令行格式 ——并行= #
    类型 数字
    默认值 128
    最小值 1
    最大值 1024

    ndb_restore使用单行事务并发应用多行。此参数确定实例的并行事务(并发行)的数量ndb_restore尝试使用。默认情况下,这是128;最小值为1,最大值为1024。

    执行插入的工作在相关数据节点中的线程之间并行化。此机制用于从. data文件——即数据的模糊快照;它不用于构建或重建索引。更改日志是连续应用的;索引删除和构建是DDL操作,分别处理。在恢复的客户端上没有线程级并行。

  • ——preserve-trailing-spaces- p

    命令行格式 ——preserve-trailing-spaces

    将固定宽度的字符数据类型提升为其可变宽度的等价物时,导致保留尾随空格字符列值为VARCHAR,或二进制列值为VARBINARY.否则,在将这些列值插入到新列中时,将从这些列值中删除任何尾随空格。

    请注意

    尽管你可以推广字符VARCHAR而且二进制VARBINARY,你不能提升VARCHAR字符VARBINARY二进制

  • ——打印

    命令行格式 ——打印

    原因ndb_restore将所有数据、元数据和日志打印到stdout.相当于使用——打印数据的——print-meta,——print-log选择在一起。

    请注意

    使用——打印或者任何——print_ *Options实际上是在进行预演。包括其中一个或多个选项将导致将任何输出重定向到stdout;在这种情况下,ndb_restore不尝试将数据或元数据恢复到NDB集群。

  • ——打印数据的

    命令行格式 ——打印数据的

    导致ndb_restore将其输出导向stdout.常与一个或多个的连用——选项卡——fields-enclosed-by——fields-optionally-enclosed-by——fields-terminated-by——十六进制,——附加

    文本而且列值总是被截断。在NDB 7.3.7和更早的版本中,这些值被截断到输出中的前240字节;在NDB 7.3.8及以后版本中,它们被截断为256字节。(Bug #14571512, Bug #65467)当使用——打印数据的

  • ——print-defaults

    命令行格式 ——print-defaults

    打印程序参数列表并退出。

  • ——print-log

    命令行格式 ——print-log

    导致ndb_restore将其日志输出到stdout

  • ——print-meta

    命令行格式 ——print-meta

    将所有元数据打印到stdout

  • ——progress-frequencyN

    命令行格式 ——progress-frequency = #
    类型 数字
    默认值 0
    最小值 0
    最大值 65535

    每人打印一份状态报告N恢复正在进行。0(默认值)导致不打印状态报告。最大值为65535。

  • ——promote-attributes——一个

    命令行格式 ——promote-attributes

    ndb_restore支持有限属性提升与MySQL复制的支持方式大致相同;也就是说,从给定类型的列备份的数据通常可以使用大,类似类型。例如,来自a的数据CHAR (20)列可以恢复为声明为的列VARCHAR (20)VARCHAR (30),或CHAR (30);数据来自MEDIUMINT列可以恢复为类型的列INT长整型数字.看到17.4.1.9.2节“具有不同数据类型的列的复制”,用于当前属性提升支持的类型转换表。

    属性提升ndb_restore必须显式启用,如下所示:

    1. 准备备份要恢复到的表。ndb_restore不能用于重新创建与原始定义不同的表;这意味着您必须手动创建表,或者更改希望使用的列ALTER TABLE在恢复表元数据之后,在恢复数据之前。

    2. 调用ndb_restore——promote-attributes期权(简写形式)——一个)时恢复表数据。如果不使用此选项,则不会发生属性提升;相反,恢复操作失败并报错。

    在NDB 7.3.3之前,字符数据类型和文本没有正确处理(Bug #17325051)。

    在NDB 7.3.7之前,降级为文本非常小的文本串没有正确处理(Bug #18875137)。

    在字符数据类型和之间转换时文本,只在字符类型之间转换(字符而且VARCHAR)和二进制类型(二进制而且VARBINARY)可同时进行。例如,您不能提升INT长整型数字在推广VARCHAR文本在同样的祈求中ndb_restore

    之间的转换文本不支持使用不同字符集的列。从NDB 7.3.7开始,它被明确禁止(Bug #18875137)。

    当将字符或二进制类型转换为文本ndb_restore,您可能会注意到它创建并使用一个或多个名为table_name圣元node_id.这些表之后就不需要了,通常由ndb_restore在成功恢复之后。

  • ——rebuild-indexes

    命令行格式 ——rebuild-indexes

    在恢复本机数据时,启用多线程重建有序索引NDB备份。用于构建有序索引的线程数ndb_restore控件控制此选项BuildIndexThreads数据节点配置参数和ldm个数。

    的第一次运行时必须使用此选项ndb_restore;这将导致在不使用索引的情况下重新构建所有有序索引——rebuild-indexes在恢复后续节点时再次执行。您应该在将新行插入数据库之前使用此选项;否则,有可能插入的一行后来在尝试重新构建索引时违反了唯一的约束。

    默认情况下,有序索引的构建与ldm的数量并行。在节点和系统重新启动期间执行的脱机索引构建可以使用BuildIndexThreads数据节点配置参数;此参数对索引的删除和重建没有影响ndb_restore,在线执行。

    重建唯一索引使用磁盘写带宽进行重做日志和本地检查点。带宽不足会导致重做缓冲区过载或日志过载错误。在这种情况下,你可以逃跑ndb_restore——rebuild-indexes再一次;流程将在发生错误的地方恢复。当遇到临时错误时,也可以这样做。你可以重复执行ndb_restore——rebuild-indexes无限期的;的值可以阻止此类错误——并行性.如果问题是空间不足,您可以增加重做日志的大小(FragmentLogFileSize节点配置参数),或者您可以提高lcp执行的速度(MaxDiskWriteSpeed以及相关参数),以便更快地释放空间。

  • ——恢复数据- r

    命令行格式 ——恢复数据

    输出NDB表数据和日志。

  • ——restore-epoch- e

    命令行格式 ——restore-epoch

    向集群复制状态表添加(或恢复)纪元信息。这对于在NDB集群副本上启动复制非常有用。属性中的行mysql.ndb_apply_status0id如果列已经存在,则更新它;如果该行不存在,则插入该行。(见18.7.9节,“使用NDB集群复制进行NDB集群备份”.)

  • ——restore-meta- m

    命令行格式 ——restore-meta

    此选项导致ndb_restore打印NDB表的元数据。

    第一次运行ndb_restore恢复程序中,还需要恢复元数据。换句话说,您必须重新创建数据库表—这可以通过使用——restore-meta- m)选项。恢复元数据只需要在单个数据节点上完成;这足以将其恢复到整个集群。

    请注意

    在开始恢复备份时,集群应该有一个空数据库。(换句话说,您应该从——初始在执行恢复之前。)

  • ——restore-privilege-tables

    命令行格式 ——restore-privilege-tables

    ndb_restore默认情况下不恢复分布式MySQL特权表。此选项导致ndb_restore恢复特权表。

    只有当特权表被转换为时,这才有效NDB在备份之前。有关更多信息,请参见第18.6.12节,“使用共享授权表的分布式权限”

  • ——rewrite-databaseolddb, newdb

    命令行格式 ——rewrite-database =字符串
    类型 字符串
    默认值 没有一个

    此选项使恢复到具有与备份中使用的名称不同的数据库成为可能。例如,如果备份的数据库名为产品,可以将其中包含的数据恢复到名为库存,使用如下所示的选项(省略任何其他可能需要的选项):

    $> ndb_restore—重写数据库=产品,库存

    的一次调用中可以多次使用该选项ndb_restore.因此,可以同时从一个名为db1到一个名为db2并从一个名为db4给一个叫db4使用——db2 rewrite-database = db1——rewrite-database = db4 db4.其他ndb_restore选项可以在多个事件之间使用——rewrite-database

    在多重冲突的情况下——rewrite-database选项,最后一个——rewrite-database所使用的选项,从左到右读取,是生效的选项。例如,如果——db2 rewrite-database = db1——rewrite-database = db1 db4仅使用——rewrite-database = db1 db4很荣幸,而且——rewrite-database = db1、db2将被忽略。也可以从多个数据库恢复到单个数据库,这样——db4 rewrite-database = db1——rewrite-database = db2 db4从数据库中恢复所有表和数据db1而且db2到数据库db4

    重要的

    从多个备份数据库恢复到单个目标数据库时使用——rewrite-database,不检查表名或其他对象名之间的冲突,也不保证行恢复的顺序。这意味着在这种情况下,行可能被覆盖,更新可能丢失。

  • ——skip-broken-objects

    命令行格式 ——skip-broken-objects

    此选项导致ndb_restore在读取本机文件时忽略损坏的表NDB备份,并继续恢复任何剩余的表(没有损坏的表)。目前,——skip-broken-objects选项仅在缺少blob部件表的情况下有效。

  • ——skip-table-check- s

    命令行格式 ——skip-table-check

    可以在不恢复表元数据的情况下恢复数据。默认情况下,ndb_restore如果在表数据和表模式之间发现不匹配,则失败并报错;该选项将覆盖该行为。

    恢复数据时使用列定义中不匹配的一些限制ndb_restore放松;当遇到其中一种不匹配时,ndb_restore不像以前那样因出现错误而停止,而是接受数据并将其插入到目标表中,同时向用户发出正在执行此操作的警告。无论是否使用这两个选项,都会发生此行为——skip-table-check——promote-attributes正在使用。列定义中的这些差异属于以下类型:

    • 不同的COLUMN_FORMAT设置(固定动态默认的

    • 不同的存储设置(内存磁盘

    • 不同的默认值

    • 不同的分布键设置

  • ——skip-unknown-objects

    命令行格式 ——skip-unknown-objects

    此选项导致ndb_restore在读取本机时忽略它不识别的任何模式对象NDB备份。这可以用于将运行NDB 7.4的集群的备份恢复到运行NDB 7.3的集群。

  • ——选项卡dir_name- tdir_name

    命令行格式 ——选项卡=路径
    类型 目录名称

    原因——打印数据的要创建转储文件,每个表一个,每个都有名称tbl_name. txt.它需要文件保存的目录路径作为参数;使用用于当前目录。

  • ——使用

    命令行格式 ——使用

    显示帮助文本并退出;一样——帮助

  • ——详细

    命令行格式 ——verbose = #
    类型 数字
    默认值 1
    最小值 0
    最大值 255

    设置输出的详细程度。最小值为0;最大长度为255。缺省值为1。

  • ——版本

    命令行格式 ——版本

    显示版本信息并退出。

此实用程序的典型选项如下所示:

ndb_restore [- cconnection_string) - nnode_id- bbackup_id\ [-m] -r——backup-path=/ /备份/文件/路径

通常,从NDB集群备份恢复时,ndb_restore至少需要——nodeid(简式:- n),——backupid(简式:- b),——backup-path选项。此外,当ndb_restore用于恢复任何包含唯一索引的表,必须包含——disable-indexes——rebuild-indexes.(Bug #57782, Bug #11764893)

- c选项用于指定一个连接字符串ndb_restore在哪里定位集群管理服务器(请参见章节18.4.3.3,“NDB集群连接字符串”).如果不使用此选项,则ndb_restore上试图连接到管理服务器localhost: 1186.这个实用程序充当集群API节点,因此需要一个空闲连接连接集群管理服务器。这意味着至少有一个(api)(mysqld)可以在集群中由它使用的部分config.ini文件。最好至少留一个空的(api)(mysqld)部分config.ini没有被用于MySQL服务器或其他应用程序的原因(见18.4.3.7节“在NDB集群中定义SQL和其他API节点”).

你可以验证一下ndb_restore已通过显示命令ndb_mgm管理客户端。你也可以通过一个系统shell来完成,如下所示:

$> ndb_mgm -e "SHOW"
请注意

在NDB 7.3.11和7.4.8中只有,当ndb_restore用于恢复任何包含唯一索引的表,必须包含——disable-indexes——rebuild-indexes.(Bug #57782, Bug #11764893)这不是后续版本的要求。(错误# 22345748)

错误报告。ndb_restore报告临时错误和永久错误。在临时错误的情况下,它可能能够从中恢复,并报告恢复成功,但遇到临时错误,请查看配置在这种情况下。

重要的

在使用ndb_restore初始化NDB集群用于循环复制时,作为副本的SQL节点上的二进制日志不会自动创建,必须手动创建。要创建二进制日志,请执行命令a显示表语句在SQL节点上运行开始的奴隶.这是NDB集群中的一个已知问题。