Nuodb Archive - 检查

In the course of cleaning, validating, and repairing archives, you can use the nuoarchive check command to:

  • 删除未引用的数据库对象

  • 验证和报告非丢弃的参考

  • 验证整个档案

  • 关于独特约束违规的报告

检查加密的档案

If nuoarchive check detects that the archive is encrypted, you will be prompted to enter the storage password that was current when the archive was last in use. 密码不会在键入时向屏幕回音。

If you prefer to provide the password non-interactively, you can either use a pipe to send the password via standard input, or else set the storage password in the NUODB_STORAGE_PASSWORD environment variable.

If the password is not correct then nuoarchive will exit.

验证和报告非丢弃的参考

对于未标记为删除的数据库项目,Nuodb存档验证并报告其正确性。它通过加载每个架构并遍历它引用的所有对象来实现这一点。检查每个对象是否有以下内容:

  • 类型的正确性。

  • 它引用对象的有效性(例如数据原子的存在和类型)。

  • 内部索引的有效性。

  • MVCC(多版本并发控制)版本完整性。

  • 对象本身的参照完整性。也就是说,Nuodb归档验证了对象引用的所有项目都存在和可访问。

隐式整个档案验证

当Nuodb存档加载所有原子时,整个存档的隐式验证都已完成。 Nuodb存档然后报告那些不正确的原子。除非在这些情况下,验证包括测试和报告:

  • 使用索引可能会导致索引正在删除并重新创建。

  • 如果需要,纠正MVCC版本。

  • 任何不正确的引用都是固定的。

如果要调用Nuodb存档以还原到快照,则该实用程序在创建新存档之前验证并清除源归档。

唯一索引上的重复记录

NOODB存档还报告/维修索引时报告唯一的约束违规。

例如,如果唯一索引缺少有效记录,并且当这些记录违反唯一约束时,当添加回索引时,将打印与以下类似的消息将打印到stdout:

[ERROR] nuoarchive: Catalog test.te1 ID 6 Index C1 ID 3: Index is missing recordId 2
Ignoring unique dup exception while repairing indexes: Uniqueness violation encountered while populating index C1, key = 'foo1' for recordId 2

这表示唯一索引已被违反,即表中存在重复记录。要修复此功能,您必须启动数据库,然后选择要删除的重复记录以恢复唯一性。

句法

nuoarchive check [option [...] ] [archive_dir]

争论

archive_dir

Fully qualified path to the archive directory that will be checked for errors. It is not necessary to specify the archive_dir option with the --help and --version options.

如果要还原到快照,则此选项指定包含您还原的快照的存档目录的路径。

选项

核查检查选项是:

--help

显示选项列表。

--version

显示服务器版本。

--dry-run

报告更改而不应用于它们(默认)。

--repair

Nuodb存档在存档中修复问题。默认行为是该实用程序显示错误但不会修改存档。

如果要还原到快照,则需要。 Nuodb存档在创建新存档之前执行清理操作。

--quiet

Nuodb存档不会返回任何输出。

--mem

限制nuodb存档可以消耗的内存量,指定为兆字节(m)或千兆字节(g)。默认值为2千兆字节。

--full

第一个错误后继续。

--recalculate-index-stats

Recalculates statistics in each root index atom. Enabling this switch does not affect any other task performed by NuoDB Archive. In --dry-run mode, indexes where the stats are wrong by a significant margin (for example where the KEYCOUNT value is out by 15%).

--check-table

只检查指定的表。

--check-table-id

仅使用表ID或目录ID检查表。

--show-stats

在存档中提供每种类型的原子,以及每个原子类型的尺寸直方图。

--rewrite

在有效版本中重写旧原子。

用法

确保使用归档程序没有存储管理器,该存储器是Nuodb归档实用程序的源。要验证存档,您可能希望首先运行命令,而无需查看输出。发现的任何问题都将报告,但档案将没有更改。如果未检测到问题,则打印成功消息。

If necessary, you can run the command again with the --repair option to repair issues. If an SM is using that archive and NuoDB Archive is run with --repair, NuoDB Archive execution immediately stops with an error saying that an SM is using the archive. Similarly, if NuoDB Archive is running on an archive (in any mode) then any attempt to start an SM on that archive fails. The SM does not start and reports that the archive is locked.

