论文部分内容阅读
[摘要] 备份与恢复是DBA的最重要任务之一。本文介绍了SQL Server中数据库备份恢复方法,同时,就利用事务日志实现时点还原做了详细讨论,使数据的管理更加灵活。并给出了时点还原的实例。
[关键词] SQL Server数据库事务日志数据备份数据还原时点还原
一、备份与恢复概述
如今硬件既可靠又有冗余,好像就不需要备份了,但是硬件只能防止这个硬件出故障。导致数据丢失的还有其他原因,如由于用户或管理员错误(即使数据库专家也难免会损毁数据库)、数据被破坏、恶意破坏数据或火灾之类的灾难是难以避免的。因此作为DBA最重要的任务之一就是要制定良好的备份、还原计划。
1.备份类型
备份是DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。常用的数据备份类型有:完全数据库备份、差异数据库备份、事务日志备份、文件或文件组备份。一个通用的备份策略是:以较长的时间间隔执行完全备份,以适中的时间间隔进行差异备份,并以较短的时间间隔进行事务日志备份。当数据遭到破坏后就可以利用备份来恢复或还原数据库。
2.恢复模型
SQL Server2000中增加了恢复模型。三种恢复模型分别是:full(完全)、bulk_logged(批量登记)、simple(简单)。
Full恢复:这种恢复方式提供了最大的灵活性,用完全数据库库备份和事务日志备份组合实现。也可以进行差异备份和文件级备份。该恢复方式可以将数据库恢复到特定时刻。
Bulk_logged恢复:该模式也可以完全恢复数据库,但如果事务日志文件包含批量操作,则不能够恢复到特定时刻,而是需要恢复整个日志。
Simple恢复:该模式是最基本的备份与恢复模型。只限于完全数据库与差异备份数据库的恢复。
数据库是一个装载数据库的备份,然后应用事务日志重建的过程。一个通用的恢复策略是:首先恢复完全备份的数据,然后恢复差异备份数据,最后根据事务日志备份进行恢复。
综上所述,欲实现时点还原,即将数据恢复到某个特定的时刻,就必须设置恢复模式为full模式。
二、时点还原的实现
在许多应用软件(尤其大多数微软的应用软件)中,如果有误操作,系统给用户提供了撤消操作,这样给用户的操作带来很大方便,在DBMS中没有提供撤消操作,比如用户误删了表中數据或某个数据库对象,是没有撤消操作的;或者想查看过去任一时刻某公司数据情况等,只通过备份恢复功能是作不到的。但是我们可以利用事务日志的特性弥补这一缺陷。以下以xsda数据库为例,说明时点还原的实现方法:
1.首先要进行一次完全备份(这里可以使用备份设备也可以使用备份文件进行备份)。
2.紧接着进行一次事务日志的备份。
3.以上两步做好以后,就可以不定期的备份事务日志。
一定要保证事务日志的一致性,当需要进行时点还原时,首先恢复完全备份的数据库,然后再逐次恢复日志,如下图所示(在企业管理器中实现):
选中时点还原选项后,右边边文本框即被激活,输入时点后,确定,数据库即被恢复到指定时刻。
也可以用Transact-SQL实现,具体操作如下:
Restore databasexsglfromxsdatabackup with file=1 ,norecovery
//xsdatabackup为完全备份的数据库
Go
Restore log xsgl from with file=1 ,norecovery
// xsrzbackup1为第一次进行的日志备份
Go
Restore log xsgl from xsrzbackup2 with file=3 recovery,stop at=’December 13, 2006 08:00 AM’
//xsrzbackup2为第二次进行的日志备份
注意:在还原过程中一定要注意事务日志备份的连续性,不能有中断,否则时点还原就会失败。
三、小结
数据库管理的最重要任务之一就是备份与还原,尽管SQL server提供了将备份与恢复自动化的工具与模型,但DBA仍然需要确定适当的方法,建立健壮的恢复、还原计划,一方面可以防止数据丢失,另一方面为数据处理提供灵活、方便的使用机制。
[关键词] SQL Server数据库事务日志数据备份数据还原时点还原
一、备份与恢复概述
如今硬件既可靠又有冗余,好像就不需要备份了,但是硬件只能防止这个硬件出故障。导致数据丢失的还有其他原因,如由于用户或管理员错误(即使数据库专家也难免会损毁数据库)、数据被破坏、恶意破坏数据或火灾之类的灾难是难以避免的。因此作为DBA最重要的任务之一就是要制定良好的备份、还原计划。
1.备份类型
备份是DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。常用的数据备份类型有:完全数据库备份、差异数据库备份、事务日志备份、文件或文件组备份。一个通用的备份策略是:以较长的时间间隔执行完全备份,以适中的时间间隔进行差异备份,并以较短的时间间隔进行事务日志备份。当数据遭到破坏后就可以利用备份来恢复或还原数据库。
2.恢复模型
SQL Server2000中增加了恢复模型。三种恢复模型分别是:full(完全)、bulk_logged(批量登记)、simple(简单)。
Full恢复:这种恢复方式提供了最大的灵活性,用完全数据库库备份和事务日志备份组合实现。也可以进行差异备份和文件级备份。该恢复方式可以将数据库恢复到特定时刻。
Bulk_logged恢复:该模式也可以完全恢复数据库,但如果事务日志文件包含批量操作,则不能够恢复到特定时刻,而是需要恢复整个日志。
Simple恢复:该模式是最基本的备份与恢复模型。只限于完全数据库与差异备份数据库的恢复。
数据库是一个装载数据库的备份,然后应用事务日志重建的过程。一个通用的恢复策略是:首先恢复完全备份的数据,然后恢复差异备份数据,最后根据事务日志备份进行恢复。
综上所述,欲实现时点还原,即将数据恢复到某个特定的时刻,就必须设置恢复模式为full模式。
二、时点还原的实现
在许多应用软件(尤其大多数微软的应用软件)中,如果有误操作,系统给用户提供了撤消操作,这样给用户的操作带来很大方便,在DBMS中没有提供撤消操作,比如用户误删了表中數据或某个数据库对象,是没有撤消操作的;或者想查看过去任一时刻某公司数据情况等,只通过备份恢复功能是作不到的。但是我们可以利用事务日志的特性弥补这一缺陷。以下以xsda数据库为例,说明时点还原的实现方法:
1.首先要进行一次完全备份(这里可以使用备份设备也可以使用备份文件进行备份)。
2.紧接着进行一次事务日志的备份。
3.以上两步做好以后,就可以不定期的备份事务日志。
一定要保证事务日志的一致性,当需要进行时点还原时,首先恢复完全备份的数据库,然后再逐次恢复日志,如下图所示(在企业管理器中实现):
选中时点还原选项后,右边边文本框即被激活,输入时点后,确定,数据库即被恢复到指定时刻。
也可以用Transact-SQL实现,具体操作如下:
Restore databasexsglfromxsdatabackup with file=1 ,norecovery
//xsdatabackup为完全备份的数据库
Go
Restore log xsgl from with file=1 ,norecovery
// xsrzbackup1为第一次进行的日志备份
Go
Restore log xsgl from xsrzbackup2 with file=3 recovery,stop at=’December 13, 2006 08:00 AM’
//xsrzbackup2为第二次进行的日志备份
注意:在还原过程中一定要注意事务日志备份的连续性,不能有中断,否则时点还原就会失败。
三、小结
数据库管理的最重要任务之一就是备份与还原,尽管SQL server提供了将备份与恢复自动化的工具与模型,但DBA仍然需要确定适当的方法,建立健壮的恢复、还原计划,一方面可以防止数据丢失,另一方面为数据处理提供灵活、方便的使用机制。