今天一不冷静就把sqlserver数据库初始化了,在网上找了半天发现了几篇帖子,受益非浅,记录下
DB2中可以使得数据库回复到指定的时间点,SQL Server数据库的Recovery Model为full 或者Bulk copy的时候,是可以从日志来恢复数据库的。实际上日志中记录的一条一条的transact sql语句,恢复数据库的时候会redo这些sql语句。        前提条件:myBBS是数据库test中的一个表,数据库test的Recovery Model为Full,Auto Close,Auto Shrink两个选项未选中。数据库test的data files和log files均为默认的自动增长状态。
A:2004/10/13,16:00进行数据库备份,backup database test to disk='d:\db\1600.bak' with init
B:2004/10/14,13:00对数据库进行了update,delete等操作;
C:2004/10/15,18:00使用delete mybbs where id>300时,语句误写成delete mybbs,因而删除了表mybbs中的所有数据。
现在在C点,C点对数据库进行了误操作,我们希望数据库能够恢复到C之前的状态,比如恢复到10月15日17:59分的状态。
要恢复数据库B点,使用的是A点备分的数据库1600.bak;而使用的日志备分是最新的备分1820.logs;因而进行如下操作:
--备分日志:
BACKUP LOG test TO DISK='d:\1820.logs' WITH INIT
--恢复数据库1600.bak,使用WITH NORECOVERY参数:
RESTORE DATABASE test from disk='d:\db\1640.bak' WITH NORECOVERY
--使用日志恢复数据库到10月15日17:59分:
RESTORE LOG test     FROM disk='d:\1820.logs' WITH RECOVERY,STOPAT='10/15/2004 17:59'
上面的三条Transact SQL语句的对应过程:
1.恢复数据库到A点;
2.执行A-B之间的log记录,把数据库恢复到B点.
这样就恢复数据库到了指定的时间点。如果恢复不成功,可能的原因是:1.未使用正确的备分数据库;2.数据库选项选中了Auto Shrink.
Server 2005 联机丛书(2007 年 9 月)

执行数据库完整还原(完整恢复模式)
数据库完整还原的目的是还原整个数据库。整个数据库在还原期间处于离线状态。在数据库的任何部分变为在线之前,必须将所有数据恢复到同一点,即数据库的所有部分都处于同一时间点并且不存在未提交的事务。
在完整恢复模式下,数据库可以还原到特定时间点。时间点可以是最新的可用备份、特定的日期和时间或者标记的事务。

安全说明:
建议您不要从未知源或不可信源附加或还原数据库。这些数据库可能包含执行非预期 Transact-SQL 代码的恶意代码,或通过修改架构或物理数据库结构导致错误。使用来自未知源或不可信源的数据库前,请在非生产服务器上针对数据库运行 DBCC CHECKDB,然后检查数据库中的代码,例如存储过程或其他用户定义代码。
还原完整数据库

通常,将数据库恢复到故障点分为下列基本步骤:
备份活动事务日志(称为日志尾部)。此操作将创建尾日志备份。如果活动事务日志不可用,则该日志部分的所有事务都将丢失。
重要提示:
在大容量日志恢复模式下,备份任何包含大容量日志操作的日志都需要访问数据库中的所有数据文件。如果无法访问该数据文件,则不能备份事务日志。在这种情况下,您必须手动重做自最近备份日志以来所做的所有更改。
 
 
有关详细信息,请参阅尾日志备份。
还原最新完整数据库备份而不恢复数据库 (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY)。
如果存在差异备份,则还原最新的差异备份而不恢复数据库 (RESTORE DATABASE database_name WITH NORECOVERY)。
从还原备份后创建的第一个事务日志备份开始,使用 NORECOVERY 依次还原日志。
恢复数据库 (RESTORE DATABASE database_name WITH RECOVERY)。此步骤也可以与还原上一次日志备份结合使用。
数据库完整还原通常可以恢复到日志备份中的某一时间点或标记的事务。但是,在大容量日志恢复模式下,如果日志备份包含大容量更改,则不能进行时点恢复。有关详细信息,请参阅将数据库还原到备份中的某个时间点。
还原整个数据库时,应使用单一还原顺序。下面的示例说明还原顺序中用于将数据库还原到故障点的数据库完整还原方案的关键选项。还原顺序由通过一个或多个还原阶段来移动数据的一个或多个还原操作组成。将省略与此目的不相关的语法和详细信息。
数据库将还原并前滚。数据库差异用于减少前滚时间。此还原顺序用于避免丢失工作;上次还原的备份为尾日志备份。
还原顺序的基本 RESTORE 语法是:
RESTORE DATABASE database FROM full database backup WITH NORECOVERY;
RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY;
RESTORE LOG database FROM log_backup WITH NORECOVERY; 对于其他每个日志备份,重复此还原日志步骤。
RESTORE DATABASE database WITH RECOVERY;
示例

