• SQL Server系列之 在发布复制模式下移动日志文件


    一、问题起因

      随着数据库文件的日益增大,存放的磁盘空间越发显得不足,同时为了提高数据库的性能,数据库日志文件迁移显得尤为重要,即数据库主文件和日志文件分别存放在不同的磁盘上。 

    二、尝试迁移

      迁移日志文件,首先想到的是Detach和Attach方式,可以使用下面任一种方式

    1. 脚本

    SP_DETACH_DB 'DB NAME', 'TRUE'

    你会发现如下错误

    2. 通过SSMS管理器

    注意Status和Message列

    查了下MSDN,发现确实如此,如果数据库存在发布复制情况,则无法通过Detach和Attach方式来完成(除非你先移除发布复制)。

    三、问题解决

    1. 通过以下命令得到数据库基本信息

    SP_HELPDB DB_NAME

    2. 执行以下脚本

    ALTER DATABASE DB_NAME
    MODIFY FILE (NAME =DB_NAME_log, 
                 FILENAME = 'D:\DB_Log\DB_NAME_log.ldf');

    3. Stop the replication log reader agent job and distribution agent job

    4. Offline发布数据库 (如果时间太长,可先停掉SQL Server服务,然后再重启服务,这样可以快速停掉所有的数据库连接和操作)

    ALTER DATABASE DB_NAME SET OFFLINE

    5. 移动log文件至第2步的位置(即目录D:\LMS_DB\)

    6. Online发布数据库

    ALTER DATABASE DB_NAME SET ONLINE;

    7. 启动第3步停掉的两个Job

    作者:舍长
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    类间关系总结
    Android数据持久化技术
    广播
    活动
    Clean Code
    理解async特性
    async和await构成的异步方法
    ubuntu开启ssh服务
    lumen可以使用laravel-ide-helper
    laravel excel迁移到lumen
  • 原文地址:https://www.cnblogs.com/panchunting/p/SQL_Tech_002.html
Copyright © 2020-2023  润新知