NetBackup™ for PostgreSQL 管理指南

Last Published:
Product(s): NetBackup (10.0)

解决在使用 NetBackup for PostgreSQL 代理 时出现的错误

解决问题的一般性准则

下表包含可帮助您解决在使用 NetBackup for PostgreSQL 代理 时可能遇到的问题的步骤。

表:解决问题的常规步骤

步骤

操作

描述

步骤 1

记住错误消息

错误消息通常是指出哪里出现故障的手段。如果在命令行中没有看到错误,但仍怀疑有问题,请检查日志和报告。这些工具可提供错误消息,直接指向问题。日志和报告是必备的故障排除工具。

步骤 2

确定出现问题时您正在做什么.

提出以下问题:

  • 尝试进行了什么操作?

  • 您使用的方法是什么?

  • 涉及哪种类型的服务器平台和操作系统?

  • 如果您的工作场所同时使用主服务器和介质服务器,那么是主服务器还是介质服务器?

  • 如果涉及客户端,那么它是哪种类型的客户端?

  • 以前是否成功地执行过该操作?如果是,与现在有什么不同?

  • Service Pack 级别是什么?

  • 您使用的操作系统软件是否安装了最新的修补程序,尤其是那些必须和 NetBackup 一起使用的修补程序?

  • 您的设备固件级别是否已经过测试(根据发布的设备兼容性列表),或者高于此级别?

步骤 3

记录所有信息

捕获可能有价值的信息。

  • NetBackup 日志。

  • 特定于 NetBackup for PostgreSQL 代理 的日志。

  • 特定于 NetBackup XBSA 的日志。

步骤 4

更正问题

定义问题后,请使用信息更正问题。

步骤 5

与技术支持部门联系

如果无法排除故障,请与技术支持联系。

使用日志和报告解决错误

要解决错误,可以参考 NetBackup 日志、NetBackup for PostgreSQL 代理 日志和 NetBackup XBSA 日志。这些日志位于以下位置:

NetBackup 日志位于:

  • install_path\NetBackup\logs\bprd

  • install_path\NetBackup\logs\bpcd

  • install_path\NetBackup\logs\user_ops\dbext\logs

必须启用 bprdbpcd 日志文件。有关更多信息,请参见《NetBackup 故障排除指南》。

特定于 NetBackup for PostgreSQL 代理 的日志位于:

  • install_path\nbpgsql.log

特定于 NetBackup XBSA 的日志位于:

  • <NetBackup_install_path>/netbackup/logs/exten_client

解决 NetBackup 错误

要解决 NetBackup 错误,请参见《NetBackup 故障排除指南》和《NetBackup 命令参考指南》

解决 NetBackup for PostgreSQL 代理 错误

表:解决 NetBackup for PostgreSQL 错误 列出并描述了在运行操作时出现的错误以及对问题进行故障排除的解决方案。

表:解决 NetBackup for PostgreSQL 错误

问题

描述

解决方法

nbpgsql 备份失败并显示以下错误:

Unable to load postgresql library

如果未使用以下内容更新 nbpgsql.conf 文件,则可能会遇到此问题

  • postgresql 库文件位置

  • PGSQL_LIB_INSTALL_PATH 未指向正确的 libpq.so 库版本。

验证下列内容,然后再次运行备份:

  • nbpgsql.conf 文件中添加或更新 PostgreSQL 库文件位置。

  • 确保将 PostgreSQL_LIB_INSTALL_PATH 设置为正确的路径。它应指向 libpq.so 库版本。

  • 创建符号链接 libpq.so,该链接指向 libpq.so.<n>,其中 n 是 PostgreSQL 库版本。

    有关更多信息,请参见NetBackup for PostgreSQL 代理 的安装后要求

nbpgsql 备份失败并显示以下错误:

无法连接到数据库

如果使用无效的用户名或端口号更新 nbpgsql.conf 文件,nbpgsql 备份将失败。

添加适当的数据库用户名和端口号

  • nbpgsql.conf 文件中配置适当的数据库用户名和端口号,或者使用 nbpgsql 命令提供适当的选项。

    有关更多信息,请参见nbpgsql.conf 配置文件

nbpgsql 备份失败并显示以下错误:

无法加载 xbsa.dll

如果未使用 NetBackup bin 目录更新环境变量路径,nbpgsql 备份将失败。

成功运行 nbpgsql 备份

  • 使用 NetBackup_install_path/bin 更新环境变量路径。

nbpgsql 备份失败并显示以下错误:

XBSA initiation failed

如果未使用所需参数更新 nbpgsql.conf 文件,nbpgsql 备份将失败。

