对SQLServer数据库备份与恢复的理解与总结(1)

对SQLServer数据库备份与恢复的理解与总结(1)
可能对很多学生对sql服务器的备份和恢复有一定的了解,也可能经常使用备份和恢复功能,我相信除了DBA之外,我们大多数开发团队只对备份和恢复使用最基本的功能,这只是一个一般的了解,如果它有了更深入的了解。了解它更全面的功能也会更好用,因为经常有中小客户对公司管理上的数据库不了解或掌握不牢固,我们会要求技术人员恢复丢失的数据或硬件损坏的移动数据,或其他情况发生。

首先,从数据库{恢复模式},因为如果设置恢复模式,数据库设置不正确,则无法恢复数据。

SQL Server 2012数据库的备份和还原SQL Server 2008基本没有太大变化,只是还原时间点的选择和相关的UI还原选项做了一个小的变化,备份和恢复的核心没有变,这只是个人的认识和理解,仅供参考,具体以官方文件根据请的。下图是使用SQL Server 2012系统了(SQL Server Management Studio)。

SQL Server 2008数据库恢复模式分为三种类型:完全恢复模式、大容量日志恢复模式、简单恢复模式。
完整的恢复模式。默认的恢复模式。它将完全记录操作数据库的每一步。使用完整的恢复模式,整个数据库可以恢复到特定的时间点。这个时间点可以是最近可用的备份、特定日期和时间或标记事务。

大容量日志恢复模型。它是完整恢复模式的一种补充。简单地说,我们需要减少对大容量操作日志记录,并保存日志文件的空间,如数据导入,批量更新,选择进入等等。例如,一个为成千上万的记录在数据库,在每个插入记录的方式完成恢复操作将被记录在日志中,日志文件变得非常大,大容量日志恢复模型,只有行动的必要的记录,没有记录的所有日志,因此,可以大大提高数据库的性能,但由于日志是不完整的,如果有问题,数据可能无法恢复。因此,我们通常会改变恢复模式一仅在大量数据操作之后才需要大容量日志恢复模式。在处理完数据之后,恢复模式被更改为完全恢复模式。

简单恢复模式。在这种模式下,数据库会自动删除非活动日志,从而简化了备份恢复,但因为没有事务日志备份,它不能恢复到故障点。在一般情况下,这种模式只用于对数据库数据不安全要求的数据库。在这种模式下,数据库可以只做完整备份和差异备份。

当您知道上面的数据库恢复模式时,您通常应该知道为什么设置自己的数据库设置。备份数据库、SQL Server 2008提供了四种备份方式:完整备份、差异备份、事务日志备份、文件和文件组备份。
完整备份:备份整个数据库的所有内容,包括事务日志。备份类型需要更大的存储空间来存储备份文件,备份时间相对较长。在还原数据时,只需要还原备份文件。

差异备份:差异备份是补充完整备份,备份数据,自上次完整备份改变。与完整备份的点相比,差异备份的数据量小于完整的数据备份,并对备份速度比完全备份更快。因此,差异备份一般常用的备份方法。当恢复数据,要恢复完整备份完成之前,然后还原最后一个差异备份,使数据库中的数据可以恢复到相同的内容作为最后一个差异备份。

事务日志备份:事务日志备份只备份日志内容。事务日志记录数据库中的所有变化的最后一个完整备份或事务日志备份后,事务日志记录数据库的变化一段时间,所以一个完整的备份必须在事务日志备份了。类似的差异备份,事务日志备份文件,占用的时间很短,但在数据的还原,除了恢复完整备份,也为了还原每个事务日志备份,不仅恢复上次事务日志备份(这是区别和差异备份)。

文件和文件组备份。如果你创建多个数据库文件或文件组的数据库创建数据库时,可以使用备份方法。使用备份文件和文件组的数据库只能在备份一些文件,备份的方法是非常有效的数据库文件是非常大的,因为只有一个或多个备份文件或文件可以被分成几组,以避免大型数据库备份数据库,备份时间。此外,只有一个或多个数据文件备份的文件和文件组备份。当数据库中的一个或一些文件损坏时,只可能还原损坏的文件或文件组备份。

完整的备份可以更好地理解。例如,2012年1月1日上午8点的完整备份将在2012年1月一点八点恢复到数据库状态。

差异备份是备份完全备份后数据的变化。例如,2012年1月1日上午、1月2日和1月3日分别备份8个点。然后,差异备份,记录在1月2日在差异备份是从1月1日到1月2日这段时间内的数据变化,并记录在1月3日在差异备份是从1月1日的变化,这是一段时间,在1月3日的数据。因此,如果你想恢复到1月3日的状态,只是恢复了1月1日的完全备份,差异备份和恢复在1月3日完成。

事务日志备份事务日志文件作为备份的对象,这是在数据库中记录每一个操作等效。想在早上8点的上一个全备份,2012年1月1日,1月2日早上8点,数据库中的数据修改了100次,如果差异备份,然后记录第一百时代的差异备份数据更改数据库的状态,如果事务日志备份,数据备份将在这100次变化。

例如,在另一个例子是,2012年1月1日早上8点为一个完整的备份,在1月2日和1月3日进行的事务日志备份,然后记录在事务日志备份从1月1日到1月2日这段时间内的数据变化在1月2日,并记录在事务日志备份数据的变化在1月3日1月2日到1月3日这段时间。因此,如果我们要恢复到1月3日的数据,我们需要恢复1月1日的完整备份,还原事务日志备份在1月2日完成,最后还原事务日志备份在1月3日。

