Mssql企业实战之数据库恢复
admin
2023-06-07 12:21:49
0

数据库完整还原的目的是还原整个数据库。 整个数据库在还原期间处于脱机状态。在数据库的任何部分变为联机之前,必须将所有数据恢复到同一点,即数据库的所有部分都处于同一时间点并且不存在未提交的事务。

在完整恢复模式下,数据库可以还原到特定时间点。时间点可以是最新的可用备份、特定的日期和时间或者标记的事务。

还原完整数据库步骤

通常,将数据库恢复到故障点分为以下几个步骤:

1. 备份活动事务日志(称为尾部日志)。此操作将创建结尾日志备份。如果活动日志不可用,则该日志部分的所有事务将全部丢失。

注:在完整恢复模式和大容量日志恢复模式下,如果要恢复数据到故障点,必须备份活动事务日志。

2. 还原最新完整数据库备份而不恢复数据库。(with norecovery)

3. 如果存在差异备份,还原最新的差异备份数据而不恢复数据库。(with norecovery)

4. 从还原备份后创建的第一个事务日志备份开始,使用norecovery依次还原日志。

5. 恢复数据库(RESTORE DATABASE database_name WITH RECOVERY)。此步骤也可以与还原上一次日志备份结合使用。

6. 数据库完整还原通常可以恢复到日志备份中的某一时间点或标记的事务。但是,在大容量日志恢复模式下,如果日志备份包含大容量更改,则不能进行时点恢复。

本文以下的所有操作,都是建立在之前存在备份的情况下进行。

数据库完整备份恢复之SQL Server Management Studio

备份日志尾部

在完整恢复模式或大容量日志恢复模式下,使用日志结尾以捕获尚未备份的活动事务日志,可以防止工作丢失并确保日志链的完整性,同时也可以把数据恢复到故障点时的数据。

结尾日志备份与任何其他日志备份类似,使用 BACKUP LOG 语句执行。建议您在下列情况下执行结尾日志备份

如果数据库处于联机状态并且您计划对数据库执行还原操作,则请在开始还原操作之前,使用 WITH NORECOVERY 备份日志尾部

BACKUP LOG 数据库名称 TO <备份设备> WITH NORECOVERY

注:为防止出错,必须使用 NORECOVERY 选项。

注:每当您准备对数据库继续执行还原操作时,请使用 NORECOVERY。NORECOVERY 使数据库进入还原状态。这确保了数据库在结尾日志备份后不会更改。

除非同时指定 NO_TRUNCATE 或 COPY_ONLY 选项,否则将截断日志。

除非数据库受损,否则不建议使用 NO_TRUNCATE

2)如果数据库处于脱机状态并且无法启动。

尝试执行结尾日志备份。由于此时不会发生任何事务,因此 WITH NORECOVERY 是可选的。如果数据库受损,请使用 WITH CONTINUE_AFTER_ERROR,如下所示:

BACKUP LOG 数据库名称 TO < 备份设备> WITH CONTINUE_AFTER_ERROR

如果数据库受损(例如,数据库无法启动),则仅当日志文件未受损、数据库处于支持结尾日志备份的状态并且不包含任何大容量日志更改时,结尾日志备份才能成功。

关于结尾日志备份,请参考:https://technet.microsoft.com/zh-cn/library/ms179314(v=sql.105).aspx

新建目标数据库

开始--所有程序--Microsoft SQL Server 2008 R2--SQL Server Management Studio ,打开登陆mssql

Mssql企业实战之数据库恢复

展开 服务器---数据库,右击数据库,选择新建数据库(本例中之前的备份的数据库名称是Pine9_2016).

Mssql企业实战之数据库恢复

修改数据库存放路径和文件夹,推荐磁盘分区盘符和文件夹名称能跟原来的数据库一致,减少恢复过程中的麻烦,当然不一致也是可以的。我这里修改成跟原服务器的路径一模一样

记住这里的数据库名称,一定要与之前的数据库名称保持一样,否则,数据库恢复之后,开发还需要去调整配置,增加复杂度。

Mssql企业实战之数据库恢复

点击按钮,确认。

Mssql企业实战之数据库恢复

至此,已经看到了Pine9_2016,代表数据库已经新建完成。

完整备份恢复

点击选中 Pine9_2016,右击它,定位到任务--还原--数据库,打开

