zoukankan      html  css  js  c++  java
  • SQL Server 中如何移动tempdb到新的位置

    操作步骤:
    1、检查tempdb的逻辑名字和它的存在位置。可以使用下面语句:

    SELECT name, physical_name
    FROM sys.master_files
    WHERE database_id = DB_ID('tempdb');

    2、停止数据库服务.


    3、拷贝原来tempdb的文件到新的位置(原来文件位置可以通过上述查询得到)。拷贝完毕后,启动数据库服务。


    4、执行如下命令:

    复制代码
    USE master;
    GO
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = tempdev, FILENAME = N'D:Microsoft SQL ServerMSSQL13.MSSQLSERVERMSSQL系统临时数据库	empdb.mdf');
    
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = temp2, FILENAME = N'D:Microsoft SQL ServerMSSQL13.MSSQLSERVERMSSQL系统临时数据库	empdb_mssql_2.ndf');
    
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = temp3, FILENAME = N'D:Microsoft SQL ServerMSSQL13.MSSQLSERVERMSSQL系统临时数据库	empdb_mssql_3.ndf');
    
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = temp4, FILENAME = N'D:Microsoft SQL ServerMSSQL13.MSSQLSERVERMSSQL系统临时数据库	empdb_mssql_4.ndf');
    
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = temp5, FILENAME = N'D:Microsoft SQL ServerMSSQL13.MSSQLSERVERMSSQL系统临时数据库	empdb_mssql_5.ndf');
    
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = temp6, FILENAME = N'D:Microsoft SQL ServerMSSQL13.MSSQLSERVERMSSQL系统临时数据库	empdb_mssql_6.ndf');
    
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = temp7, FILENAME = N'D:Microsoft SQL ServerMSSQL13.MSSQLSERVERMSSQL系统临时数据库	empdb_mssql_7.ndf');
    
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = temp8, FILENAME = N'D:Microsoft SQL ServerMSSQL13.MSSQLSERVERMSSQL系统临时数据库	empdb_mssql_8.ndf');
    
    GO
    ALTER DATABASE  tempdb 
    MODIFY FILE (NAME = templog, FILENAME = N'D:Microsoft SQL ServerMSSQL13.MSSQLSERVERMSSQL系统临时数据库	emplog.ldf');
    GO
    复制代码

    在这里,name=tempdev 和templog 等是tempdb的逻辑名字,FILENAME = N'D:Microsoft SQL ServerMSSQL13.MSSQLSERVERMSSQL系统临时数据库 empdb.mdf'是tempdb的新位置.

    执行结果如下:

    5、然后检查tempdb移动是否成功。

    SELECT name, physical_name
    FROM sys.master_files
    WHERE database_id = DB_ID('tempdb');

    6、接着重启数据库服务

    7、注意在步骤3中,我们重新启动数据库服务的时候,还是会在老的tempdb路径下生成一套tempdb的数据库文件,现在它们都是没用的垃圾文件了,我们要去删掉它们。

    特别提示:

    存放SQL Server数据库文件及数据库日志文件的文件夹,必须要开放对Windows用户组"NT ServiceMSSQLSERVER"(也就是SQL Server服务的执行账户)的Full control权限,否则会导致上面步骤6中重启SQL Server服务失败。

    如果你不知道SQL Server服务的执行账户是什么,可以通过在Windows服务(services)管理列表中,找到SQL Server数据库引擎服务(如果你只有一个SQL Server Instance,一般就是"SQL Server (MSSQLSERVER)"),然后查看其"Log On As"列的账户:

    如果你发现SQL Server执行账户不是上图中的"NT ServiceMSSQLSERVER",那么需要将存放SQL Server数据库文件及数据库日志文件的文件夹,开放相应Windows账户的Full control权限。

    这一点要千万注意,否则SQL Server服务启动不起来会非常麻烦,如果实在因为移动tempdb到新位置后,SQL Server服务启动不起来,可以参考下面这个帖子的内容:

  • 相关阅读:
    Begin Example with Override Encoded SOAP XML Serialization
    State Machine Terminology
    How to: Specify an Alternate Element Name for an XML Stream
    How to: Publish Metadata for a WCF Service.(What is the Metadata Exchange Endpoint purpose.)
    Beginning Guide With Controlling XML Serialization Using Attributes(XmlSerializaiton of Array)
    Workflow 4.0 Hosting Extensions
    What can we do in the CacheMetaData Method of Activity
    How and Why to use the System.servicemodel.MessageParameterAttribute in WCF
    How to: Begin Sample with Serialization and Deserialization an Object
    A Test WCF Service without anything of config.
  • 原文地址:https://www.cnblogs.com/wzihan/p/14431498.html
Copyright © 2011-2022 走看看