还原重命名的文件和文件组
可以更改文件和文件组的名称,甚至可以在其他地方重新使用该名称。SQL Server 数据库引擎 通过全局唯一标识符 (GUID) 在内部跟踪文件和文件组。在大多数情况下,还原操作可以识别出名称已更改,并可以正确处理此更改。
还原处理更改名称的方式受文件是离线还原还是在线还原的影响。
- 离线还原过程中,数据库目录不可访问,包括当前的文件组列表。还原使给定的名称与备份中的文件或文件组名称的相一致。因此,如果创建备份后重新使用了该名称,则可能还原错误文件。但是,以后的还原将删除恢复点上未在数据库中显示的所有文件。这将导致附加还原和前滚活动,但数据库是正确的。此附加工作是不可避免的,因为还原不能预先得知恢复点,也不能预测未知点上哪些文件显示在数据库中。
- 在线还原过程中,数据库目录不可访问。如果在还原时给定新的文件或文件组名称,数据库引擎将从数据库目录中获取相应的 GUID 并使用该 GUID 还原文件或文件组(如果备份中存在该文件或文件组)。
如果给定旧名称,则它不存在于目录中。如果 GUID 与备份中当前文件或文件组的 GUID 相同,数据库引擎将从备份中还原该文件或文件组。
如果备份中的 GUID 与任何当前文件或文件组的 GUID 都不相同,将出现错误。
还原操作如何处理重新使用的文件或文件组名称
可以在以后重新使用已删除文件或文件组的名称;例如,新文件可以重新使用以前文件组的名称。这与重命名文件或文件组类似。但是,重新使用名称时,同一名称在不同时间对应于不同的对象。
在 SQL Server 2005 中,还原操作自动处理文件和文件组的数目以及名称的更改。若要简化还原过程,最佳做法是在新的或已更改的文件和文件组发生更改后进行完整数据库备份。
如果已重命名某文件且自上次备份后重新使用了其文件名,数据库引擎将根据数据库目录是否可访问以及该名称是否位于该目录中对其进行处理:
- 如果数据库目录可访问且该名称位于该目录中,数据库引擎将确定相应文件或文件组的 GUID 并使用该 GUID 从备份中还原文件或文件组。如果该名称与任何当前文件或文件组的名称都不相同,将出现错误。
- 如果目录不可访问(因为正在离线还原数据库),数据库引擎会按照主题前面所描述的,通过备份中的信息确定还原对象。
数据库引擎可能会在进行日志备份之前阻止您重新使用名称。这种情况下,会显示错误。
请参阅
概念
完整文件备份
执行文件还原(完整恢复模式)
执行文件还原(简单恢复模式)