65.9K
CodeProject 正在变化。 阅读更多。
Home

Windows DTS 包用于 SQL Server 2005 数据库备份

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.86/5 (25投票s)

2007年7月4日

CPOL

3分钟阅读

viewsIcon

44747

downloadIcon

915

自动化的 Windows DTS 包用于 SQL Server 2005 数据库备份。

Screenshot - ConfigurationSettings.gif

引言

这是我第一篇关于 SQL Server 2005 的文章。该产品可以帮助用户备份 SQL Server 2005 数据库及其数据库备份日志文件,它使用一个由安装程序自动创建的作业。用户只需在安装 BackUpDatabaseUsingDTS 之前,解压缩并在数据库中安装 DTSPackage.zip。您可以在 BackUpDatabase.zip 中找到 BackUpDatabaseUsingDTS 的 MSI 安装程序。

背景

在上面的示例中,我输入了我的数据库用户名 "sa"、我的数据库密码 "xxxx",并且我选择了我的 SQL Server 2005 "(local)"。即使我们有选择网络数据库的选项,我仍然建议您在数据库服务器中安装该组件。选择服务器后,将列出数据库名称,从而成功完成安装。我们需要首先安装脚本(DTSPackage.zip)。我在名为 MeridiumCom 的数据库中执行了该脚本。成功安装后,我进入了 BackupDatabase.zip 中的 BackUpDatabaseUsingDTS MSI 安装程序。请记住,用户应选择相同的数据库才能成功完成。用户可以选择数据库备份路径以及日志文件。当我们成功安装组件后,备份会自动安排在每天晚上 11:45 进行,没有结束日期,开始日期是 12/9/2006。计划类型是重复的。如果用户想要安排其他时间,那么他/她可以转到 SQL SERVER 2005 对象资源管理器 --> 转到 SQL Server 代理 --> 作业 --> 选择作业并右键单击 --> 属性 --> 从左侧面板单击“计划” --> 单击中间面板中的“编辑”按钮。

该组件启动 SQL SERVER AGENT(如果未启动)并创建一个新的 JOB。作业的名称将与用户选择的数据库非常相似。

Using the Code

添加一个 Installer 类并添加以下引用

//
// System.configuration.Install
//

默认情况下,安装程序将被该类继承。例如,我的组件被命名为 DatabaseBackUpInstaller。用户需要添加 [RunInstaller(true)],这是强制性的。

//
// [RunInstaller(true)]
// public partial class DatabaseBackUpInstaller : Installer
//

让我详细介绍一下我在 DatabaseBackUpInstaller 中使用的方法

//
//GetConnectionString --> forms the database connection string
//ExecuteStoredProcedure --> executes the DTSPackage StoredProcedure with 
//necessary information.
//public override void Install --> overrides Install 
//StartSQLServerAgent --> Starts SQL Server Agent if it is stopped
//ExecuteSQLQuery --> finds the status of SQL Server Agent
//

让我详细介绍一下我在 InstallForm 中使用的方法

//protected override void OnLoad --> overrides onLoad event to get 
//SQL Servers in the Network
//btnFinish_Click--> Validates the input textboxes.
//btnDBPath_Click -->  As we know MSI installers are MTA Threaded 
//ApartmentState. If we want to invoke FolderBrowserDialog, we need to go 
//for STA Threaded ApartmentState. This event gets us the database backup path. 
//The user can only select the folder. 
//filename will be provided by the application.SQLServerLocator Class 
//helps to get the network databases.

工作原理

  1. 用户需要在任何数据库(例如 MeridiumCom)中执行 StoredProcedure
  2. 用户需要安装应用程序。他/她不需要执行代码。这些代码仅用于理解目的。

关注点

  1. 我知道如何从 MTA 线程应用程序中调用 FolderBrowserDialog
  2. SQLDMO 命名空间在 .NET 中的使用

历史

  • 2007 年 7 月 4 日:首次发布

由于这是我的第一篇文章,用户需要手动执行 DTSPackage StoredProcedure。我的下一个版本将完全自动化,并具有一些附加功能。

关于 Proteans 软件解决方案

Proteans 是一家外包公司,专注于 Microsoft 技术平台上的软件产品开发和业务应用程序开发。Proteans 与独立软件供应商 (ISV)、系统集成商和企业的 IT 团队合作开发软件产品。我们在软件产品开发方面的技术重点和丰富经验——设计、构建和发布世界一流的、健壮且可扩展的软件产品——帮助我们缩短上市时间、削减成本、降低业务风险并为我们的客户改善整体业务成果。Proteans 在开发方面的专业知识使用 Microsoft .NET 技术。

© . All rights reserved.