SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装了Microsoft SQL Server数据库中的对象。SQLDMO是Microsoft SQL Server中企业管理器所使用的应用程序接口,所以它可以执行很多功能,其中当然也包括对数据库的备份和恢复。
using System;
namespace DbService
{
///
/// DbOper类,主要应用SQLDMO实现对Microsoft SQL Server数据库的备份和恢复
///
publicsealedclass DbOper
{
///
/// DbOper类的构造函数
///
private DbOper()
{
}
///
/// 数据库备份
///
publicstaticvoid DbBackup()
{
SQLDMO.Backup oBackup =new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer =new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure =false;
oSQLServer.Connect("localhost", "sa", "1234");
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database ="Northwind";
oBackup.Files =@"d:Northwind.bak";
oBackup.BackupSetName ="Northwind";
oBackup.BackupSetDescription ="数据库备份";
oBackup.Initialize =true;
oBackup.SQLBackup(oSQLServer);
}
catch
{
throw;
}
finally
{
oSQLServer.DisConnect();
}
}
///
/// 数据库恢复
///
publicstaticvoid DbRestore()
{
SQLDMO.Restore oRestore =new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer =new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure =false;
oSQLServer.Connect("localhost", "sa", "1234");
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database ="Northwind";
oRestore.Files =@"d:Northwind.bak";
oRestore.FileNumber =1;
oRestore.ReplaceDatabase =true;
oRestore.SQLRestore(oSQLServer);
}
catch
{
throw;
}
finally
{
oSQLServer.DisConnect();
}
}
}
}
SQLDMO由Microsoft SQL Server自带的SQLDMO.dll提供,由于SQLDMO.dll是一个COM对象,所以大家在用之前必须在.NET项目中添加对它的引用。
下面是用C#语言书写的用于Microsoft SQL Server数据库备份和恢复的类:
using System;
namespace DbService
{
///
/// DbOper类,主要应用SQLDMO实现对Microsoft SQL Server数据库的备份和恢复
///
publicsealedclass DbOper
{
///
/// DbOper类的构造函数
///
private DbOper()
{
}
///
/// 数据库备份
///
publicstaticvoid DbBackup()
{
SQLDMO.Backup oBackup =new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer =new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure =false;
oSQLServer.Connect("localhost", "sa", "1234");
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database ="Northwind";
oBackup.Files =@"d:Northwind.bak";
oBackup.BackupSetName ="Northwind";
oBackup.BackupSetDescription ="数据库备份";
oBackup.Initialize =true;
oBackup.SQLBackup(oSQLServer);
}
catch
{
throw;
}
finally
{
oSQLServer.DisConnect();
}
}
///
/// 数据库恢复
///
publicstaticvoid DbRestore()
{
SQLDMO.Restore oRestore =new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer =new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure =false;
oSQLServer.Connect("localhost", "sa", "1234");
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database ="Northwind";
oRestore.Files =@"d:Northwind.bak";
oRestore.FileNumber =1;
oRestore.ReplaceDatabase =true;
oRestore.SQLRestore(oSQLServer);
}
catch
{
throw;
}
finally
{
oSQLServer.DisConnect();
}
}
}
}