NetBackup™ for PostgreSQL 管理指南

Last Published:
Product(s): NetBackup & Alta Data Protection (10.1)

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

解决问题的一般性准则

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

表:解决问题的常规步骤

步骤

操作

描述

步骤 1

记住错误消息.

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

步骤 2

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

提出以下问题:

  • 尝试进行了什么操作?

  • 您使用的方法是什么?

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

  • 如果您的站点同时使用主服务器和介质服务器,那么它是主服务器还是介质服务器?

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

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

  • Service Pack 级别是什么?

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

  • 您的设备固件所处级别是否已依照发布的设备兼容性列表经过测试,或处于更高级别?

步骤 3

记录所有信息。

捕获可能有价值的信息。

  • NetBackup 日志。

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

  • 特定于 NetBackup XBSA 的日志。

步骤 4

更正问题.

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

步骤 5

与技术支持联系。

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

使用日志和报告解决错误

要解决错误,可以参考 NetBackup 日志。这些日志位于以下位置:

NetBackup 主服务器日志位于:

  • install_path\NetBackup\logs\bprd

  • install_path\NetBackup\logs\bpcd

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

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

特定于 NetBackup 客户端的日志位于:

  • install_path\netbackup\logs\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 命令中使用 "-l" 开关提供库路径,或提供了库路径但其不包含 libpq.so (Linux) 或 libpq.dll (Windows),则可能会遇到此问题。

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

  • 确保提供正确的 postgresql 库路径,其中包含 libpq.so (Linux) 或 libpq.dll (Windows) 文件。

  • (Linux) 如果未提供 libpq.so,请创建一个名为 libpq.so 的符号链接,该链接指向 libpq.so.<n>

  • (Windows) 如果 PostgreSQL 安装位置的 bin 目录下未提供 libpq.dll,则它可能位于 lib 目录下。

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

Unable to connect to the database

使用无效的数据库用户名、端口号或密码运行 nbpgsql 命令时,PostgreSQL 备份将失败。

要添加适当的数据库用户名和端口号,请执行以下操作:

  • 使用 nbpgsql 命令的 "-u" 开关提供数据库用户名。

  • 使用 nbpgsql 命令的 "-portnum" 开关提供数据库端口号。

  • 使用 my.cnf (Linux) 或 my.ini (Windows) 文件提供数据库密码。

请参见验证 PostgreSQL 环境密码

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

Unable to load xbsa.dll

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

要成功运行 nbpgsql 备份,请执行以下操作:

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

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

XBSA initiation failed

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

要成功运行 nbpgsql 备份,请执行以下操作:

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

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

(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>

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 版本是否与要还原数据的计算机上的 PostgreSQL 版本相同。

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

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

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