数据库备份还原

利用SQLDMQ来备份和还原MSSQL数据库.   

SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装了Microsoft SQL Server数据库中的对象。SQLDMO是Microsoft SQL Server中企业管理器所使用的应用程序接口,所以它可以执行很多功能,其中当然也包括对数据库的备份和恢复。

下面了解下sqldmo的一些接口

SQLDMO.Backup
BackupSetName - 备份文件名。
Database - 要备份的数据库。
Action - 全部或增量备份。
BackupSetDescription - 备份说明。
Files - 文件备份选项。标明备份文件的路径和名字
Devices - 服务器上的备份装置。如果使用备份装置,上面的文件备份选项要设置为空。
TruncateLog - 备份日志选项。其选项有:
 NoLog - 不备份交易日志。
 NoTruncate - 备份交易日志。日志里提供时间标记。
 Truncate - 备份交易日志,但不保留交易纪录。
Initialize - 如设置为真(True),该备份装置将取代其他备份媒介而成为首选。

1. 在.NET项目中添加对SQLDMO.dll的引用.

2.编码

备份:

public bool void DBBackup()
  {
   try
   {
    SQLDMO.Backup objBackup = new SQLDMO.BackupClass();
    SQLDMO.SQLServer objSQLServer = new SQLDMO.SQLServerClass();
    objSQLServer.LoginSecure = false;   / /确定SQL验证方式...设为true则为身份验证
    objSQLServer.Connect("localhost", "sa", "");
    objBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
    objBackup.Database = "数据库名称";
    objBackup.Files = @" c:/数据库名称.bak";
    objBackup.BackupSetName = "新数据库名称";
   objBackup.BackupSetDescription = "数据库备份";
    objBackup.Initialize = true;
   objBackup.SQLBackup(objSQLServer);

return true;
   }
   catch
   {

return false;
      }
  }

  //还原

  public bool void DbRestore()
  {

bool result=false;
   SQLDMO.Restore objRestore = new SQLDMO.RestoreClass();
   SQLDMO.SQLServer objSQLServer = new SQLDMO.SQLServerClass();
   try
   {
    objSQLServer.LoginSecure = false;
    objSQLServer.Connect("localhost", "sa", "");
    objRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
    objRestore.Database = "数据库名称";
    objRestore.Files = @"c:/数据库名称.bak";
    objRestore.FileNumber = 1;
    objRestore.ReplaceDatabase = true;
    objRestore.SQLRestore(objSQLServer);
   result=true;
   }
   catch
   {
   result=false;
    throw;
   }
   finally
   {
    objSQLServer.DisConnect();
   }
return result;
  }

 对了,在还原的时候,要先杀死还原的数据库所关联的所有用户线程,然后再进行恢复,这样就不会存在因为数据库独占性引起的恢复错误。首先要杀掉库的所有进程,不过如何杀死进程的具体方法我也不会,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值