通过JDBC进行DB2备份?

通过JDBC进行DB2备份?,jdbc,db2,ibm-data-studio,Jdbc,Db2,Ibm Data Studio,我试图做的是:找到一种通过JDBC命令/查询备份DB2数据库的方法。下面是我用DB2命令行程序测试的命令: 将数据库dbName备份到C:\backup\db2 它在命令行上工作得很好,但是当试图在DataStudio中或通过独立的JDBC程序运行它时,它失败了。以下是JDBC异常消息: SQLCODE:-104,SQLSTATE:42601,SQLERRMC:backup database dbName to C:/;声明的开始 DataStudio抱怨应该是“JOIN”,而不是“dbName

我试图做的是:找到一种通过JDBC命令/查询备份DB2数据库的方法。下面是我用DB2命令行程序测试的命令:

将数据库dbName备份到C:\backup\db2

它在命令行上工作得很好,但是当试图在DataStudio中或通过独立的JDBC程序运行它时,它失败了。以下是JDBC异常消息:

SQLCODE:-104,SQLSTATE:42601,SQLERRMC:backup database dbName to C:/;声明的开始

DataStudio抱怨应该是“JOIN”,而不是“dbName”,以及其他一些事情。我还没有找到任何关于DB2的有用文档,这就是我来到这里的原因


以前有没有人遇到过这种情况,并想出了解决问题的办法?或者我遗漏了什么?

尝试使用admin\u cmd过程:

CALL SYSPROC.ADMIN_CMD('backup db mydatabase to c:\backup\db2\')

这也将通过JDBC驱动程序工作

你看过官方的DB2文档吗?是的,这就是我知道DB2命令行工具的语法的原因。但是,除非我在该页面上遗漏了什么,否则在DataStudio或JDBC方面都没有帮助我的信息。1) 将DB2数据库备份到数据库所在的同一系统。2) 将备份用FTP传输到您的计算机。我不相信您可以通过JDBC备份DB2数据库,我同意将备份与DB2实例放在同一个盒子上。对不起,我应该事先提一下。我只需要通过JDBC运行备份。
调用SYSPROC.ADMIN\u CMD('quiesce db immediate force connections');调用SYSPROC.ADMIN_CMD('backup db dbName to c:\backup\db2\');调用SYSPROC.ADMIN_CMD('unquiesce db')告诉我“不允许在线备份,因为数据库不可恢复,或者备份挂起的条件生效..SQLCODE=-2413,SQLSTATE=,DRIVER=3.63.108”我已经重新启动了DB2,所以不应该有挂起的条件,显然离线备份是默认的。我已经准备好把这个东西扔掉了-哈哈。首先,quiesce不会阻止管理员用户使用数据库。很有可能,您正在使用默认帐户连接到数据库,而默认帐户不会被quiesce阻止。如果您想这样做,您必须创建一个新用户,将其用于所有连接,然后静止将正常工作。第二,即使是开发数据库通常也最好处于可恢复模式,除非您在开发时批量加载/卸载大量数据。(请参阅)这是因为数据库将更可靠地从崩溃等中恢复。简化后,事务日志将被保存(设置为LOGARCHMETH1),数据库产品将能够及时来回滚动所有更改。第三,默认设置为脱机,但您可以将参数联机添加到命令中(如果设置了logarchmeth1,并且您已经进行了第一次脱机备份),您将永远不需要停止备份。如果您想要“单个可恢复备份文件”,请查看“包括日志”选项:)您,先生(或女士)是我的英雄。感谢大家花时间给我一个彻底的回复,最终帮助我解决了这个问题:)