数据库还原 数据库恢复数据

概述今天主要分享sqlserver的完整备份、差异备份、增量备份,内容很多。我先介绍一下相关概念。…

01相关概念

完整备份:

备份所有选定的文件夹并不取决于文件的归档属性来确定要备份哪些文件。(在备份过程中,任何现有标记都将被清除,每个文件都将被标记为已备份,换句话说,存档属性将被清除)。完整备份也称为完全备份。

差异备份:

差异备份适用于完全备份:备份自上次完全备份以来更改过的所有文件。(在差异备份过程中,仅备份那些标记的选定文件和文件夹。它不会清除标记,也就是说,它不会在备份后将文件标记为已备份,换句话说,它不会清除存档属性)。

增量备份:

增量备份是指最后一次备份(不管是哪种备份):备份自最后一次备份以来发生变化的所有文件。(在增量备份过程中,仅备份标记的选定文件和文件夹。它清除标记,即在备份后标记文件,换句话说,清除存档属性。)

事务日志备份:

在特定事务日志备份之前执行的完整数据库备份和上次差异备份(如果有)。在完整数据库备份之后执行的所有事务日志备份,或者在特定事务日志备份之前执行的差异备份(如果还原了差异备份)。

部分备份:通过指定READ_WRITE_FILEGROUPS创建的备份称为“部分备份”。在简单恢复模式下,只读文件组只允许文件组备份。还原数据备份的类型:数据库备份、部分备份或文件备份。对于数据库备份或部分备份,日志备份序列必须从数据库备份或部分备份的结尾继续。对于一组文件备份,日志备份序列必须从整组文件备份的开头继续。

文件备份:“文件备份”包含一个或多个文件(或文件组)中的所有数据。

日志链:一个连续的日志备份序列称为“日志链”。日志链从数据库的完整备份开始。通常,只有在第一次备份数据库时,或者在恢复模式从简单恢复模式切换到完整恢复模式或大容量日志恢复模式后,才会启动新的日志链。除非您在创建完整数据库备份时选择覆盖现有备份集,否则现有日志链将保持不变。如果日志链保持不变,则可以从媒体集中的任何完整数据库备份中还原数据库,然后可以还原相应恢复点之前的所有后续日志备份。恢复点可以是最后一次日志备份的结束点,也可以是任何日志备份中的特定恢复点。

02备份方案例子

一个站点在周日晚上执行完整的数据库备份。一天中每4小时创建一个事务日志备份集,并用当天的备份覆盖前一天的备份。每天晚上都会进行差异备份。如果数据库中的数据磁盘在星期四上午9:12出现故障,站点可以:

1)备份当前事务日志;出现了故障。如何备份当前事务日志?)

2)从周日晚上开始恢复数据库备份;

3)恢复周三晚上的差异备份,将数据库前滚到这一刻;

4)恢复凌晨4点到8点的事务日志备份,将数据库前滚到上午8点;

5)失败后恢复日志备份。这将导致数据库前滚到故障时刻。

03还原步骤

创建一个名为TestBackup的数据库和一个名为Table1的表。这个时候,做一个完整的备份。备份文件为:TestBackupDB-full . bak;;然后创建Table2并进行差异备份,备份文件为:TestBackupDB-diff . bak;;然后创建Table3,备份事务日志(如果数据库的恢复模式设置为简单,在备份类型选项中看不到事务日志),备份文件为:TestBackupDB-Log . bak;;

创建一个名为TestBackup2的数据库来测试TestBackup数据库的备份文件的恢复情况。

数据库还原 数据库恢复数据

创建库结构创建库结构

将恢复以下三个备份文件:TestBackupDB-full.bak、TestBackupDB-diff.bak和TestBackupDB-log.bak:

步骤1:恢复完整的备份文件TestBackupDB-full.bak

第二步:恢复差异备份文件TestBackupDB-diff.bak,如上图。

第三步:还原事务日志备份文件TestBackupDB-log.bak,进入事务日志还原操作界面;指定要恢复的事务的时间(默认情况下,恢复过程中的恢复状态始终是RESTORE WITH RECOVERY,因此此处不提及此选项)。

备份的过程之前已经介绍过了,这里就不多做介绍了,主要介绍恢复的整个步骤。后面会分享更多关于devops和DBA的内容,感兴趣的朋友可以关注一下~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论