技术开发 频道

使用分离和附加来升级SQL Server

  管理已升级服务器实例上的元数据

  将数据库附加到其他服务器实例时,为了给用户和应用程序提供一致的体验,您可能需要在其他服务器实例上为数据库重新创建部分或全部元数据(例如登录名、作业和权限)。

   示例

  下面的示例通过使用 Transact-SQL 语句分离和附加数据库,将 SQL Server 2000 pubs 数据库升级为 SQL Server 2005 数据库。
  将 SQL Server 2000 查询分析器连接到附加了 pubs 的服务器实例,并使用 sp_detach_db 存储过程分离数据库。

USE master;
GO
EXEC sp_detach_db @dbname = N'pubs';
GO

  此示例的目的在于,使用您选择的方法将 pubs 文件(pubs.mdf 和 pubs_log.ldf)从 C:\Program Files\Microsoft SQL Server\MSSQL\Data\(这是 SQL Server 2000 中 pubs 的默认位置)复制到 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\(这是 SQL Server 2005 数据目录)。

  重要提示:
  对于生产数据库,请将数据库和事务日志存放在不同的磁盘上。

  注意:
  请使用远程位置的通用命名约定 (UNC) 名称,通过网络将文件复制到远程计算机上的磁盘中。UNC 名称采用以下格式:\\服务器名称\共享名称\路径\文件名。为了向本地硬盘中写入文件,SQL Server 使用的用户帐户必须被授予在远程磁盘上读取或写入文件所需的权限。
 
  将复制的 pubs 数据库和(可选的)日志文件附加到 SQL Server 2005 实例(此示例使用相同的数据库名称)。在 SQL Server Management Studio 中,打开新的查询编辑器查询并连接到要附加该数据库的服务器实例。
 
  执行以下 CREATE DATABASE 语句。

USE master;
GO
CREATE DATABASE pubs ON PRIMARY
(FILENAME
=
      
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\pubs.mdf')
LOG ON (FILENAME =
      
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\pubs_log.ldf')
FOR ATTACH;
GO

  注意:
  在 SQL Server Management Studio 中,新附加的数据库在对象资源管理器中不是立即可见的。若要查看数据库,请单击对象资源管理器窗口,并选择“视图”>“刷新”。如果展开“数据库”节点,新附加的数据库现在就会显示在数据库列表中。

(可选)使用 sp_attach_db 存储过程将原始 pubs 数据库重新附加到 SQL Server 2000 实例。在查询分析器中,输入以下语句:

USE master;
Go
EXEC sp_attach_db @dbname = N'pubs',
  
@filename1 =
      N
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
  
@filename2 =
      N
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf';
GO
0
相关文章