宝哥软件园

SQLServer2008数据库备份还原和数据恢复图形教程

编辑:宝哥软件园 来源:互联网 时间:2021-08-01

类型:数据库类大小:363.9M语言:中文评分:4.5标签:立即下载。在完全恢复模式或大容量日志恢复模式下,必须先备份活动事务日志(称为日志尾),然后才能在SQLServerManagementStudio中还原数据库。有关更多信息,请参见如何备份事务日志。要恢复加密的数据库,您必须能够访问用于加密数据库的证书或非对称密钥。没有证书或非对称密钥,数据库无法还原。

了解数据库备份和事务日志备份

数据库备份和日志备份是数据库维护的日常工作。备份的目的是在数据库出现故障或损坏时,将数据库和事务日志文件恢复到最新的时间点,从而将损失降到最低。

数据库后备

数据库备份可以手动备份和语句备份

一、手动备份数据库

1.右键单击选择要备份的数据库-任务-备份

在“常规选项”页面上,您可以选择备份类型是完整数据库备份还是差异数据库备份

2.单击添加选项并选择数据库文件的存储路径

注意文件名,记得加后缀。bak,恢复时很容易找到

3.您也可以在“选项”页面上追加到现有备份集或覆盖所有现有备份集,还可以选择“备份”来验证完整性(推荐),还可以选择是否压缩备份。

二.语句备份数据库

使用mastergoBACKUP DATABASE[test]TO DISK=N ' d : Microsoft SQL Server MSSQL 10。MSSQL server MSSQL Backup test . bak ' WITH NOFORMAT,NOINIT,NAME=N'test-完整数据库备份',skip,norewind,nounload,stats=10go

数据库日志备份

首先需要注意的是,数据库日志的备份是基于完整的数据库备份,也就是说在备份数据库日志之前,必须先对数据库进行完整的备份,因为这会涉及到坚持检查点lsn,这也是本文的重点。

I .手动备份数据库日志

1.右键单击数据库-任务-备份-选择备份类型(事务日志)

2.单击添加添加日志文件备份存储路径

3.与完整数据库备份一样,您也可以选择覆盖现有备份集或将其附加到现有备份集。现在覆盖现有备份集,验证完整性,然后确认备份

二.语句备份数据库事务日志

将日志[测试]备份到磁盘=n' d: test.trn '不带格式,init,name=n '测试-事务日志备份',跳过,不倒带,nounload,stats=10go

数据库恢复

右键单击数据库-恢复数据库-添加要恢复的数据库文件路径

您可以在还原源选项中选择“源数据库”和“源设备”。1.“选择源数据库”工具将自动显示该数据库以前的一些备份,然后直接选择要还原的数据库备份集。

2.选择源设备,然后单击.添加要还原的数据库文件

2.单击“确定”恢复数据库

数据库恢复

数据库恢复的前提是1。完整的数据库备份2。包含此完整数据库备份的事务日志备份3。完整备份之间也可能有几个差异备份

数据库维护空间一直是一个令人头疼的问题,尤其是对于大型数据库,每天的日志文件增长巨大,很多数据库管理员会定期收缩数据库日志文件,但是经常收缩后日志文件无法缩减,因为有很多活动日志无法收缩使用

DBCC LOGINFO('数据库名称')我们看到状态=0的日志,它代表已经备份到磁盘的日志文件;状态为2的日志尚未备份。当我们收缩日志文件时,收缩的空间实际上是状态=0的空间。如果日志物理文件不能缩减,我们肯定可以在这里看到很多状态=2的记录

解决方法:1。您可以分离数据库进行收缩,然后手动删除日志文件,然后附加数据库,数据库将生成一个非常小的日志文件(不建议使用这种方法)

2.右键点击数据库出来,选择“属性”-“选项”,将恢复模式改为“简单”,然后用收缩工具说日志文件收缩到很小。记得收缩后将恢复模式更改为“完成”。

也可以用语句处理(dbname是要收缩的数据库的名称,dbname_log是要收缩的数据库的逻辑日志名称)

使用[master]go alter database [dbname]设置恢复简单且无等待go alter database [dbname]设置恢复简单-简单模式GO USE[dbname]GO DBCC SHRINKFILE(N ' dbname _ log ',11,截断)GO使用[master]GO ALTER DATABASE[dbname]设置恢复完整且无等待ALTER DATABASE[dbname]设置恢复完整

第一种方法不被赞同。首先,数据库的分离和附加有时会破坏数据库,使数据库无法恢复。其次,在线数据库不允许分离。

对于第二种方法,slq2008是一种收缩日志文件的方法,但是这种方法不能使用太频繁,因为更改数据库恢复模式会截断事务日志文件,所以在使用事务日志文件进行恢复时,检查点不能包含数据库文件,当您想要备份事务日志时,会再次提示您需要对数据库进行完整备份。

比如昨晚做了完整备份,然后还做了日志备份(日志没有提前截断),然后每小时做一次差异备份。最新的差异备份时间点是14点。如果数据库此时错误地修改了数据,您可以立即备份日志文件,将数据库恢复到日志备份开始之前到日志备份结束的任何时间点。

如果此时修改数据库模式,截断日志进行收缩,那么你的数据只能恢复到昨晚备份的日志的备份时间之前的任意时间点,也就是今天做的数据库更改无法再恢复,因为日志文件已经被截断了,不知道这个解释是否清楚。

因为日志文件的检查点(lsn)是连续的,所以每个日志备份都基于以前的备份,并且lsn范围还包括数据库文件的lsn。只有当日志文件的lsn包括数据库文件的lsn时,才能回滚数据库文件。

上图中有三个备份文件,一个完整备份,一个差异备份和一个日志备份。您可以观察完整备份的第一个lsn和最后一个lsn,以及检查点

第二个差异备份文件的第一个lsn和最后一个lsn,以及最后一个日志备份的检查点、第一个lsn和最后一个lsn包含前两个备份文件的lsn。在这种情况下,数据库可以恢复到日志文件备份之前的任何时间点,如果日志文件不包含数据库文件的最后一个lsn,则无法恢复。

结论

在数据库维护过程中,数据库的日常备份是必要的。毕竟这是减少损失最有效的方法。希望大家积极评论。因为能力有限,还是希望大家能把整篇文章写下来。呵呵,希望我的意见能对大家有所帮助。

更多资讯
游戏推荐
更多+