zoukankan      html  css  js  c++  java
  • 如何转移数据库MDF和LDF文件

    我们可以很轻易地使用SQL Server来创建一个数据库,创建的数据库实例将存储在指定的默认位置(不一定是C盘,可以手动变更默认存储位置)。假设此时数据库实例创建在了C盘中的默认位置,亦即是与数据库安装位置保持一致性,对于64位的操作系统来说,存储在C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATA中。由于各种原因,我们的代码持续性在写数据库,数据库中LDF文件变得越来越大,而C盘的空间越来越小,此时,我们首先想到的就是为数据库瘦身,瘦身很简单,右击数据库名称选择Tasks --> Shrink,如下图所示:

    瘦身之后,我们会看到C盘空间的确有被释放一部分,至于释放的大小就要看情况了。有时候,我们也会考虑将数据库文件转移到其他盘来解决C盘空间问题,但是要怎么做呢?其实很简单!

    现在假设,我们需要将数据库文件从C盘的数据库实例(pubs)默认路径转移到D盘指定文件夹loc1中, 第一步,打开SQL Server,创建一个新的query文件,输入以下代码:

    USE MASTER;
    GO
    -- Take database in single user mode -- if you are facing errors
     -- This may terminate your active transactions for database
    ALTER DATABASE pubs
    SET SINGLE_USER
    WITH ROLLBACK IMMEDIATE;
    GO
    -- Detach DB
    EXEC MASTER.dbo.sp_detach_db @dbname = N'pubs'
    GO
    View Code

    执行以上代码,会看到如下提示信息:

    此时会发现原有路径下的MDF 和 LDF文件前面多了一把小锁:

    第二步,将数据库MDF和LDF两个文件复制到想转移的目标文件夹中,这里是D:loc1:

    第三步,回到SQL Server,输入以下代码:

    CREATE DATABASE pubs ON
    ( FILENAME = N'D:loc1pubs.mdf' ),
     ( FILENAME = N'D:loc1pubs_log.ldf' )
    FOR ATTACH
    GO
    View Code

    执行代码,将看到提示信息:Command(s) completed successfully.

    到这里,数据库转移就完成了,此时,可以放心删除C盘中相关的数据文件了。

    这里还有一个小小的提醒:你可以使用ROLLBACK IMMEDIATE即时终止你的活动事务,但不要让它随机执行,除非你明确知道它们不再需要或者经过审查发现因任何原因出现数据库的连接我们无法手动终止,那就做吧~

    作者:Ribbon 出处: http://www.cnblogs.com/Ribbon/ 本文版权归作者和博客园共有,欢迎转载。未经作者同意下,必须在文章页面明显标出原文链接及作者,否则保留追究法律责任的权利。 如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!
  • 相关阅读:
    关于销售订单状态(转载)
    SAP VA02 为销售订单添加附件
    销售订单行项目的装运点字段确认规则
    SAP 没有找到物料编号转换的设置
    ABAP动态 I TAB
    ABAP
    记住一个道理:只要自己变优秀了,其他的事情才会跟着好起来。
    《将博客搬至CSDN》
    Python3命名规范
    Linux下批量杀掉 包含某个关键字的 程序进程
  • 原文地址:https://www.cnblogs.com/Ribbon/p/4720320.html
Copyright © 2011-2022 走看看