还原顺序的高级注意事项
更新日期: 2005 年 12 月 5 日
本节中的主题介绍了还原顺序的下列注意事项:
- 启动前滚之后更改前滚集
- 跳过对只读文件中的数据的前滚
- 使用同一数据的多个完整备份
- 在单个数据库中执行并发备份和还原
此外,本节包含多个高级主题。
启动前滚之后更改前滚集
不能删除前滚集中的文件或页,但可以添加它们。添加文件非常有用,例如,如果您启动了部分还原顺序,但意识到想要包括更多的文件。
添加文件或页可能需要重复某些前滚。但是,可以将与数据库一致的只读文件添加到前滚集中,无须重复任何前滚;有关详细信息,请参阅控制在前滚过程中是否创建添加的文件。
添加页受本主题后面的“同一数据的多个副本”中所述规则的限制。
跳过对只读文件中的数据的前滚
注意: |
---|
有关重做阶段(在过程中发生前滚)的介绍,请参阅了解 SQL Server 中备份的还原和恢复工作方式。 |
将只读文件还原至创建备份前为只读状态的文件组时,该文件与数据库其余部分保持一致,因此跳过重做阶段。在还原过程的数据复制阶段,从备份还原这些只读文件之后,SQL Server 数据库引擎将立即恢复这些文件。然后,将继续执行重做过程来对前滚集的其余部分(如果存在)进行前滚。
如果在进行最新完整备份之后但在进行差异备份之前,文件组变为只读状态并保持只读状态,则直到创建差异备份的时间点才发生前滚。在完整恢复模式下,如果文件组在进行最新完整备份和最新差异备份(如果存在)的时间点之后变为只读状态,则可以使用日志备份前滚文件中的数据,直到该文件组到达只读点。
使用同一数据的多个数据备份
由于可以发出多个还原语句,因此可以将不同完整备份的数据复制到同一位置。例如,一个 RESTORE 语句复制一个数据库中的所有文件。该还原顺序中的下一个语句将覆盖其中一个文件。这通常是允许的,而且使用最近还原的数据。
但是,页面还原还有特殊的规则。整个文件还原后,无法将页复制到该文件;如果尝试这样做,将会发生错误。还原顺序可以继续,但页无法还原。
在单个数据库中执行并发备份和还原
在某些情况下,可以同时运行影响同一数据库的 BACKUP 和 RESTORE 语句。由于某个操作正在进行而不允许执行另一操作时,数据库引擎将发出错误消息。
下表说明并发语句的每种可能组合是允许的还是禁止的。
正在执行的语句 | BACKUP DATABASE | BACKUP LOG | 离线 RESTORE | 在线 RESTORE |
---|---|---|---|---|
BACKUP DATABASE |
错误 |
允许 |
错误 |
错误 |
BACKUP LOG |
允许 |
错误 |
错误 |
错误 |
离线 RESTORE |
错误 |
错误 |
错误 |
错误 |
在线 RESTORE |
错误 |
允许 |
错误 |
错误 |
本节内容
主题
说明
讨论使用还原来修复隔离的已知问题时,如何通过仅还原出现问题的文件来优化还原性能。
讨论还原如何处理已更改的名称和重新使用的文件或文件组名称。
讨论如何重写防止用一个数据库意外覆盖另一个数据库的安全保护程序。
注意:
在使用 REPLACE 选项之前,必须进行仔细考虑。
请参阅
概念
其他资源
RESTORE (Transact-SQL)
使用 SQL Server 数据库还原顺序