sqlserver 2008 备份恢复实战

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 2008 备份恢复实战相关的知识,希望对你有一定的参考价值。

一 内容说明

sqlserver数据库中最重要的是数据库备份和还原,当数据库出现灾难性破坏的时候,需要有最佳的恢复计划,恢复数据和恢复方案。对于已经实施完数据库备份的数据库,需要定期组织恢复演练,以便在灾难故障来临时,可以快速的恢复。

下面介绍了备份策略制定,恢复计划,还原计划。

还原主要有以下几种组合(根据自己实际情况选择):

  1. 完整恢复
  2. 完整恢复+差异恢复
  3. 完整恢复+差异恢复+日志事务恢复

二 策略制定

2.1 没有事务日志的情况

由于数据库数据量不是很大,数据库全备每天执行一次

数据库每各半小时,执行一次差异备份

2.2 数据库开启了事务模式

数据库每周星期天凌晨1点,全备数据库

数据库每天18点差异备份

数据库每30分钟,执行一次日志事务备份

三 备份步骤(作业创建)

1.1 全量备份

输入名字: auto_backup_sqlserver ,点击确认,进入作业计划里面。

技术分享

进入 --> 维护计划 --> auto_backup_sqlserver --> "添加子计划"

按照下面方式填写

名称:km_full

说明: 全备 km_full_

计划: 需要选择具体备份策略,参考下一步

技术分享

作业计划属性设置如下:

名称: backup_full

计划类型: 重复执行

频率: 每天,执行间隔1天

每天频率: 执行一次,时间为 1点

技术分享

当作业属性,点击确认后,选择子计划:km_full,拖动 “备份数据库任务” 到子计划 任务窗体,然后 双机 “备份数据库任务”任务框,出现 备份数据库 任务 设置选项

连接:本地服务器连接

备份类型: 完整

数据库: 选择需要备份的数据库后,这里会变为 特定数据库字样

备份目录: 选择备份目录的文件夹 , 注意:这里全备,可以写full字样,方便清理

勾选验证备份完整性

技术分享

1.2 记录清除

添加清理历史计划,选择 清理历史记录 任务,到窗体里面,如下图

技术分享

选择清除备份历史记录的优先级,点击 备份数据库 任务 选择--“添加优先约束(P)”

技术分享

根据需要 先备份,然后在删除 历史记录,如下图

技术分享

双机 清除历史记录任务,会出现 清除历史记录任务的选项,按照下面方式设置选择8周以后的历史记录删除

技术分享

1.3 过期数据清除

添加 清除维护任务,从面板里面拖 清除维护任务到主窗体里面,如下图:

技术分享

双机或者邮件点击 清除维护任务,如下图

技术分享

出现 清除维护任务 属性设置对话框

设置 文件夹: c:\bak

文件扩展名: full

删除文件: 4周

技术分享

1.4 差异备份

点击 添加子计划,出现下面对话框:

名称: km_diff

说明: km_diff

计划: 需要点击然后日历控件设置

技术分享

点击日历空间,出现 差异备份的配置对话框

计划类型: 重复执行

执行频率: 每天

执行时间: 1:00:00

技术分享

在主窗体里面,拖动备份数据库 任务 ,然后右键点击编辑,出现下面对话框,完成配置后,点击确定

备份类型: 差异

数据库: 选择需要差异备份的数据库,选择完毕后,这里会出现 特定数据库

勾选 为每个数据库创建备份文件

备份文件扩展名: diff

勾选 验证备份完整性

技术分享

1.5 差异备份记录清除

从工具箱里面 拖出 清除历史记录 任务,右键编辑,按照如下配置保存8周

技术分享

设置 备份数据库任务成功后,然后清除历史记录,右键点击 备份数据库任务,选择添加优先约束

技术分享

设置控制流

连接自: 备份数据库任务

连接至: 清除历史记录任务

技术分享

设置完成控制流后,会出现一个箭头指向,如下图

技术分享

1.6 差异备份过期数据清除

设置完 历史数据过期清除后,然后设置过期数据清理,从工具箱 拖动 清除维护任务到 主窗体

