执行在线还原
更新日期: 2006 年 7 月 17 日
只有 SQL Server 2005 Enterprise Edition 支持在线还原。在此版本中,文件还原、页面还原或段落还原默认处于在线状态。
本主题适用于包含多个文件或文件组的数据库(在简单恢复模式下,仅适用于包含只读文件组的数据库)。
数据库在线时还原数据的过程称为“在线还原”**。只要主文件组处于在线状态,就将数据库视为在线,即使有一个或多个辅助文件组处于离线状态。在任何恢复模式下,您都可以在数据库在线时还原处于离线状态的文件。在完整恢复模式下,您还可以在数据库在线时还原页。
注意: |
---|
在线还原自动在 SQL Server 2005 Enterprise Edition 上执行,不需要用户执行任何操作。如果不想使用在线还原,则可以在开始还原之前使数据库离线。有关详细信息,请参阅本主题后面的使数据库或文件离线。 |
在线文件还原期间,正在还原的任何文件及其文件组均处于离线状态。如果在线还原开始时这些文件中有任何一个处于在线状态的话,则第一个还原语句将使该文件的文件组离线。相反,在线页还原期间,只有页处于离线状态。
所有在线还原方案均涉及以下几个基本步骤:
- 还原数据。
- 使用 WITH RECOVERY 还原最近的日志。此操作将使还原的数据在线。
有时,未提交的事务无法回滚,因为回滚所需的数据在启动时处于离线状态。在这种情况下,将延迟该事务。有关详细信息,请参阅延迟的事务。
注意: |
---|
如果数据库正在使用大容量日志恢复模式,建议您在开始执行在线还原之前切换到完整恢复模式。有关详细信息,请参阅从完整恢复模式或大容量日志恢复模式进行切换的注意事项。 |
重要提示: |
---|
如果创建备份时有多个设备连接到服务器,则在线还原期间,可用设备数必须相同。 |
在线还原所需的日志备份
对于在线还原,恢复点就是要恢复的数据最后一次变为离线或只读时的点。截止到该恢复点(包括该恢复点)的事务日志备份都必须是可用的。通常在该点后都需要日志备份,以覆盖文件的恢复点。唯一的例外情况是在使用当数据变为只读后执行的数据备份对只读数据进行在线还原的时候。在这种情况下,不必准备日志备份。
通常,即使在启动还原顺序之后,您也可以在数据库在线时执行事务日志备份。上次日志备份的时间取决于要还原的文件的属性:
- 对于在线只读文件,可以在第一次还原顺序之前或期间执行恢复所需的上次日志备份。如果在文件组变为只读以后执行数据备份或差异备份,则只读文件组可能不需要日志备份。
注意: 以上信息也适用于所有离线文件。 - 值得注意的特殊情况是这样一种读写文件:在执行第一个还原语句时处于在线状态,然后被该还原语句自动变为离线的读写文件。在这种情况下,必须在第一个“还原顺序”**(用于还原、前滚和恢复数据的一个或多个 RESTORE 语句的顺序)期间执行日志备份。通常,必须在还原所有完整备份之后并在恢复数据之前执行日志备份。但是,如果特定的文件组有多个文件备份,则最小的日志备份点为文件组离线的时候。这个数据还原后的日志备份将捕获文件变为离线时的点。数据还原后的日志备份是必要的,因为 SQL Server 数据库引擎无法将在线日志用于在线还原。
注意: 或者,也可以在开始还原顺序前手动使文件离线。有关详细信息,请参阅本主题后面的“使数据库或文件离线”。
使数据库或文件离线
如果不想使用在线还原,则可以使用以下方法之一,在启动还原顺序之前使数据库离线:
- 在任何恢复模式下,您都可以使用以下 ALTER DATABASE 语句使数据库离线:
ALTER DATABASE database_name SET OFFLINE - 或者,在完整恢复模式下,可以通过使用以下 BACKUP LOG 语句将数据库置于还原状态,强制文件还原或页还原离线:
BACKUP LOG database_name WITH NORECOVERY。
只要数据库保持离线状态,所有还原就都是离线还原。
示例
注意: |
---|
在线还原顺序的语法与离线还原顺序的语法完全相同。 |
- 示例:数据库的段落还原(简单恢复模式)
- 示例:仅对某些文件组进行段落还原(简单恢复模式)
- 示例:在线还原只读文件(简单恢复模式)
- 示例:数据库的段落还原(完整恢复模式)
- 示例:仅对某些文件组进行段落还原(完整恢复模式)
- 示例:在线还原读写文件(完整恢复模式)
- 示例:在线还原只读文件(完整恢复模式)
请参阅
概念
执行文件还原(完整恢复模式)
执行文件还原(简单恢复模式)
执行页面还原
执行段落还原
了解 SQL Server 中备份的还原和恢复工作方式
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 7 月 17 日 |
|