如何在db2中复制包含所有表和数据的数据库?

时间:2018-02-04 05:47:51

标签: db2

我想复制包含所有数据,表和触发器的数据库。 例如。我希望将SAMPLE数据库复制到包含所有表,数据和触发器的TESTSAMPLE数据库

1 个答案:

答案 0 :(得分:0)

您可以使用db2move或数据库备份/还原。这个答案显示备份/恢复。

对于Windows / Linux / Unix上的小型Db2数据库,您可以进行脱机Db2备份,并将生成的文件还原到同一Db2实例中的新数据库中。一些GUI工具允许您通过GUI执行此操作,但我不会描述这些。

有关详细信息,请浏览免费在线Db2 knowledge center网站。

在下面的示例中,我将示例数据库复制到testsmpl数据库中,两者都在同一个Db2实例中。

首先,关闭/停止连接到示例数据库的所有应用程序,因为我们需要脱机备份。

如果您的数据库是 NOT 默认,或者具有非默认表空间,或者配置为在线备份,则以下步骤不是您想要的。

对于在 Microsoft-Windows 上运行的Db2服务器,使用默认设置,以及在Db2实例中名为sample的单个数据库,在DB2服务器上运行以下命令:

确保您的用户名是本地组DB2ADMNS的成员

开始>运行> db2cwadmin.bat

确保您使用的是正确的Db2实例(仅当您有多个Db2实例时,不是默认实例)。

在生成的db2cmd.exe窗口中运行以下命令:

db2 force applications all
md %temp%\db2backup
db2 backup database sample to %temp%
db2 restore database sample from %temp%\db2backup  into testsmpl

对于 Unix / Linux,在Db2实例中使用单个示例数据库

打开Db2服务器的终端窗口

通过su或sudo成为正确的Db2实例所有者(例如su - db2inst1)

db2 force applications all
mkdir -p /tmp/db2backup
db2 force applications all
db2 backup database sample to /tmp/db2backup
db2 restore database sample from /tmp/db2backup into testsmpl