自上一次撰写有关这个备份工具的文章以来,已经过去了一年。在此期间,收到了很多关于这个备份工具的反馈。因此,决定更新这个程序,并对其进行了重大改进,以提高其在功能和性能方面的稳定性。可以阅读原始文章,了解旧版本的详细信息。
备份文件的扩展名现在改为.ZIP,而不是.SQLBackup。这样做的目的是为了避免混淆。
旧版本在某些条件下恢复数据时存在问题,这个问题在新版本中应该已经得到了解决。
增加了多线程备份和恢复过程。这样,在执行长时间操作时,程序不会冻结。
改进了用户界面,以显示备份和恢复的适当状态。
包含了GNU许可证。
将在接下来的几天内对这个程序进行更多的更新。请定期访问网站shabdar.org,以获取最新的源代码。
每当想要备份或移动SQL Server数据库时,大多数人更倾向于使用SQL Server 2000中的企业管理器或SQL Server 2005中的管理工作室提供的常规备份工具。使用企业管理器或管理工作室的限制在于,只能使用完整备份或差异备份。当想要备份大型数据库中的一小部分时,这将是一个非常繁琐的任务。例如,在数据库中,只想备份100个表中的15个表,或者只想备份这些选定表中的一些记录。因此,一直在寻找一个小型工具,允许这样做。在搜索了数百个实用程序程序之后,决定编写自己的工具。
备份选定的对象
备份选定的数据
仅备份脚本
仅备份数据
备份脚本和数据
支持从远程服务器通过Web、局域网或本地PC进行备份
要备份数据库,请从工具菜单中打开数据库备份窗口。输入SQL Server的服务器名称、数据库名称、用户名和密码。点击"连接",这将显示数据库中所有可用的表、视图、存储过程、用户定义的函数、用户定义的数据类型和用户。
如果想仅备份数据,请勾选"备份数据"并取消勾选"备份对象结构(脚本)"。
如果想仅备份脚本,请勾选"备份对象结构(脚本)"并取消勾选"备份数据"。
从列表中选择想要备份的对象。默认情况下,所有对象都被选中。在上面的图片中,Adv_StackedBar2和Adv_UserRoleTypes表将从备份中排除。
对表数据应用任何条件。例如,UserID > 10且UserID < 25,这意味着只有满足此条件的记录才会被导出。
修改要导出的特定"表"上的行数。例如,在上面的图片中,Top 20 *,意味着Adv_TodaysOutlook表将仅导出前20行。
点击"开始备份"。它将要求输入文件名和位置。请注意,备份文件的扩展名是*.zip。请记住,这不是标准的SQL Server备份文件。它只是一个包含表、视图、存储过程等脚本的zip文件。它还包括数据行(*.dat)文件。
要恢复备份,请从工具菜单中打开数据库恢复窗口。输入SQL Server的服务器名称、数据库名称、用户名和密码。选择想要恢复的数据库备份文件(*.zip)。请记住,这个工具只能恢复由这个工具本身创建的备份文件(*.zip)。它不能恢复常规的SQL Server备份文件。
当选择备份文件时,它将显示备份中所有可用的对象。
如果想创建一个新数据库,请勾选"创建新数据库"选项。
如果想删除现有数据库并重新创建,请勾选"删除现有数据库"选项。
从列表中选择想要恢复的对象。默认情况下,所有对象都被选中。
点击"开始恢复"。
如所见,备份和恢复表单都包括"预设"组合框。它的功能是每次备份或恢复数据库时,都会记录服务器名称、数据库名称、用户名和密码信息。下次当想要使用相同的服务器时,不需要再次输入所有这些参数。可以选择"预设"组合列表中的选项。它还会记住上次访问的SQL Server名称。
不会详细描述代码。大多数代码都是自解释的,并且有注释。只是一些快速的笔记。使用了SQL-DMO库来处理所有与数据库相关的任务。对于SQL-DMO库,计算机上必须安装SQL Express或SQL Server 2000客户端工具。
VB.NET
Dim oServer As New SQLServer2
Dim db As SQLDMO.Database2
Dim objBCP As New SQLDMO.BulkCopy2
VB.NET
objBCP.DataFilePath = "c:\temp\EmployeeData.dat"
db.Tables.Item("Employee").ExportData(objBCP)
VB.NET
Dim SQL as String = db.GetObjectByName("Employee").Script_(SQLDMO_SCRIPT_TYPE.SQLDMOScript_Drops) + db.GetObjectByName("Employee").Script()
这个工具不能备份用户角色和触发器。
备份文件是以zip格式的。(可以使用winzip或其他zip工具解压它并查看其内容。)它不能使用SQL Server企业管理器恢复。
这个程序可以进一步增强,包括一个Windows服务,可以定期为SQL Server进行备份,而无需用户交互。这样,这个工具可以用于常规备份。
使用了SharpZipLib(ICSharpCode.SharpZipLib.dll),这是一个免费的开源zip实用程序库,可以在此处获得,用于压缩备份目录。这个文件包含在Bin\Release文件夹中。
Visual Studio .NET 2005(用于源代码) .NET Framework 2.0 MicrosoftSQL Server2000或Microsoft Express 2005或Microsoft SQL Server 2005客户端组件(用于SQL-DMO库)
确保计算机上安装了SQL Server 2000或2005客户端组件。如果不想安装这些组件,可以安装Microsoft SQL Server 2005向后兼容性组件。这些组件是SQL-DMO库所需的。