最近负责的分析管理系统刚上线,由于第一次做,没有经验,竟然连备份这些基础东西都忘记了,只好急急忙忙上网找资料,做一个数据库备份软件。
1. 学习SQLDMO (备份恢复)
SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装 Microsoft SQL Server 2000 数据库中的对象。SQL-DMO 允许用支持自动化或 COM 的语言编写应用程序,以管理 SQL Server 安装的所有部分。SQL-DMO 是 SQL Server 2000 中的 SQL Server 企业管理器所使用的应用程序接口 (API);因此使用 SQL-DMO 的应用程序可以执行 SQL Server 企业管理器执行的所有功能。
在ASP.NET2005中要使用SQLDMO.DLL,首先要注册这个组件。注册SQLDMO.DLL组件的步骤:
-
“项目”——> “添加引用”——> “COM ”——> “SQLDMO.DLL ”这样就可以注册SQLDMO.DLL 组件。
-
把在C:"Program Files"Microsoft SQL Server"80"Tools"Binn 目录下的动态链接库SQLDMO.DLL 文件。
-
把DLL 文件持拷贝到C:"WINDOWS"system32 目录下
-
在C:"WINDOWS"system32 目录下建立一个新文件夹:resources, 在里面再建一个新文件夹2052, 然后把RLL 文件拷贝到2052 中. 即放在C:"WINDOWS"system32"resources"2052 目录中
-
注册: 在开始>> 运行>>( 输入)Regsvr32 C:"Program Files"Microsoft SQL Server"80"Tools"Binn"sqldmo.dll 回车。
(实践证明不需要注册都可以在VS中试用这个组件)
2. 利用SQLDMO完成数据备份与恢复将变得简单。
备份的代码如下
备份数据库
SQLDMO.Backup backup = new SQLDMO.BackupClass();
SQLDMO.SQLServer sqlserver = new SQLDMO.SQLServerClass();
try
{
sqlserver.LoginSecure = false;
//服务器名,账号,密码
sqlserver.Connect(@"132.97.1.1\ABC","sa","`1qaz2wsx");
backup.Action=SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
//备份数据库名
backup.Database = "WorkflowServicePlatformDB";
//备份储存的路径
backup.Files = @"F:\backup\NOAM测试环境\DB\WorkflowServicePlatformDB_07071627.bak";
//备份数据名
backup.BackupSetName = "WorkflowServicePlatformDB";
backup.BackupSetDescription="数据库备份";
backup.Initialize=true;
backup.SQLBackup(sqlserver);
}
catch
{
throw;
}
sqlserver.DisConnect();
SQLDMO.Backup backup = new SQLDMO.BackupClass();
SQLDMO.SQLServer sqlserver = new SQLDMO.SQLServerClass();
try
{
sqlserver.LoginSecure = false;
//服务器名,账号,密码
sqlserver.Connect(@"132.97.1.1\ABC","sa","`1qaz2wsx");
backup.Action=SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
//备份数据库名
backup.Database = "WorkflowServicePlatformDB";
//备份储存的路径
backup.Files = @"F:\backup\NOAM测试环境\DB\WorkflowServicePlatformDB_07071627.bak";
//备份数据名
backup.BackupSetName = "WorkflowServicePlatformDB";
backup.BackupSetDescription="数据库备份";
backup.Initialize=true;
backup.SQLBackup(sqlserver);
}
catch
{
throw;
}
sqlserver.DisConnect();
恢复的操作将复杂一点,思路是分2步,1是先把与要恢复的数据库相连的进程都杀死,2然后才是恢复数据库。