After running NuoDB Archive with --repair, it is advisable to run it a second time to ensure no new issues are found. If you do find more issues being repaired when running NuoDB Archive a second time, contact support@nuodb.com..

必须由拥有归档目录的操作系统用户帐户调用Nuodb归档。如果其他用户调用NuodB存档,则生成类似于以下错误消息的错误:

nuoarchive: Permissions error: archive owned by system account 'other_user'

如果运行SM使用要验证的存档,请不要运行NOODB归档。

Nuodb Archive使用以下退出代码:

退出代码 描述

0

Nuodb存档尚未找到任何需要更改存档的任何内容。返回的所有消息都是信息级别。

1

Nuodb存档尚未在存档中找到任何不一致性。然而,Nuodb检查已经执行了存档的清理,例如清洁丢弃的对象,失败的事务等。此清理可降低磁盘使用情况,并可能提高性能,但对存档的一致性或正确性没有影响。返回的所有消息都是Warn级别。

2

Nuodb Archive发现存档中的不一致。发现的所有问题都是可修复的;如果在修复模式下运行,则无需进一步操作。如果发现问题,它们几乎总是在此类别中。返回的消息可能是警告或错误级别。更严格的消息优先;如果有警告和错误级别消息,则退出代码为2(或更高)。

3

Nuodb Archive在档案中发现了需要进一步行动的档案中的不一致;显示有关所需操作的信息。您必须执行这些操作,例如索引的重建,当数据库正在运行时。返回的所有消息都是错误级别。

123

Nuodb archive已发现其无法解决的存档中的问题。不要再次使用存档而不接触 support@nuodb.com. 第一的。返回的所有消息都是错误级别。

124

关键错误。由于尝试在存档上运行的意外错误,Nuodb存档无法完成。不要再次使用存档而不接触 support@nuodb.com. first.

125

无效的命令行参数。例如,不存在,空或无效存档或期刊目录的规范。

The exit codes described above are used whether you run NuoDB Archive in --repair mode or --dry-run mode. However in --repair mode, these codes indicate that operations required were actually performed, as opposed to --dry-run mode where the actions required are simply reported. If more than one type of issue is found, the highest applicable exit code is displayed.

例子

此命令在有效的SQL QuickStart数据库上调用Nuodb归档。看 运行SQL QuickStart.

$ nuoarchive check /var/opt/nuodb/production-archives/test
[INFO ] nuoarchive check: Validating Schema SYSTEM
[INFO ] nuoarchive check: Validating Table HOCKEY.HOCKEY ID 59
[INFO ] nuoarchive check: Validating Table HOCKEY.PLAYERS ID 61
[INFO ] nuoarchive check: Validating Table HOCKEY.TEAMS ID 63
[INFO ] nuoarchive check: Validating Table HOCKEY.SCORING ID 65
[INFO ] nuoarchive check: Archive verification found no issues.

Running NuoDB Archive again but with the --repair option has the following result:

$ nuoarchive check --repair /var/opt/nuodb/production-archives/test
[INFO ] nuoarchive check: Validating Schema SYSTEM
[INFO ] nuoarchive check: Validating Table HOCKEY.HOCKEY ID 59
[INFO ] nuoarchive check: Validating Table HOCKEY.PLAYERS ID 61
[INFO ] nuoarchive check: Validating Table HOCKEY.TEAMS ID 63
[INFO ] nuoarchive check: Table ID 65 was dropped
[INFO ] nuoarchive check: Catalog ID 66 was dropped

$ nuoarchive check /var/opt/nuodb/production-archives/test
[INFO ] nuoarchive check: Validating Schema SYSTEM
[INFO ] nuoarchive check: Validating Table HOCKEY.HOCKEY ID 59
[INFO ] nuoarchive check: Validating Table HOCKEY.PLAYERS ID 61
[INFO ] nuoarchive check: Validating Table HOCKEY.TEAMS ID 63
[INFO ] nuoarchive check: Archive verification found no issues.

Running NuoDB Archive again but with the --check-table option (to check only the hockey.scoring table) has the following result:

$ nuoarchive check --check-table hockey.scoring /var/opt/nuodb/production-archives/test
[INFO ] nuoarchive check: Validating Table HOCKEY.SCORING ID 120
[INFO ] nuoarchive check: Cleanup skipped due to --check-table flag.
[INFO ] nuoarchive check: Archive verification found no issues.

You may then add the --repair option to repair only the table defined.