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服务启动不起来,可以参考下面这个帖子的内容:

  • 相关阅读:
    ACM: POJ 1401 Factorial-数论专题-水题
    ACM:POJ 2739 Sum of Consecutive Prime Numbers-素数打表-尺取法
    ACM: HDU 1028 Ignatius and the Princess III-DP
    ACM: HDU 2563 统计问题-DFS+打表
    ACM: How many integers can you find-数论专题-容斥原理的简单应用+GCD
    ACM: Happy 2004-数论专题-因子求和-快速幂
    ACM:a^b%p-数论-快速幂-快速乘
    ACM: 强化训练-Beautiful People-最长递增子序列变形-DP
    POJ 1472 Instant Complexity 应该叫它编程题。。
    POJ 3393 Lucky and Good Months by Gregorian Calendar 模拟题
  • 原文地址:https://www.cnblogs.com/wzihan/p/14431498.html
Copyright © 2011-2022 走看看