在了解了上述数据库备份方法之后,您可以使用上面的方法为自己的数据库备份数据库。首先是数据安全,其次是备份文件大小,最后是备份和恢复可以持续的时间范围。

例如,如果数据库每天更改少量的数据,每周(星期日)做一次完整的备份,每天(在工作前)进行事务日志备份,那么数据库一旦出现问题,数据就可以恢复到前一天(工作)状态。

当然,你也可以在星期日做一个完整的备份,并在星期一和星期六前每天备份一次,这样一旦数据库出现问题,它也可以将数据恢复到前一天的状态。一周后几天做一次差异备份,备份时间和备份文件就会增加,但这有很好的优势。当数据损坏时,只需恢复前一天的完整备份数据和不同备份数据,不需要每天恢复事务日志备份,恢复时间相对较短。

如果数据库中的数据频繁变化,丢失一小时的数据都是非常严重的损失,使用上述方法备份数据是不可行的。此时,三种备份方式可用于备份数据库。

例如,一个完整的备份每天都在工作中完成,在两个完整备份之间每隔八小时进行一次差异备份。事务日志备份每两小时进行一次,结果一旦数据被破坏,数据就可以恢复到不到一小时的状态,同时也可以减少数据库备份的时间和备份数据文件的大小。

它已被前面所提到的,当数据库文件太大的备份,你可以备份单独的数据库文件或文件组,分多次数据库。在实际操作中,还有另一种情况,可以用来备份的数据库文件。例如,在一个数据库中,有些数据变化很小,和一些表数据经常变化,你可以考虑这些数据表存储在不同的文件或文件组,然后通过备份频率备份这些文件和文件组的不同。但使用文件和文件组备份、恢复数据也反复几次恢复整个数据库,所以除非数据库备份文件太大,否则不要使用此备份模式。

考虑到上述备份方案,您能看到数据不完整吗比如,昨天晚上12点做一个完整的备份,每小时做一次事务日志备份,最后一个事务日志备份是在今天上午12点,这是今天中午12:10,发现数据库中的数据已丢失或损坏,但上次事务日志备份是今天中午12点,如果我此时的数据库恢复到12点,然后12点到操作数据前12:10不损坏将丢失(如数据库有三个表,一个表中的数据被破坏,其他两台其他用户更改的数据)。在这一点上,我们需要使用{尾日志备份}。OBE西备份原则从上次事务日志备份的时间点,然后执行所有操作后备份。当它恢复后,它能在12点之后找到正确的数据。

注意:当完成尾日志备份时,数据库将强制数据库停止。在这个时候,如果数据库不停,而用户继续操作,尾日志备份将如果你上次备份事务日志后的数据已经改变,失去meaning.sql Server 2012,其中发生在事务日志(即当前日志文件记录的LSN(日志序列号大于最大记录的LSN)上次事务日志备份,SQL Server通过LSN区分日志记录),但尾日志备份,它会提示你必须做备份的尾巴。

实例部分:

第一次完整备份{ mytest。比克},那么这个备份文件的两个事务日志备份,基于上次事务日志备份的时间2012-8-4 23:07 } {

图1-1:备份文件名为{ mytest。比克},和上次事务日志备份的时间是2012-8-4 23:07 } {。

图1-2:在选择备份文件中的MyTest.bak,我们可以看到,在备份列表中有备份文件将被恢复,并完整备份文件和两个事务日志备份中分别列出。

备份文件上次事务日志备份的时间2012-8-4 23:07 { },这样你就可以恢复启动以来的第一次完整备份,任何一个时间点上的事务日志备份的时间,充分验证了事务日志备份上述模式(如果后者的日志备份,尾恢复设置还原最后一排列表尾日志备份)。

如果事务日志备份,分别是1, 2个事务日志备份,然后删除1个复选框的事务日志还原事务日志2将被自动删除,但删除事务日志2是允许的,这也证明了上面提到的:在数据的减少,除了为恢复完整备份,还原每个事务日志备份,不仅恢复上次事务日志备份,而不是一个差异备份可以基于一个完全备份,差异备份只还原最后可以。

图1-3:我插入一个数据2012-08-04 23:36:53 { },和2012-08-04 23:37:44也使得一个事务日志备份3,然后恢复时间点2012-08-04 23:36:00 } {。恢复后,这个时间点后的数据已经不存在了。

{提示:数据库在恢复时提示使用它,通常需要断开所有连接以恢复它。我通常使用脚本脱机,所有连接都将断开。

修改数据库中设置脱机回滚的立即下线
修改数据库中设置在线回滚的立即在线
如果是最后一次进行完全备份,则不允许完全恢复到某个时间点。

图2-1:备份文件名为{ mytesta .bak },和备份时间{ } 2012-8-4 22:33。
图2-2:选择最后一个完整备份文件中的MyTestA,可以看到设置恢复备份文件列表显示此时的备份,那么时间线按钮进入备份的时间线的界面,将是最后一次完整备份时间从22:33:41它在任何一个时间点,如改为22:32:41。然后,参见图2-3效果。
图2-3:只要一个完整的备份恢复到某个时间点,就不允许了,因为在完成备份后没有备份或事务日志备份。此时,您可以看到恢复的备份集列表是空的,无法恢复。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部