zoukankan      html  css  js  c++  java
  • 使用作业定时压缩数据库

    有一个项目上的数据库使用了几个月.mdf文件与.ldf文件加起来竟然达到了100G+,这样下去硬盘会被撑爆的。

    这样的原因是因为异常情况造成某个数据表中有大量的冗余数据,将异常数据表的冗余数据清理之后,mdf文件并没有变小,因为对数据库进行了删除操作,ldf文件反而变增大很多!根据项目情况考虑使用作业方式定时压缩数据文件大小,压缩之后只有十几兆的大小。

    Setp1:开启SQL Server Agent服务

    使用作业需要SQL Agent服务的支持,并且需要设置为自动启动,否则你的作业不会被执行。

    以下步骤开启服务:开始——>运行——>输入"services.msc"——>进入服务,开启SQL Server Agent服务,并设置为自动。

    如图:

      

    Setp2:创建作业

    创建作业的过程这里就不说了,作业执行的命令为:

    DECLARE @Error INT
    SET @Error=(SELECT TOP 1 size/128.0 - CAST(FILEPROPERTY([NAME], 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB FROM sys.database_files ORDER BY [NAME] DESC)
    --PRINT @Error
    
    IF(@Error>1)
        BEGIN
            ALTER DATABASE HCJK_Customer  --数据库名字
            SET RECOVERY SIMPLE;  --设置简单恢复模式
            DBCC SHRINKFILE (HCJK_Customer, 1);  --(M)不能小于1M,参数“HCJK_Customer”应为 SELECT [name] FROM sys.database_files
            DBCC SHRINKFILE (HCJK_Customer_log, 1);  --(M)不能小于1M,参数“HCJK_Customer_log”应为 SELECT [name] FROM sys.database_files
            ALTER DATABASE HCJK_Customer
            SET RECOVERY FULL;  --恢复为原来完整模式
        END
    --ELSE
    --BEGIN
    --    PRINT  @Error
    --END    

    压缩操作前的.mdf文件与.ldf文件大小:

    压缩操作后的.mdf文件与.ldf文件大小:

  • 相关阅读:
    【SQL注入】之SQLMAP工具的使用
    【漏洞复现】之PHP-FRM远程代码执行漏洞(CVE-2019-11043)复现
    利用PHPStudy搭建伪静态页面
    【渗透测试小白系列】之利用PHPMyAdmin Getshell
    【渗透测试小白系列】之Docker入门以及漏洞环境搭建
    web服务器是什莫: tomcat各个目录简介
    equals和==的区别
    ln命令
    head tail ln sort uniq指令
    rpm包安装
  • 原文地址:https://www.cnblogs.com/lwenwen/p/3287834.html
Copyright © 2011-2022 走看看