zoukankan      html  css  js  c++  java
  • SQL SERVER 移动系统数据库

    移动系统数据库在下列情况下可能很有用:

    • 故障恢复。例如,数据库处于可疑模式下或因硬件故障而关闭。

    • 计划的重定位。

    • 为预定的磁盘维护操作而进行的重定位。

    移动 Master 数据库                                                                                                                                                                         

    1. “开始”菜单中,依次指向“所有程序”Microsoft SQL Server 和“配置工具”,再单击 SQL Server 配置管理器

    2. “SQL Server 服务”节点中,右键单击 SQL Server 实例(如 SQL Server (MSSQLSERVER)),并选择“属性”

    3. “SQL Server (实例名) 属性”对话框中,单击“高级”选项卡。

    4. 编辑“引导参数”值以指向 master 数据库数据和日志文件的计划位置,然后单击“确定”。可以选择移动错误日志文件。

      数据文件的参数值必须跟在 -d 参数的后面,日志文件的参数值必须跟在 -l 参数的后面。下面的示例显示 master 数据和日志文件默认位置的参数值。

      -dC:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATA
      master.mdf;-eC:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQL
      LOGERRORLOG;-lC:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQL
      DATAmastlog.ldf
      

      如果 master 数据和日志文件预先安排的重定位是 E:SQLData,则参数值将更改为:

      -dE:SQLDatamaster.mdf;-eC:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLLOGERRORLOG;-lE:SQLDatamastlog.ldf
      
    5. ALTER DATABASE [master] MODIFY FILE(NAME='tempdev',FILENAME='E:SQLDatamaster.mdf')

    6. 通过右键单击实例名称并选择“停止”,停止 SQL Server 实例。
    7. 将 master.mdf 和 mastlog.ldf 文件移动到新位置(这个位置就是上面参数所指定的位置,即:E:SQLData)。

    8. 重新启动 SQL Server 实例。

    9. 通过运行以下查询,验证 master 数据库的文件更改。

      SELECT name, physical_name AS CurrentLocation, state_desc
      FROM sys.master_files
      WHERE database_id = DB_ID('master');
      GO

    移动 Resource 数据库                                                                                                                                                                    

    Resource 数据库的位置为 <drive>:Program FilesMicrosoft SQL ServerMSSQL10_50.<instance_name>MSSQLBinn。无法移动该数据库。

    移动其它系统数据库                                                                                                                                                                         

    注意:由于每次启动 SQL Server 实例时都将重新创建 tempdb,所以不必实际移动数据和日志文件。在重新启动服务时,将在新位置中创建这些文件。在重新启动服务之前,tempdb 将继续使用现有位置中的数据和日志文件。

    以下为移动系统数据库步骤:
    1. 确定系统数据库的逻辑文件名称以及在磁盘上的当前位置。

    -- 如tempdb
    SELECT name, physical_name AS CurrentLocation
    FROM sys.master_files
    WHERE database_id = DB_ID(N'tempdb');
    GO

    2. 使用 ALTER DATABASE 更改每个文件的位置。

    复制代码
    USE master;
    GO
    ALTER DATABASE tempdb
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:SQLData	empdb.mdf');
    GO
    ALTER DATABASE tempdb
    MODIFY FILE (NAME = templog, FILENAME = 'E:SQLLog	emplog.ldf');
    GO
    复制代码


    3. 停止服务并移动文件到更改位置

    4. 重新启动 SQL Server 的实例服务。
    5. 验证文件更改。

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files

     再将系统文件,如 tempdb.mdf 和 templog.ldf 文件从其原始位置删除。

    备一个脚本,可以对多实例的时候使用:

    select 'ALTER DATABASE ['+db_name([database_id])+'] MODIFY FILE(NAME='''+name+''',FILENAME='''+REPLACE([physical_name],'C:Program FilesMicrosoft SQL Server','E:SQLData')+''')' from sys.master_files
    where physical_name like 'c:%'
    AND [database_id]<>1
  • 相关阅读:
    [JavaScript权威指南]Introduce to JavaScript
    IT项目开发的75条管理守则
    .net调用存储过程
    应聘项目经理需要学的
    DropDownList静态数据绑定
    数据库的查询优化技术 (摘)
    UNION运算符
    网站项目策划书
    .net验证码
    小问题,关于Page.Request.QueryString["pro"]
  • 原文地址:https://www.cnblogs.com/zerocc/p/3317725.html
Copyright © 2011-2022 走看看