导出 (0) 打印
全部展开

如何使用附加的数据磁盘存储数据库文件

更新时间: 2014年2月

注:本页面内容可能不完全适用中国大陆地区运营的 Windows Azure服务。如要了解不同地区 Windows Azure 服务的差异, 请参考本网站 http://www.windowsazure.cn.

对于在 Windows Azure 虚拟机中运行的 SQL Server 实例,一般建议使用附加的数据磁盘存储业务、数据、日志和备份文件。正如 Azure 虚拟机中的 SQL Server 的性能注意事项一文中所提及,将大于 10 GB 的数据库存储在附加的数据磁盘上可提高性能。

根据用于在 Windows Azure 虚拟机中配置 SQL Server 实例的映像,SQL Server 和数据库可安装在 C: 驱动器上。若要将数据库文件迁移到附加的数据磁盘并更改数据库文件的默认位置,需要移动数据库文件并更改服务器属性设置。

以下是一些常见的方案,其中需要移动数据库,有时还需要重新配置默认数据库文件位置设置。

 

方案

所需的操作

通过使用 Windows Azure 库中包括 SQL Server 的映像,配置 Windows Azure 虚拟机。SQL Server 预装在 C: 驱动器上,所有系统数据库文件存储在 C: 驱动器上。此方案还类似于使用在 C: 驱动器上装有 SQL Server 的自定义映像。

要将所有数据库文件(包括系统数据库)移至附加的数据磁盘。还要配置 SQL Server 默认设置,以使所有新数据库安装在附加的数据磁盘上。

移动数据库文件

配置数据库默认位置

在 Windows Azure 虚拟机中运行的 SQL Server 在 C: 驱动器上装有用户数据库。数据库大小现已大于 10 GB。要根据 Azure 虚拟机中的 SQL Server 的性能注意事项主题中提供的指南将数据库文件从 C: 驱动器移至附加的数据磁盘。

移动数据库文件

因大小或其他要求,要在附加的数据磁盘上安装特定数据库。

选择用于数据库文件位置的附加数据磁盘

要还原数据库并将其迁移至附加的数据磁盘。

还原到附加的数据磁盘

以下几节介绍一些任务和工具,可使用这些任务和工具移动数据库文件、配置 SQL Server 设置以将数据库安装在附加的数据磁盘上、选择附加的数据磁盘用于新数据库以及将数据库还原到附加的数据磁盘。

移动数据库文件

在此示例中,F: 驱动器指代附加的数据磁盘,它经过初始化,并标有驱动器盘符 F。有关如何将磁盘附加到 Windows Azure 虚拟机的信息,请参阅如何将数据磁盘连接到虚拟机

若要将数据库文件从操作系统磁盘移至 F: 驱动器,请执行以下步骤:

  1. F: 驱动器上创建用于 SQL Server 实例的文件夹,然后以实例 ID 为其命名。这是所有数据库文件的根目录。例如,如果从默认 SQL Server 实例移动文件,则创建一个名为 MSSQL11.MSSQLSERVER 的文件夹。如果移动多个实例中的数据库文件,则为每个实例创建一个文件夹。

  2. 使用以下查询获取所有数据和日志文件的列表:

    SELECT      db.name AS [DatabaseName]
    ,f.name AS [LogicalFileName]
    ,f.physical_name AS [PhysicalFileName]
    FROM        sys.databases db, sys.master_files f
    WHERE       db.database_id = f.database_id
    AND         f.type_desc IN (N'ROWS', N'LOG')
    ORDER BY    db.name
    
    
  3. 更新所有数据文件和事务日志文件的路径,以使其指向 F: 驱动器。可使用 ALTER DATABASE 语句更新除 master 系统数据库以外的所有数据库。

    新路径应与旧目录路径匹配。例如,如果旧路径为 C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\master.mdf,则新路径应为 F:\MSSQL11.MSSQLServer\MSSQL\DATA\master.mdf。在根目录中创建所需的子文件夹。

    1. 更新主数据库文件位置:在 SQL Server 配置管理器中,单击 SQL Server 服务。选择 SQL Server 实例,然后右击以选择“属性”。选择“启动参数”选项卡,然后更新 -d 和 -l 参数的值。

    2. 更新所有其他数据库的文件位置:若要更改文件位置,请使用 ALTER DATABASE 语句。对所移动的每个数据和日志文件运行以下语句。

      ALTER DATABASE <DatabaseName> MODIFY FILE (NAME='<LogicalFileName>', FILENAME='<Path/OSFileName>')
      
      
      
      有关更多信息,请参阅移动数据库文件

  4. 停止 SQL Server 服务。

  5. 对于所有更新了路径的数据库,将文件复制到 F: 驱动器上的新位置。配置数据库引擎访问的文件系统权限。以下是两种配置文件系统权限的方式:

    1. 使用 Windows 资源管理器,设置 DATA 目录及其中所有文件的权限。有关更多信息,请参阅配置数据库引擎访问的文件系统权限

    2. 使用 icacls utility 设置权限。以下示例命令从旧的 DATA 目录复制 ACL,然后将其还原到新的目录和文件。

      第一个命令复制 DATA 目录的 ACL,然后将其保存为文件名 ACLFile_Dir。第二个命令将 DATA 目录中所有文件的 ACL 复制到文件名 ACLFile_Files。

      icacls "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA" /save ACLFile_Dir 
      icacls "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\*" /save ACLFile_Files
      
      以下两个命令还原上一步中复制的 ACL,然后将其应用于新的目录和文件。

      icacls "F:\mssql11.mssqlserver\mssql" /restore AClFile_Dir 
      icacls "F:\mssql11.mssqlserver\mssql\data" /restore ACLFile_Files
      
      有关 icacls 实用工具的更多信息,请参阅 Icacls

  6. 重新启动 SQL Server 服务。数据库现在应指向新位置。

配置数据库默认位置

若要更改数据库文件的默认安装位置,请在“服务器属性”下更改数据库默认位置项。在此更改后创建的数据库使用新位置存储文件。有关更多信息,请参阅“服务器属性”-“数据库设置”页

选择附加的数据磁盘作为新数据库的位置。

创建数据库时,使用 CREATE DATABASE 语句,并用 FILENAME 参数在附加的数据磁盘上指定新位置。有关更多信息,请参阅创建数据库 (Transact-SQL)

将数据库备份还原到附加的数据磁盘

若要在将数据库备份还原到附加的数据磁盘时迁移数据和日志文件,请使用 WITH MOVE 参数指定新位置。有关更多信息,请参见还原 (Transact-SQL)

社区附加资源

添加
显示:
© 2014 Microsoft