• SQL Server 定时清理数据库日志文件


    USE [msdb]
    GO
    
    /****** Object:  Job [ClearDBLog]    Script Date: 2020/6/15 13:44:38 ******/
    BEGIN TRANSACTION
    DECLARE @ReturnCode INT
    SELECT @ReturnCode = 0
    /****** Object:  JobCategory [Database Maintenance]    Script Date: 2020/6/15 13:44:38 ******/
    IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'Database Maintenance' AND category_class=1)
    BEGIN
    EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'Database Maintenance'
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    
    END
    
    DECLARE @jobId BINARY(16)
    EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'ClearDBLog', 
    		@enabled=1, 
    		@notify_level_eventlog=2, 
    		@notify_level_email=0, 
    		@notify_level_netsend=0, 
    		@notify_level_page=0, 
    		@delete_level=0, 
    		@description=N'无描述。', 
    		@category_name=N'Database Maintenance', 
    		@owner_login_name=N'sa', @job_id = @jobId OUTPUT
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    /****** Object:  Step [ClearDBLogStep1]    Script Date: 2020/6/15 13:44:38 ******/
    EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'ClearDBLogStep1', 
    		@step_id=1, 
    		@cmdexec_success_code=0, 
    		@on_success_action=1, 
    		@on_success_step_id=0, 
    		@on_fail_action=2, 
    		@on_fail_step_id=0, 
    		@retry_attempts=0, 
    		@retry_interval=0, 
    		@os_run_priority=0, @subsystem=N'TSQL', 
    		@command=N'ALTER DATABASE [DigitalFactory_60] SET RECOVERY SIMPLE WITH NO_WAIT  
    GO
    --设置数据库恢复模式为简单
    ALTER DATABASE [DigitalFactory_60] SET RECOVERY SIMPLE;
    GO
    --收缩日志文件
    DBCC SHRINKFILE (N''DigitalFactory_60_log'', 11, TRUNCATEONLY);
    GO
    ALTER DATABASE [DigitalFactory_60] SET RECOVERY FULL WITH NO_WAIT  
    GO  
    --恢复数据库还原模式为完整
    ALTER DATABASE [DigitalFactory_60] SET RECOVERY FULL', 
    		@database_name=N'DigitalFactory_60', 
    		@flags=0
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'ClearDBLogPlan', 
    		@enabled=1, 
    		@freq_type=4, 
    		@freq_interval=1, 
    		@freq_subday_type=1, 
    		@freq_subday_interval=0, 
    		@freq_relative_interval=0, 
    		@freq_recurrence_factor=0, 
    		@active_start_date=20200615, 
    		@active_end_date=99991231, 
    		@active_start_time=0, 
    		@active_end_time=235959, 
    		@schedule_uid=N'bddeed70-2db4-4041-99d5-376dadc7870e'
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    COMMIT TRANSACTION
    GOTO EndSave
    QuitWithRollback:
        IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
    EndSave:
    GO
    

    其中,DigitalFactory_60为数据库文件名称,DigitalFactory_60_log为数据库日志文件名称。

    具体在使用的时候,将数据库文件名称和数据库日志文件名称替换为自己数据库的相关文件名称,然后在数据库查询框中执行以上代码,就会生成SQL Server代理作业(数据库需要启用SQL Server代理服务)。

     右键点击“属性”,在弹出界面中选择“计划”

     双击右侧的计划列表,可以设置作业运行的频率。

  • 相关阅读:
    Jboss下jaxws的开发
    Jboss as 服务器基本设置
    classloader常见问题总结
    Servlet容器 Jetty
    Jetty 的工作原理以及与 Tomcat 的比较
    resin设置jvm参数
    Solr4.0使用
    Solr 4.0部署
    Solr 搜索功能使用
    HttpSolrServer 实例管理参考,来自org.eclipse.smila.solr
  • 原文地址:https://www.cnblogs.com/bossing/p/13130471.html
Copyright © 2020-2023  润新知