分离数据库
分离数据库是指将数据库从 SQL Server 实例中移除,但会完整保留数据库及其数据文件和事务日志文件。 然后可以使用这些文件将数据库附加到任何 SQL Server 实例,包括分离该数据库的服务器。
如果存在下列任何情况,则不能分离数据库:
已复制并发布数据库。 如果进行复制,则数据库必须是未发布的。 必须通过运行 sp_replicationdboption禁用发布后,才能分离数据库。
备注
如果无法使用 sp_replicationdboption,可以通过运行 sp_removedbreplication 删除复制。
数据库中存在数据库快照。必须首先删除所有数据库快照,然后才能分离数据库。
备注
不能分离或附加数据库快照。
数据库是 Always On 可用性组的一部分。
在将数据库从可用性组中删除之前,无法分离该数据库。 有关详细信息,请参阅从 Always On 可用性组中删除主数据库。
该数据库正在某个数据库镜像会话中进行镜像。
除非终止该会话,否则无法分离该数据库。 有关详细信息,请参阅删除数据库镜像 (SQL Server)。
数据库处于可疑状态。 无法分离可疑数据库;必须将数据库设为紧急模式,才能对其进行分离。 有关如何将数据库置于紧急模式下的详细信息,请参阅 ALTER DATABASE (Transact-SQL)。
数据库为系统数据库。
附加数据库
可以附加复制的或分离的 SQL Server 数据库。
附加数据库时,所有数据文件(.mdf 和 .ndf 文件)都必须可用。 如果任何数据文件的路径不同于首次创建数据库或上次附加数据库时的路径,则必须指定文件的当前路径。
将数据库附加到其他服务器实例
无法在早期版本的 SQL Server 中附加由较新版本的 SQL Server 创建的数据库。 这将阻止数据库被旧版本的数据库引擎物理使用。 但是,这与元数据状态相关且不会影响数据库兼容性级别。
将数据库附加到其他服务器实例时,为了给用户和应用程序提供一致的体验,您最好在其他服务器实例上为数据库重新创建部分或全部元数据。 此元数据包括登录名和作业。 有关元数据的详细信息,