设置目录:c:\bak

设置文件扩展名: diff

勾选包括以及子文件夹

保留: 4周

技术分享

设置控制流,从工具箱选择 清除维护任务 ,然后右击 编辑 清除历史记录任务,在控制流中,选择

连接自:清除历史记录任务

连接至: 清除维护任务

技术分享

设置完毕后,如下图:

技术分享

1.7 事务日志备份

点击 工具箱-- 备份数据库任务--右键点击 编辑,出现 备份数据库任务属性卡

备份类型: 事务日志

数据库: 选择指定需要备份的数据

勾选为每个数据库创建子目录

文件扩展名: trn

勾选验证备份完整性

技术分享

1.8 事务日志历史清理

从工具箱-拖动 清除历史记录任务--右键编辑,根据下面设置,保留10周,优先级为先备份数据库任务,然后执行清理数据库记录,(控制流优先级设置,参考备份数据库部分)

技术分享

1.9 事务日志过期数据清理

从工具箱里面 拖动 清除维护任务,右键编辑,按照如下设置后,设置优先级,先历史记录清理,然后清除维护任务

文件夹:c:\bak

扩展名: trn

保留日期:2周

技术分享

四 还原步骤

2.1 全量还原

全量恢复的时候,右键点击需要还原的数据库 任务--还原--数据库/文件或文件组,如下图

技术分享

选择了还原后,会出现 还原数据库的选项卡界面,选择"源设备"的路径,如下图,组件 是 数据库 类型是 完整,勾选 这个还原数据库的记录,如下图:

技术分享

设置完常规后,选择 选项,这里选择:

勾选现有数据库

选择 回滚提交的事务,使数据库处于可以使用的状态。无法还原其它事务日志(L)

技术分享

问题,当出现下面错误的时候,说明有人正在使用数据库,没有办法还原数据库,这个时候,需要把数据库设置到单用户模式。

技术分享

设置数据库为单用户模式

右键点击"数据库属性"--"选项"

限制访问: single_user

技术分享

2.2 差异还原

差异还原的时候,需要注意,先还原完整的数据库,还原完整数据库的时候,需要注意选择"

不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志。(RESTORE WITH NORECOVERY)

"

技术分享

先还原完完整数据库后,然后再右键点击数据库,任务--还原,在源设备里面,选择需要恢复的差异数据文件,点击勾选

技术分享

点击选项卡,按照下面要求选择,最后点击确定,就可以完成 差异恢复了。

技术分享

2.3 事务日志还原

还原事务日志和还原完整数据库一样的步骤,只是在选择 源设备的时候,需要选择需要恢复的 事务日志文件,如下

技术分享

选择“回滚未提交的事务,使数据库处于可以使用状态。无法还原其他事务日志(L)。(RESTORE WITH RECOVERY)”,表示没有其它需要恢复的差异或日志备份文件了。这里由于后面还有2个事务日志文件要恢复,所以选择了 “不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志”

注:只要还要还原,就一定要选择”不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志“,否则还原差异备份或日志备份就会出现以上的错误。

技术分享

需要说明的是,如果后面还有需要恢复的日志事务文件,数据库的状态,会是 :(正在还原….)

技术分享

当还原了所有的日志事务文件,最后一个事务日志需要选择 :“回滚未提交的事务,使数据库处于可以使用状态。无法还原其他事务日志(L)。(RESTORE WITH RECOVERY)”

然后点击确认,就恢复完成了。

技术分享

以上是关于sqlserver 2008 备份恢复实战的主要内容,如果未能解决你的问题,请参考以下文章

SQLServer2008数据库怎样备份还原和数据恢复

如何在 SQL Server 2014 中从 SQL Server 2008 R2 恢复备份?

怎么把sql server 2008 备份文件bak还原?

如何在 SQL Server 2008 中恢复 SQL Server 2014 备份

SQLServer2008服务器数据库没有备份被分离 还分离失败,能恢复吗?

SQLServer 2008以上误操作数据库恢复方法——日志尾部备份