对于以下示例,AdventureWorks 示例数据库已设置为在数据库备份之前使用完整恢复模式。此示例将创建 AdventureWorks 数据库的尾日志备份。接下来,示例将还原较早的完整数据库备份和日志备份,然后还原尾日志备份。示例将在最后的单独步骤中恢复数据库。

注意:
此示例使用在完整数据库备份的“在完整恢复模式下使用数据库备份”部分中创建的数据库备份和日志备份。
 
 
此示例以 ALTER DATABASE 语句开头,该语句将恢复模式设置为 FULL。
复制代码 USE master; --Make sure the database is using the full recovery model. ALTER DATABASE AdventureWorks SET RECOVERY FULL; GO --Create tail-log backup. BACKUP LOG AdventureWorks TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak''Z:\SQLServerBackups\AdventureWorks.bak' WITH NORECOVERY; GO --Restore the full database backup (from backup set 1). RESTORE DATABASE AdventureWorks   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'   WITH FILE=1,     NORECOVERY; --Restore the regular log backup (from backup set 2). RESTORE LOG AdventureWorks   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'   WITH FILE=2,     NORECOVERY; --Restore the tail-log backup (from backup set 3). RESTORE LOG AdventureWorks   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'   WITH FILE=3,     NORECOVERY; GO --recover the database: RESTORE DATABASE AdventureWorks WITH RECOVERY; GO
恢复到故障点

还原完整数据库备份
sqlserver 还原到时间点
www.firnow.com    时间 : 2008-07-06  作者:佚名   编辑:本站 点击:  632 [ 评论 ]
-
-
rs1_mainContentContainer_ctl25" |ctl00_rs1_mainContentContainer_ctl25',this);" href="http://msdn.microsoft.com/zh-cn/library/ms189895.aspx">如何还原数据库备份 (Transact-SQL)
如何还原数据库备份 (SQL Server Management Studio)
如何通过现有的数据库备份创建新的数据库 (SQL Server Management Studio)
还原差异数据库备份
如何还原差异数据库备份 (Transact-SQL)
如何还原差异数据库备份 (SQL Server Management Studio)
还原事务日志备份
还原数据备份之后,必须还原所有后续的事务日志备份,然后再恢复数据库。
如何应用事务日志备份 (Transact-SQL)
如何还原事务日志备份 (SQL Server Management Studio)
使用 SQL Server 管理对象 (SMO) 还原备份
SqlRestore
恢复到时间点

在完整恢复模式下,数据库可以还原到日志备份内的特定时间点。时间点可以是特定的日期和时间、标记的事务或日志序列号 (LSN)。有关详细信息,请参阅将数据库还原到备份中的某个时间点。
对 SQL Server 早期版本中备份的支持

在 SQL Server 2005 中,您可以还原使用 SQL Server 7.0 版、SQL Server 2000 或 SQL Server 2005 创建的数据库备份。但是,SQL Server 2005 无法还原使用 SQL Server 7.0 或 SQL Server 2000 创建的 master、model 和 msdb 备份。此外,包含创建索引操作的 SQL Server 7.0 日志备份无法还原到 SQL Server 2000 或 SQL Server 2005。
SQL Server 2005 使用与 SQL Server 早期版本不同的默认路径。因此,若要从备份还原在 SQL Server 7.0 或 SQL Server 2000 的默认位置中创建的数据库,必须使用 MOVE 选项。有关新默认路径的信息,请参阅 SQL Server 2005 的默认实例和命名实例的文件位置。

注意:
使用 SQL Server 6.5 或早期版本创建的数据库备份采用的格式不兼容,无法在 SQL Server 2005 中还原。有关如何将使用 SQL Server 6.5 或早期版本创建的数据库升级到 SQL Server 2005 的信息,请参阅从 SQL Server 6.5 或更早版本复制数据库。
摘自http://msdn.microsoft.com/zh-cn/library/ms187495.aspx

转载于:https://blog.51cto.com/hndtraveller/319387