成功运行 nbpgsql 备份

  • nbpgsql.conf 文件中或从命令行配置有效的主服务器名称、策略名称、日程表类型。

  • 验证 nbpgsql 代理和 NetBackup 主服务器之间是否存在通信错误。有关更多信息,请参见《NetBackup 管理指南》

(Windows)VSS snapshot creation failed

如果用户无权运行 nbpgsql 操作,nbpgsql 备份可能会失败。

在管理员模式下运行 cmd.exe

nbpgsql 还原操作不会从目标 NetBackup 客户端还原任何数据。

如果未使用 NetBackup 客户端名称和目标目录更新 nbpgsql.conf 文件,nbpgsql 还原将失败。

对于成功的还原

  • 验证目标目录是否有效且为空。

  • 从 NetBackup 源客户端启动还原。

  • nbpgsql.conf 文件中设置 NetBackup 客户端名称和目标目录参数。

nbpgsql 备份失败并显示以下错误:

(Linux)Error creating LVM snapshot

如果卷组的空间不足,无法存放快照,nbpgsql 备份可能会失败。

验证卷组中的空间

  1. 运行以下命令:

    $vgs

    该命令显示卷组详细信息。

  2. 使用相应的快照大小更新 nbpgsql.conf 文件。快照应等于或大于实例大小。

成功备份之后的错误消息:

<volume_group>/<snapshot_name> Read failure after 0 of 4096 at 29393616896: input or output error.

或者

<volume_group>/<snapshot_name>: read failure after 0 of 4096 at 4096: input or output error.

如果卷组包含快照,nbpgsql 备份会显示这些错误。您可以列出快照,将其删除,然后再次运行备份。

注意:

nbpgsql 创建的 LVM 快照名称以 pgsqlsnap 为前缀

删除快照

  1. 运行以下命令以列出现有快照:

    $lvs

    该命令显示快照详细信息。

  2. 要删除快照,请运行以下命令:

    $ lvremove -f <volume_group>/<snapshot_name>

nbpgsql 备份失败并显示以下错误:

"Failed to load PostgreSQL Library"

如果未使用以下内容更新 nbpgsql.conf 文件,则可能会遇到此问题:

  • PostgreSQL 库文件位置。

  • PGSQL_LIB_INSTALL_PATH 未指向 libpq.so

验证下列内容,然后再次运行备份:

  • nbpgsql.conf 文件中添加或更新 PostgreSQL 库文件位置。

    有关更多信息,请参见nbpgsql.conf 配置文件

  • 确保将 PGSQL_LIB_INSTALL_PATH 设置为正确的路径。它应指向 libpg.so.<n>,其中 n 是 PostgreSQL 库版本。

  • 创建符号链接 libpq.so,该链接指向 libpq.so.<n>,其中 <n> 是 PostgreSQL 库版本。

Linux (LVM) 上的 nbpgsql 备份失败并显示以下错误:

Error unmounting the snapshot-Device or resource busy

或者

Error removing the snapshot-pgsqlsnap_<timestamp>

注意:

<timestamp> 是 LVM 快照时间

在尝试卸载快照、设备期间或在删除现有快照时,nbpgsql 备份失败。

卸载快照

  1. 运行以下命令以列出所有已装入的文件系统:

    $ mount-l

  2. 如果快照仍然存在,请使用以下命令创建装入目录:

    $mount<mount_directory>

    注意:

    此目录在 /mnt/<snapshot_name> 中创建。快照的前缀名称为 pgsqlsnap

  3. 运行以下命令以删除装入目录:

    $rm -rf <mount_directory>

  4. 运行以下命令以手动删除快照:

    lvremove -f <volume_group>/<snapshot_name>

即使成功还原后,仍未能启动 PostgreSQL 服务。

仅当在次要版本与 PostgreSQL 相同的计算机上还原备份时,还原操作才会成功。

例如,如果从 PostgreSQL 版本 9.6.x 备份文件,则必须将文件还原到 PostgreSQL 版本为 9.6.x 的计算机。

  • 验证 PostgreSQL 代理和 NetBackup 的版本是否相同,以便成功执行还原操作。

  • 验证备份数据中的 PostgreSQL 版本是否与要还原数据的计算机上的 PostgreSQL 版本相同。

在 RHEL 或 SUSE 上安装代理后,缺少 nbpgsql.conf 文件

从 NetBackup 8.2 开始,在 RHEL 或 SUSE 上安装代理时,默认情况下不会创建 nbpgsql.conf 文件。由于 RPM 安装程序仅覆盖目标目录 /usr/NBPostgreSQLAgent/ 中的任何现有文件,因此可以防止覆盖现有配置文件。

如果 nbpgsql.conf 文件不存在,则可以通过运行 backup utility 命令创建该文件,而无需任何其他选项。例如,./nbpgsql。此命令会创建默认的 nbpgsql.conf 文件。