使用复原脚本从脱机备份复原 Db2

重要信息: IBM Cloud Pak for Data 4.6 版本将于 2025 年 7 月 31 日结束支持 (EOS)。 欲了解更多信息,请参阅 IBM Cloud Pak for Data 版本 4.X 的停止服务公告

IBM Cloud Pak for Data 4.6 版本支持结束之前,升级到 IBM Software Hub 5.1 版本。 更多信息,请参阅 IBM Software Hub 版本 5.1 文档中的升级 IBM Software Hub。

您可以使用提供的脚本文件在使用或不使用加密的情况下复原 Db2 备份映像。

复原脚本可以复原:

  • 已加密的备份
  • 未加密的备份
  • 来自相同或不同外形规格的外部 Db2 数据库 (例如,同一平台系列中的裸机 Db2 部署)
  • 来自较早 Db2 版本的备份

以下部分提供了 db_restore_extdb.sh 脚本的用法信息,以及有关使用脚本以不同选项复原的详细信息。

注: 只能使用该脚本来复原完全脱机备份映像。 如果您正在使用增量/联机备份映像,请使用本机 Db2 复原命令。

语法

读取语法图跳过可视语法图 /db2u/scripts/db_restore_extdb.sh --bkp-dir目录--bkp-tar文件名 --bkp-timestamp时间戳记 --dbnamedbname--dblist列表 --keystore-dir目录--keystore-tar文件名 --drop-default-db --replace --cleanup --verbose --help

选项:

--bkp-dir 目录
指定备份映像所在的目录。 选择此选项或 --bkp-tar 选项。
--bkp-tar filename
指定包含备份映像的 .tar 文件。
--bkp-timestamp 时间戳记
要用于复原的备份映像的时间戳记。
--dbname 数据库名称
复原备份映像时要使用的数据库名称。
--dblist
复原备份映像时要使用的数据库名称的逗号分隔列表。
--keystore-dir 目录

包含备份本机加密密钥库的目录。 此目录必须仅包含密钥库文件。 选择此选项或 --keystore-tar 选项。

--drop-default-db
删除现有数据库。
--replace
替换现有数据库。
--keystore-tar
指定包含备份本机加密密钥库的 .tar 文件。
--cleanup
指定清除所有备份映像。
--verbose
使用此标志以查看脚本执行的显式命令或查看错误。
--help
使用此标志以显示工具的帮助。

复原已加密的备份

要复原已加密的备份,请完成下列步骤:

  1. Db2 数据库备份映像和本机加密密钥库保存在单个位置。 例如,/mnt/blumeta0/db2/backup/db2ubkp,相当于 ${BACKUPDIR}/db2ubkp
  2. Db2 实例所有者/组必须对保存备份映像和密钥库文件的备份目录具有读写访问权。 可以通过发出以下命令来设置必需的方式位和许可权:
    chmod 755 ${BACKUPDIR}/db2ubkp
    chown db2inst1:db2iadm1 ${BACKUPDIR}/db2ubkp
  3. 运行以下命令以复原备份:
    db_restore_extdb --bkp-dir ${BACKUPDIR}/db2ubkp --dbname dbname --bkp-timestamp timestamp --replace --keystore-dir ${BACKUPDIR}/db2ubkp

    dbname 替换为区分大小写的数据库名称,将 timestamp 替换为备份映像的时间戳记。 您可以通过运行 cat ${SUPPORTDIR}/db_restore_extdb.log 来获取复原命令的输出日志。

    注: 如果备份是从其他实例或远程集群复制的,那么必须使用 --drop-default-database 参数而不是 --replace 参数。

复原未加密的备份

要复原未加密的备份,请完成下列步骤:

  1. Db2 数据库备份映像保存在单个位置。 例如,/mnt/blumeta0/db2/backup/db2ubkp,相当于 ${BACKUPDIR}/db2ubkp
  2. Db2 实例所有者/组必须对保存备份映像和密钥库文件的备份目录具有读写访问权。 可以通过发出以下命令来设置必需的方式位和许可权:
    chmod 755 ${BACKUPDIR}/db2ubkp
    chown db2inst1:db2iadm1 ${BACKUPDIR}/db2ubkp
  3. 运行以下命令以复原备份:
    db_restore_extdb --bkp-dir ${BACKUPDIR}/db2ubkp --dbname dbname --bkp-timestamp timestamp --replace

    dbname 替换为区分大小写的数据库名称,将 timestamp 替换为备份映像的时间戳记。 您可以通过运行 cat ${SUPPORTDIR}/db_restore_extdb.log 来获取复原命令的输出日志。

复原外部数据库

备份映像(以及已加密的密钥库)也可以从外部来源复原。 例如,您可能想要使用本地部署中的数据库来重新初始化 Db2

您可以使用 --dbname dbname 选项将数据库名称设置为与此场景中的源代码相同。