【发布时间】:2012-12-12 22:08:35
【问题描述】:
我已经开发了一个带有 MS-SQL Server 数据库的 Java Swing 应用程序,现在我想在我的 Java Swing 应用程序中提供备份和恢复选项,单击按钮它应该备份数据库并恢复数据库的任何可能性我怎么能通过java做到这一点。请帮忙
【问题讨论】:
-
请帮助...我该怎么做
标签: java sql-server-2005 backup restore
我已经开发了一个带有 MS-SQL Server 数据库的 Java Swing 应用程序,现在我想在我的 Java Swing 应用程序中提供备份和恢复选项,单击按钮它应该备份数据库并恢复数据库的任何可能性我怎么能通过java做到这一点。请帮忙
【问题讨论】:
标签: java sql-server-2005 backup restore
有两种方法可以做到这一点。备份和恢复只是 sql 命令,因此您可以像执行任何其他 sql 一样执行它们,例如一个 sql 插入语句,不幸的是,您需要对系统有一些了解才能执行它们,而且您不会得到任何进度指示器。使用 SQLSMO 是另一种可能性,但不确定是否从 java 中访问 .net dll。您可以使用 SQLDMO(pre.net),但您需要安装向后兼容工具,而且您会因为 SQL2012 不支持 DMO(虽然它似乎可以工作)而让自己升级头疼。两者都有一个您可以在进度条上打勾的事件,当然,如果备份速度相当快,您可以不用理会它。
但是,还有更多需要考虑的问题。您可以在系统运行时进行备份,但您无法清楚地知道系统运行时的位置。
恢复需要独占访问权限和高级别的权限,所以这不是你分发的东西,你需要让每个人都离开数据库。
最后但并非最不重要的是,如果您无意中恢复了与应用程序不再匹配的数据库版本......
就我个人而言,我认为有权执行此操作的人应该能够在没有您的工具的情况下执行此操作。简化它意味着需要大量代码来确保他们不会从您在八个版本之前发布的试用版中恢复 sql2000 备份。
我们做了类似的备份恢复代码大约占应用程序的 2%。例如,我们使用 dbcc 等进行备份前检查,以确保他们没有成功备份损坏的数据库...
【讨论】: