nzreplbackup 命令
语法
nzreplbackup -simulate [ -verbose ] -recoveryfile <fileName>
{ -rqm | -dir <dirList> | -dirfile <fileName> | -connector <connName>
[ -connectorArgs <list> ] }nzreplbackup -recoveryfile <fileName> { -rqm | -dir <dirList> |
-dirfile <fileName> | -connector <connName>
[ -connectorArgs <list> ] } [ -u <userName> ] [ -pw <password> ]
[ -orderFile <filename> ] [ -parallelism <max_number_dbs> ][ -streams <number> ]
[ -secret <secret> ] [ -verbose ]选项
- -recoveryfile <fileName>
- 指定 nzreplanalyze 命令创建的恢复文件的名称和位置。
- -rqm
- 使用 RQM(复制队列管理器)软件传输命名的恢复文件以及在 /var/nzrepl/nzreplbackup 目录子文件夹中找到的所有已识别的全局和数据库备份文件。 子文件夹根据源节点 ID 和时间命名。 选择此选项前,请确认主日志服务器和副本日志服务器上都有足够的空间。
- -dir <dirList>
- 指定存储数据的备份目标目录。 以空格分隔的列表形式输入完整的目录路径名。 使用该选项需要手动将文件传输到复制队列管理器。
- -dirfile <dirFile>
- 指定一个包含备份目标目录列表的文件,每行一个。 使用此选项需要手动将文件传输到复制复制日志服务器。
- -连接器 <connName>
- 命名要发送备份的连接器。 (对于文件系统备份,请使用 -dir 或 -dirfile 选项) 连接器选项与 nzbackup 命令的选项相同。 使用该选项需要手动将文件传输到复制队列管理器。
- -connectorArgs <argList>
- 为连接器指定以冒号分隔的直通参数列表。 参数字符串必须用双引号括起来。
- -模拟
- 返回运行不带 -simulate 选项的 nzreplbackup 命令所执行操作的高级视图。 例如,使用该选项可列出要备份的数据库名称。 要显示手动备份数据库所需的详细信息,请使用 -simulate 选项和 -verbose 选项。
该命令将测试目的地的传输方法是否正确,以便使用正确的参数产生正确的结果。 例如,如果备份介质是磁带,使用 -rqm 选项而不是正确的 -connector 选项会导致错误。
- - -v [erbose]
- 在执行备份时报告详细信息。 使用该选项作为 -simulate 选项的扩展,可返回 nzbackup 命令的命令调用列表,语法包括已备份的复制对象。
您可以使用 -simulate 和 -verbose 选项产生的显示结果,在脚本文件中手动执行 nzbackup 或 nzreplbackup 命令。 例如,在 NPS® 7.2 或更早版本中,如果要备份的数据库数量会对主机系统造成过大压力,则可能需要这样做。 (在 NPS 7.2 或更高版本中,虽然手动方法仍然有效,但您可以使用改进的恢复功能来备份数据库子集,从而最大限度地减少并行备份操作,并减轻对脚本的需求) 如果使用脚本文件,则必须在每次备份执行到必要点时手动激活主备份。
- - -u <用户名
- 指定连接到数据库的 Netezza® 用户名。 如果未指定 -u 选项,则使用 NZ_ USER 环境变量(如果已设置)的值。 如果未指定 -u 选项,且未设置 NZ_USER 变量,系统将报错。
- -pw <密码
- 指定数据库的用户密码。 如果不指定 -pw 选项,则使用 NZ_PASSWORD 环境变量的值。 如果没有有效的密码,系统就会出错。
- - -orderFile <文件名
- 指定一个顺序文件,其中包含根据 -parallelism 选项的值并行备份的数据库名称。 文件中数据库名称的顺序决定并行备份时数据库的分组。 您可能想根据哪些数据库当前有活动会话来排列数据库,或根据数据库大小来排列数据库。 不要在文件中包含 globals 数据库:该数据库总是首先单独备份。如果用户数据库在 nzreplanalyze 命令生成的恢复文件中被标记为需要备份,则必须将该数据库包含在订单文件中。 每行指定一个数据库。 文件中的名称区分大小写。
-orderFile 选项是可选的,但如果指定该选项,则必须同时指定 -parallelism 选项。
- -并行性 <max_number_dbs>
- 指定一个整数值,表示要并行备份的数据库的最大数量。 指定该选项有助于避免过度使用 Netezza 系统资源。 您为 -orderFile 选项指定的数据库名称及其在顺序文件中的顺序决定了并行备份哪些数据库。
例如,假设在订单文件中为 -orderFile 选项指定了 8 个数据库名称,为 -parallelism 选项指定了 3 个。 不包含在订单文件中的 globals 数据库将首先单独备份。 然后并行备份顺序文件中的前三个数据库,接着备份文件中的后三个数据库,然后备份文件中的最后两个数据库。
-parallelism 选项是可选的,但如果指定该选项,则必须同时指定 -orderFile 选项。
- -流 <编号
- 使用指定数量的数据流备份数据。 数据流的最大数量为 16 个。 默认情况下,系统会使用与备份相同数量的数据流进行还原。
- -秘密 <secret
- 指定生成 256 位对称密钥所需的字符串值,该密钥用于加密备份数据中的主机密钥。 访问备份数据时,必须使用与 nzreplrestore 命令相同的密文。 如果不使用密钥加密主机密钥,数据将使用静态密钥加密。
用途
备份过程会备份 nzreplanalyze 命令标记的每个数据库。 除非使用 -parallelism 选项指定并行备份的数据库数量,否则进程会并行备份所有数据库。 执行 nzreplbackup 命令时,该命令会将主控程序置于暂停状态(暂停的主控程序不接受复制的写事务)。 在每个备份执行到必要的阶段之前,主系统一直处于暂停状态。 此时,命令输出中会出现一条信息,说明数据库符合节点激活要求。 当所有数据库都满足激活要求时,命令会自动将主数据库恢复到活动复制状态,并在输出中报告状态变化。 然后,命令输出会包含使用 nzreplrestore 命令在副本上恢复数据的语法。
nzreplbackup 命令调用标准 nzbackup 命令,使用生成的恢复文件执行。 如果运行的版本早于 7.2 版,可以使用 -simulate verbose 选项显示调用 nzbackup 命令的步骤。 如果复制集包含的数据库数量超过了系统的处理能力,而又不会造成不可接受的损失,可使用 -simulate verbose 选项的输出为备份创建脚本文件。
执行命令时,您需要指定备份文件的位置,这就决定了传输方式。 例如, -rqm 选项指定复制队列管理器上的复制目录( /var/nzrepl/nzreplbackup 目录的子文件夹)作为备份使用的文件夹结构。 然后,RQM 软件会将在该目录中找到的恢复文件和备份文件传输到每个复制队列管理器,即使您指定了 -sub 选项。 如果文件集中的所有节点都需要文件, -rqm 选项可在带宽、CPU 和数据库空间方面提供最佳传输性能。 使用 -dir 或 -dirfile 选项时,你可以(在命令行或文件中)为备份文件指定一个或多个本地位置。 然后,您必须手动将文件从主文件传输到副本。 例如,如果备份太大,无法存储在日志服务器上,或者没有足够的带宽进行传输,请使用手动传输选项。 或者,您也可以指定要将备份发送到一个已命名的连接器。 默认情况下,连接器是文件系统。
除了复制日志文件(事务重放文件)外,还会复制备份文件( nzbackup 或 nzreplbackup 命令生成的文件)。 与日志文件一样,备份文件的处理顺序也是由一种考虑了文件大小和修改时间的算法决定的。 软件采用 "小额和大额 "转账规则。 首先,它会复制所有小于 48 KB 的文件(备份文件和日志文件一起)。 然后,它会按照修改时间戳的优先顺序,将复制的较大负载文件和较大备份文件复制到副本中,最旧的先复制。 这种方法使用网络资源,会增加复制延迟。
使用 nzreplbackup 命令备份数据库时,除复制集中的数据库外,还需要有备份全局数据的权限。 默认情况下,只有管理员用户拥有这些权限。 作为管理员用户,您可以通过 GRANT BACKUP IN ALL.ALL 命令授予其他用户必要的权限,允许他运行 nzreplbackup 命令。 该命令允许访问所有数据库。 如果用户不应拥有如此广泛的访问权限,则应删除("取消授予")应阻止用户访问的每个特定非复制数据库的权限。
示例
有关复制备份和恢复的完整示例,请参阅 nzreplanalyze 命令主题中的示例。
[nz@PTS100]$ nzreplbackup -recoveryfile /tmp/my_recoveryfile.xml -rqm
Starting backup: -globals
Starting backup: -db replset
Starting backup: -db cust_data
This database now meets replication node activation requirements.
This database now meets replication node activation requirements.
This database now meets replication node activation requirements.
Backup of global objects completed successfully.
Backup of global objects was moved to /var/nzrepl/nzreplbackup/6988/
1398097573/0.
database global objects now meets replication node activation
requirements.
Backup of database replset to backupset 20140421162614 completed
successfully.
Backup of database replset was moved to /var/nzrepl/nzreplbackup/
6988/1398097573/457965569.
database replset now meets replication node activation requirements.
Backup of database cust_data to backupset 20140421162615 completed
successfully.
Backup of database cust_data was moved to /var/nzrepl/nzreplbackup/
6988/1398097573/457965570.
Activating RS1.G1 completed successfully.
The recovery file was moved to /var/nzrepl/nzreplbackup/6988/
1398097573/rt3.
Completed backups.
The next step must be run on the replica.
Restore the databases on the replica by running:
nzreplrestore -recoveryfile /var/nzrepl/nzreplbackup/6988/
1398097573/rt3
[nz@PTS100]$[nz@PTS100]$ nzreplbackup -recoveryfile my_recoveryfile.xml -dir
/home/nz/myReplDir
Starting backup: -globals
Starting backup: -db replset
Starting backup: -db cust_data
database global objects now meets replication node activation
requirements.
database replset now meets replication node activation requirements.
database cust_data now meets replication node activation requirements.
Activating myREPLSET.REPL_MASTER completed successfully.
Backup of global objects completed successfully.
Backup of database replset to backupset 20140610194635 completed
successfully.
Backup of database cust_data to backupset 20140610194636 completed
successfully.
Completed backups.
The next step is to transfer the recovery file and the backup files to
the replica.
Restore the databases on the replica by running:
nzreplrestore -recoveryfile my_recoveryfile.xml
The nzreplrestore command also requires a backup location option, such
as -dir.
Run nzreplrestore -? for more options.
[nz@PTS100]$
NDB2
NDB3
NDB1如果 -parallelism 选项的值为 2 ,则首先备份 globals 数据库,然后并行备份 NDB2 和 NDB3 数据库,最后备份 NDB1 数据库:
[nz@PTS100]$ nzreplbackup -recoveryfile recovery.xml -rqm -orderFile dbOrder
-parallelism 2
Starting backup: -globals
database global objects now meets replication node activation requirements.
Backup of global objects completed successfully.
Backup of global objects was moved to /var/nzrepl/nzreplbackup/5882/1412958099/0.
Starting backup: -db NDB2
Starting backup: -db NDB3
database NDB2 now meets replication node activation requirements.
database NDB3 now meets replication node activation requirements.
Backup of database NDB2 to backupset 20141010162147 completed successfully.
Backup of database NDB2 was moved to /var/nzrepl/nzreplbackup/5882/1412958099/385482754.
Backup of database NDB3 to backupset 20141010162148 completed successfully.
Backup of database NDB3 was moved to /var/nzrepl/nzreplbackup/5882/1412958099/385482755.
Starting backup: -db NDB1
database NDB1 now meets replication node activation requirements.
Activating REPLSET.REPL_MASTER completed successfully.
Backup of database NDB1 to backupset 20141010162152 completed successfully.
Backup of database NDB1 was moved to /var/nzrepl/nzreplbackup/5882/1412958099/385482753.
The recovery file was moved to /var/nzrepl/nzreplbackup/5882/1412958099/recovery.xml.
Completed backups.
The next step must be run on the replica.
Restore the databases on the replica by running:
nzreplrestore -recoveryfile /var/nzrepl/nzreplbackup/5882/1412958099/recovery.xml
[nz@PTS100]$ nzreplbackup -recoveryfile recovery.xml -rqm -orderFile dbOrder
-parallelism 2 -simulate