手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Mssql>列表

日志恢复数据到时间点(总结)

来源:互联网 作者:west263.com 时间:2008-04-02
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  工作中的一点小总结希望对大家有点帮助 Powered by jiangchuandong

  一、利用sql语句或存储过程操作

  一种处理中用到的备份还原的存储过程

RESTORE DATABASE MyNwind
FROM MyNwind_1, MyNwind_2
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog1
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog2
WITH RECOVERY, STOPAT = 'Apr 15, 1998 12:00 AM'

--关闭用户进程处理
if @overexist=1 and @killuser=1
begin
declare hCForEach cursor for
select s='kill ' cast(spid as varchar) from master..sysprocesses
where dbid=db_id(@dbname)
exec sp_msforeach_worker '?'
end

  长处:查询分析器直接操作数据库恢复数据,有良好的改装和适用性

  缺点 :需要多次操作熟悉其过程,比较难达到企业安全统计审计需要

  二、使用组件编程来实现

  1、使用sqldmo.dll

  C#语言书写的用于Microsoft SQL Server数据库备份和恢复的类:

using System;

namespace DbService
{
/// <summary>
/// DbOper类,主要实现对Microsoft SQL Server数据库的备份和恢复 ,注意使用了数据库时就必须杀死该进程
/// </summary>
public sealed class DbOper
{
/// <summary>
/// DbOper类的构造函数
/// </summary>
private DbOper()
{
}

/// <summary>
/// 数据库备份
/// </summary>
public static void DbBackup()
{
try
{
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
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;
}
}

/// <summary>
/// 数据库恢复
/// </summary>
public static void DbRestore()
{
try
{
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
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;
}
}
}
}

  长处:SQLDMO是SQLServer中企业管理器所使用的应用程式接口,所以他能够执行很多功能,有良好的改装和适用性,能制作出界面操作良好程式已供使用 。

  缺点 :SQLDMO已封装,制作程式比较难达到企业安全统计审计需要

  2、利用命名空间System.Data; System.Data.SqlClient;进行存储过程编程,来实现数据恢复以前我看过的一个用该命名空间来实现的sqlserver企业管理

  点击下载:codeproject有下载

  长处:有良好的改装和适用性,能制作出界面操作良好程式已供使用,能通过web端口来实现运行存储过程数据恢复备份 。

  缺点 :制作程式比较难达到企业安全统计审计需要

  3、假如是对Yukon CLR有研究的朋友,能够利用这一新特性考虑对此编程,也不失为一种方式

  参考连接:

共2页。 1 2 :

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!