Mssql企业实战之数据库恢复

选择 常规--还原的源--选上,源设备,点击 右边的浏览,

Mssql企业实战之数据库恢复

点击 添加 按钮

Mssql企业实战之数据库恢复

定位备份文件的位置,

修改 所选路径和文件名,本例中备份设备是存放在局域网中的一台共享服务器上,所以,修改路径如下图:

文件名,选择完整备份的文件。

Mssql企业实战之数据库恢复

点击 确定

Mssql企业实战之数据库恢复

点击 确定

选择用于还原的备份集,勾选 完整备份的文件备份设备,如下图:

Mssql企业实战之数据库恢复

切换到 左上角 “选项” 选项页

勾选 覆盖现有数据库 和 不对数据库执行任何操作,不会滚提交的事务。可以还原其他事务日志(restore with norecovery)

Mssql企业实战之数据库恢复

覆盖现有数据库

指定还原操作覆盖当前使用您指定的数据库名称的数据库文件。即使从其他数据库还原到现有的数据库名称,现有数据库文件也将被覆盖。选择此选项等效于在 RESTORE 语句 (Transact-SQL) 中使用 REPLACE 选项,建议谨慎使用,因为本例是新的数据库,为 保证数据库的一致性,我选择了此项,记住后续的差异备份恢复不应该选择此项。

保留复制设置

将已发布的数据库还原到创建该数据库的服务器之外的服务器时,保留复制设置。此选项只适用于在创建备份时对数据库进行了复制的情况。

仅在选择“回滚未提交的事务,使数据库处于可以使用的状态”选项时,此选项才可用

还原每个备份之前进行提示

指定了在还原了每个备份之后,将显示“继续还原”对话框,询问你是否继续还原顺序。通常用于备份暂停,更换磁带或者其他介质。

限制访问还原的数据库

使还原的数据库仅供 db_ownerdbcreatorsysadmin 的成员使用。

选择此选项等效于在 RESTORE 语句中使用 RESTRICTED_USER 选项

点击按钮 “确定”,开始进入数据恢复状态。

Mssql企业实战之数据库恢复

出现上图中左下角的 “正在执行”,这个时候,我们只需要静静等待,直到出现如下提示:

Mssql企业实战之数据库恢复

Mssql企业实战之数据库恢复

到此,数据库的完整备份恢复已经完成,是不是代表数据库就已经恢复完成了,有些新手就以为完整备份就相当于恢复了所有的数据以及日志,有经验的管理员,会发现这是不够的,完整备份只是代表过去某个时间点的数据,而不是最新的数据,要真正的完全恢 复数据,需要执行完整备份之后的差异备份恢复。

差异备份恢复

点击 服务器,展开数据库,右击Pine9_2016(正在还原),任务--还原--数据库

Mssql企业实战之数据库恢复

定位 “常规” 选项页,选中 “源设备”,点击右边的浏览小按钮,Mssql企业实战之数据库恢复

Mssql企业实战之数据库恢复

点击 添加

Mssql企业实战之数据库恢复

所选路径,是你数据库备份的位置; 文件名是差异备份的备份文件名,这里定义的差异备份后缀是.diff,也可以自己定义的

记住,这里的差异备份文件,一定要是最新的一份差异备份文件奥。

点击 “确定”

Mssql企业实战之数据库恢复

点击 “确定”选择用于还原的备份集,勾选 备份设备,

Mssql企业实战之数据库恢复

左上角,定位到 “选项” 选项页,选中 “不对数据库执行任何操作,不会滚未提交的事务。可以还原其他事务日志(A)。(Restore with norecovery)“

Mssql企业实战之数据库恢复

点击 确定

Mssql企业实战之数据库恢复

Mssql企业实战之数据库恢复

点击 ”确定”

前文已经描述过,恢复的步骤,接下来,进行事务日志备份还原。

事务日志备份还原

点击 服务器,展开数据库,右击Pine9_2016,任务--还原--事务日志,

Mssql企业实战之数据库恢复

“常规“ 选项页,选中”从文件或磁带“,点击右边浏览图标,

Mssql企业实战之数据库恢复

点击 添加

Mssql企业实战之数据库恢复

所选路径,是备份文件存在的路径

文件名,是事务日志备份的文件名,记住,这里的备份文件,是上面的差异备份之后的第一个事务日志开始,逐一进行恢复。

