亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

自動清理數據庫日志文件的方法

       如何删除数据库日志文件,但是想想还是不是不方便需要手工操作,于是想结合作业实现自动清理日志文件,在清理日志文件时我加上了条件,当磁盘控空间不足多少M才会清理,下面介绍如何实现该功能。没有阅读上一篇文章的,可以通过传送门阅读(删除数据库日志文件的方法)!

阅读目录

  • SQL查询磁盘空间大小

  • 存储过程添加作业

  • 示例下载

回到顶部

SQL查询磁盘空间大小

   采用内置的存储过程,即可查看各个磁盘可用空间

   

exec master..xp_fixeddrives

 

 

 

回到顶部

存储过程添加作业

  

复制代码

GO))BEGIN     dbo.usp_p_CreateJobENDGO dbo.usp_p_CreateJob(    ),             ),                          ,         ,                    ,                                    )AS功能:创建SQL作业参数:    @jobname:作业名称    @sql:要执行的命令    @freqtype:时间周期,month 月,week 周,day 日    @fsinterval:相对于每日的重复次数    @time:开始执行时间,对于重复执行的作业,将从0点到23:59分    @description:作业的描述*/ BEGIN    )    ()            TRANSACTION    INT    0        添加类别    )    BEGIN        '         QuitWithRollback    END        删除作业      )       )          @JobName       )      BEGIN          检查此作业是否为多重服务器作业         ) ) )        BEGIN          多重服务器作业不操作          '          )            QuitWithRollback        END        ELSE         BEGIN           删除[本地]作业           @JobName          NULL         END       END      NULL        ,             ,             ,             ,             ,             ,             ,             ,             ,              OUTPUT     QuitWithRollback    */    ,             ,             ,             ,             ,             ,             ,             ,             ,             ,             ,             ,             0     QuitWithRollback    1     QuitWithRollback        创建调度    int    4                                            8                                                        ,end    0    end        ,         ,         ,                                                ,                                               ,                               ,                ,        @time                                      QuitWithRollback    '     QuitWithRollback    TRANSACTION     EndSave    QuitWithRollback:            EndSave:ENDGO

复制代码

 

       结合上一篇文章的usp_p_delDBLog,进行改造

  

 

复制代码

GO))BEGIN     dbo.usp_p_delDBLogENDGO usp_p_delDBLog(    ,    )*    功能:收缩当前数据库日志文件*    参数  @DriveLimit:当前数据库所在磁盘空间到达多少的时候进行收缩数据库  MB*          @DBLogSise:日志文件收缩至多少M 默认收缩到最小*/AS BEGIN    0    BEGIN        RETURN    END        当前数据库所在磁盘    )    BIGINT       sysfiles     #TempFile(        Drive 磁盘        Available 可用大小MB    )     #TempFile(Drive,Available)     master..xp_fixeddrives    查询当前数据库所在磁盘剩余空间大小     #TempFile    @Drive    符合条件则进行收缩日志文件    @DriveLimit    BEGIN            查询出数据库对应的日志文件名称        )        )        )                SELECT             B.name,            A.name         A         B         B.database_id        ()                             --设置数据库恢复模式为简单        ALTER DATABASE [] SET RECOVERY SIMPLE;        --收缩日志文件        DBCC SHRINKFILE ();        --恢复数据库还原模式为完整        ALTER DATABASE ['        )        END         #TempFileENDGO

复制代码


这里主要添加了查询当前数据库所在磁盘空间剩余大小的功能

复制代码

    当前数据库所在磁盘    )    BIGINT       sysfiles     #TempFile(        Drive 磁盘        Available 可用大小MB    )     #TempFile(Drive,Available)     master..xp_fixeddrives    查询当前数据库所在磁盘剩余空间大小     #TempFile    @Drive

复制代码

好了上面的准备工作做完以后可以通过以下SQL进行添加自动运行的作业

复制代码

----执行条件为磁盘空间不足 5000MB,即@DriveLimit=5000 可自行配置)' varchar(100)     varchar(max)     varchar(6)     int     int     varchar(1000)

复制代码

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消