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