如何在线备份 IBM DB2 数据库?

nul*_*ull 7 backup db2

我尝试使用以下命令备份 IBM DB2 (LUW) 数据库:

./db2 backup database DBEMP to /home/user1/db2bkup
Run Code Online (Sandbox Code Playgroud)

但我收到了这条消息:

SQL1035N 数据库当前正在使用中。SQLSTATE=57019

然后我尝试了这个:

./db2 backup database DBEMP online to /home/user1/db2bkup
Run Code Online (Sandbox Code Playgroud)

我收到了这条消息:

SQL2413N 不允许联机备份,因为数据库不可恢复或备份暂挂条件生效。

这是什么意思?有没有其他方法可以在线备份数据库?我无法停止数据库,因为它正在被使用。

Nat*_*lly 9

不幸的是,如果 DB2 数据库处于循环日志记录模式(这是创建 DB2 数据库时的默认设置),则无法对其进行联机备份。

您可以通过发出以下命令来检查您的数据库是否正在使用循环日志记录:

./db2 get db cfg for dbemp | grep LOGARCH
Run Code Online (Sandbox Code Playgroud)

如果两个 LOGARCHMETH 选项都关闭...

First log archive method       (LOGARCHMETH1) = OFF
Second log archive method      (LOGARCHMETH2) = OFF
Run Code Online (Sandbox Code Playgroud)

...然后您需要更改数据库配置以使用存档日志记录,然后才能进行备份。我不是 100% 确定这一点,但我相信您需要重新启动数据库并进行离线备份,然后才能开始进行在线备份。

IBM 的“配置数据库日志选项”文档中概述了如何执行此操作。

请注意,如果您从 CIRCULAR LOGGING 更改为 ARCHIVE LOGGING,则需要弄清楚如何处理归档日志文件。如果这些数据对您很重要,将它们存储在 SAN/NAS/磁带上以允许前滚恢复可能是一个非常好的主意。