sqlserver 还原到时间点相关推荐

  1. sqlserver mysql时间格式化_SqlServer时间格式化

    最近用的SqlServer比较多, 时间 格式化 老是忘记,现整理如下:(来源于网上,具体来源地址忘记了,归根到底MSDN吧) SELECT CONVERT(varchar(50), GETDATE( ...

  2. 如何把高版本的sqlserver 还原到低版本的 sqlserver

    本例为sql2012 还原到sql2008. 要实现的功能是把sql2012的数据库备份到sql2008,数据库名字为Test,并且这两个数据库在不同的电脑中. 微软的软件设计方案基本上都是新版本兼容 ...

  3. sqlserver还原到mysql_SQLSERVER完整数据库还原(简单恢复模式)

    完整数据库还原(简单恢复模式) 数据库完整还原的目的是还原整个数据库. 整个数据库在还原期间处于脱机状态. 在数据库的任何部分变为联机之前,必须将所有数据恢复到同一点,即数据库的所有部分都处于同一时间 ...

  4. sqlserver+mysql时间_SqlServer和mysql的日期函数备忘

    我经常忘记datepart的符号值,记录备忘一下. SqlServer的日期函数 1,首先是3个用到datepart的函数 DATEDIFF(datepart,startdate,enddate) D ...

  5. SQLserver 中时间减,并把结果转换成varchar类型,拼接上字符串

    select cast(datediff(dd,PlanStartDate,PlanEndDate)as varchar(8))+'天' as timesub from [OA_WEB_DB].[db ...

  6. qt连接错误ip的sqlserver超时时间_参数设置导致请求超时案例

    问题现象 晚上版本上线后,发现工号进入首页后页面空白,显示INTERNAL_SERVER_ERROR 过程回顾 通过fiddler抓包,发现某个请求出现500错误 检查应用,was,ihs日志,没有发 ...

  7. sqlserver中时间格式的字符串传递时的注意事项

    传给存储过程的时间格式的字符串时,一定要在字符串两边加上单引号,如下 @starttime. 则应为 ''''+@starttime+''''

  8. SQLServer格式化时间

    select   CONVERT(varchar(10),   getDate(),120)   --不要时间2002-1-1   select   convert(char(8),getdate() ...

  9. SqlServer 日期时间格式 字符串相互转换 及相关函数

    一.sql server日期时间函数 Sql Server中的日期与时间函数 1. 当前系统日期.时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新 ...

最新文章

  1. mysql8.0.12最小化安装_简述MySql8.0编译安装过程
  2. vb error bc30469: 对非共享成员的引用要求对象引用_提问||准备好面向你的对象了吗?...
  3. 美团外卖持续交付的前世今生
  4. JNDI数据源的连接属性
  5. python列表反转的三种方式
  6. (林雷看来13):功能优先,发展和重建同步,业绩后
  7. 英语四级阅读猜题的技巧
  8. 转基因粮食的毒性,首先是因为农药
  9. 凸优化第二章凸集 2.3保凸运算
  10. 智能计算机翻译,爱译网-智能翻译技术-人工智能翻译技术
  11. 工作报告模板下载_免费工作报告图片设计素材_第2页_包图网
  12. Invalid bound statement (not found): shopping_whith_payment.pay.dataobject.PayInfoMapper.insertSelec
  13. 显示硬件发展与视频开发系列(6)----显示标注与视频处理单元(2):VPU
  14. 初学Android,图形图像之使用Canvas,Paint绘图(二十五)
  15. ValueError: cannot reshape array of size xxx into shape (xxx,xxx,xxx)解决方法
  16. JavaScript用Math.asin()求反正弦值
  17. SQL Server 2012卸载步骤
  18. 构成中学计算机教学系统的要素包括,教学策略就是对完成特定的教学目标而采用的教学活动的()要素的总体考虑...
  19. 关于跨域GET、POST请求的小结//////////////////////zzzzzzz
  20. 2.6 情态动词must 被动语态

热门文章

  1. 第五章 循环结构课后反思
  2. Fliptile (dfs+二进制压缩)
  3. 游戏编程入门之绘制动画的精灵(爆炸特效)
  4. markdowndd
  5. 【转】先说IEnumerable,我们每天用的foreach你真的懂它吗?
  6. 在node.js中建立你的第一个HTTp服务器
  7. padding与margin的差别
  8. 冲刺阶段——Day5
  9. Android开发 - 掌握ConstraintLayout(七)辅助线(Guideline)
  10. 从Github开源项目《云阅》所学到的知识