点击 确定

Mssql企业实战之数据库恢复

点击 确定

Mssql企业实战之数据库恢复

选中 左上角,”选项”选项页

Mssql企业实战之数据库恢复

点击 确定

Mssql企业实战之数据库恢复

Mssql企业实战之数据库恢复

至此,恢复已经完成。

注意:对于事务日志,在最新的差异备份之后的所有的事务日志,都需要进行上述步骤,以保证数据的完整性。

结尾日志的恢复方法,跟事务日志的恢复方法一样。

恢复数据库

到这里,只剩下最后一步了,恢复数据库。

Mssql企业实战之数据库恢复

执行如下语句:

use master

RESTORE DATABASE Pine9_2016 WITH RECOVERY;

Go

注意:Pine9_2016 是数据库名,根据你自己的实际环境,修改成你自己的实际环境下的数据库名。

到此,数据库的恢复,已经完整,可以接入系统,正常访问数据库了

数据库完整备份恢复之T-SQL

首先要新建数据库,在这里我不再说明,

还原的基本步骤

1) RESTORE DATABASE database FROM full database backup WITH NORECOVERY;

2) RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY;

3) RESTORE LOG database FROM log_backup WITH NORECOVERY;

对于其他每个日志备份,重复此还原日志步骤。(包含结尾日志也是一样)

4) RESTORE DATABASE database WITH RECOVERY;

在这里我直接把数据库的SQL语句贴出来,大家修改成自己实际需要的,再粘贴到查询管理器里面直接执行即可。

完整备份恢复

RESTORE DATABASE [Pine9_2016] FROM DISK = N'\\192.168.10.78\mssql_backup\Pine9_2016_backup_2016_08_06_023000_9215269.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 10

GO

差异备份恢复

RESTORE DATABASE [Pine9_2016] FROM DISK = N'\\192.168.10.78\mssql_backup\Pine9_2016_backup_2016_08_07_023001_2750767.diff' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10

GO

事务日志备份恢复

RESTORE LOG [Pine9_2016] FROM DISK = N'\\192.168.10.78\mssql_backup\Pine9_2016_backup_2016_08_06_030000_6901599.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10

GO

所有的事务日志,重复以上步骤。包括结尾日志也是一样

恢复数据库

use master

RESTORE DATABASE Pine9_2016 WITH RECOVERY;

Go

如果顺利,恭喜,数据库已经恢复完成了。

相关内容

热门资讯

非常时刻,任正非突然亮相《新闻... 作者 | 布语发现没有,任正非最近在《新闻联播》中公开亮相了,仅仅10秒的镜头,信号却很不寻常。5月...
投喂狮子时观光车车门突然打开!... 5月21日,北京八达岭野生动物园猛兽区发生观光游览车车门意外开启事件,引发社会高度关注。据新京报报道...
重庆电视机安装费 如果是小米或者是索尼的电视机,在安底座的时候是不会收费的,但是如果是安装架子或者是墙壁的费用是大概会...
空调安装费是多少钱 空调安装费用是由多个因素决定的,包括空调的类型、安装位置、管路长度、安装人员等等。因此,空调安装费用...
通风管道安装费多少钱一平米 通风管道的安装费用会受到多种因素的影响,例如管道的材质、直径、长度、安装位置、安装难度等等。因此,很...
问一问欧普led吸顶灯坏了怎么... 您好,欧普led吸顶灯是知名的品牌,在市场上是非常常见的,而且欧普这个品牌在业界的口碑也是非常的好,...
led吸顶灯关了还微亮怎么解决 LED 吸顶灯关了还微亮可能是由以下原因引起的:1. 电源问题:灯具的电源可能存在漏电或电容放电等问...
“用戒指套住你洗碗时沾满泡沫的... 近日,福建福州地铁4号线车厢内的一组宣传标语引起不少乘客注意。网友发布的图片显示,标语和插图内容多围...
对标Reddit,Meta悄然... IT之家 5 月 24 日消息,Meta 公司悄然推出一款名为“Forum(论坛)”的独立群组应用。...
广西人大成立人工智能联络小组 ... 南宁5月24日电 (陈秋霞)5月23日,广西壮族自治区人大常委会涉侨工作人大代表联系点人工智能联络小...