`
xqf222
  • 浏览: 128888 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL清除所有数据库日志脚本

 
阅读更多

--SQL清除所有数据库日志脚本
declare @CurrentDataBaseName nvarchar(100)
declare @CurrentDataBaseID nvarchar(100)
declare @CurrentLogName nvarchar(100)
declare @CurrentClearString nvarchar(4000)
declare @CurrentLogFileName nvarchar(255)
declare @CurrentClearLogString nvarchar(2000)
--查询所有数据库名称
--select * from master..sysdatabases where dbid>=7
declare tb cursor local for select name,dbid from master..sysdatabases where dbid>=7;
open tb
fetch next from tb into @CurrentDataBaseName,@CurrentDataBaseID
while @@fetch_status=0
begin
--查询指定数据库对应的所有日志文件
--select * from sys.database_files
--使用游标查询数据库对应的日志文件
set @CurrentLogFileName=''
set @CurrentClearLogString=''
--select * from sysaltfiles where dbid=7 and status>2;
declare tf cursor local for select name from sysaltfiles where dbid=@CurrentDataBaseID and status>2 and groupid<>1;
open tf
fetch next from tf into @CurrentLogFileName
while @@fetch_status=0
begin
if @CurrentClearLogString<>''
begin
set @CurrentClearLogString+='
DBCC SHRINKFILE (['+@CurrentLogFileName+'] , 11, TRUNCATEONLY)'
--print @CurrentClearLogString
end
else
begin
set @CurrentClearLogString='
DBCC SHRINKFILE (['+@CurrentLogFileName+'] , 11, TRUNCATEONLY)'
end
--print '当前清除日志文件语句'+@CurrentClearLogString
fetch next from tf into @CurrentLogFileName
end
close tf
deallocate tf
--print @CurrentClearLogString;

set @CurrentClearString='
USE [master]
ALTER DATABASE ['+@CurrentDataBaseName+'] SET RECOVERY SIMPLE WITH NO_WAIT
ALTER DATABASE ['+@CurrentDataBaseName+'] SET RECOVERY SIMPLE
USE ['+@CurrentDataBaseName+']'+@CurrentClearLogString+'
USE [master]
ALTER DATABASE ['+@CurrentDataBaseName+'] SET RECOVERY FULL WITH NO_WAIT
ALTER DATABASE ['+@CurrentDataBaseName+'] SET RECOVERY FULL'
print @CurrentClearString;
exec sp_executesql @CurrentClearString;

print '清除数据库'+@CurrentDataBaseName +'日志完成,操作语句'
fetch next from tb into @CurrentDataBaseName,@CurrentDataBaseID
end
close tb
deallocate tb

print '清除所有数据库日志完成'

分享到:
评论

相关推荐

    SQL_Server_2008删除或压缩数据库日志的方法.doc

    标题与描述均指向了一个具体的技术问题的解决方法——在SQL Server 2008中如何删除或压缩数据库日志。这一需求通常出现在日志文件占用过多磁盘空间,或者备份过程耗时过长,影响正常业务操作的情况下。下面将详细...

    Windows计划任务配置定期执行SQL脚本对数据库数据自动导出删除及压缩

    5. **日志压缩**:数据库日志文件(如SQL Server的日志文件,即`.ldf`文件)会随着数据库操作的增加而增大。为了节省磁盘空间,可以定期进行压缩。这通常通过第三方工具或自定义脚本来完成,如使用7-Zip或WinRAR等...

    sqlserver多数据库自启动定时备份工具批量执行脚本

    "sqlserver多数据库自启动定时备份工具批量执行脚本"是一种高效的方法,它允许管理员自动化备份多个数据库,特别是在系统启动时自动运行,以确保数据始终得到保护。这个解决方案尤其适用于那些包含大量关键数据和对...

    SQL Server无法收缩日志文件的原因分析及解决办法

    此外,提供的脚本`[dbo].[ShrinkUser_DATABASESLogFile]`使用游标遍历所有用户数据库并尝试收缩日志文件。虽然这种方法可以批量处理,但可能因一个数据库的问题而中断其他数据库的收缩操作。为了解决这个问题,可以...

    SQL Server 数据库清除日志的方法

    本文将详细介绍两种主要的清除或收缩SQL Server数据库日志的方法,以及一个额外的高级技巧。 **方法一:使用备份日志并收缩日志文件** 1. **备份日志**:首先,可以使用`BACKUP LOG`命令来清除日志。在查询分析器...

    sql server 数据库脚本导出工具

    导出的结果是SQL脚本,该脚本可以用查询分析器执行。 数据导入: · 运行本程序,在主界面上选择数据库,点击“数据导入”按钮进入数据导入界面 · 进入界面时会要求您选择数据文件,您也可以点击“打开XML数据...

    用脚本缩小数据库日志

    为了解决这个问题,我们可以编写SQL脚本来截断并缩小数据库日志,以释放不必要的空间。以下是一个实用的脚本示例,用于自动遍历所有数据库并执行日志截断和数据库收缩操作。 首先,我们需要了解以下几个关键命令: ...

    sql清除日志工具

    标题"sql清除日志工具"指的是专门用来管理SQL Server事务日志的工具或脚本,它的目的是有效地减小日志文件的大小,释放磁盘空间。这样的工具通常会提供安全的方式来重置或清除日志,避免对数据库的正常运行造成影响...

    (高职)《SQL-Server数据库技术》期末考试卷综合测试题带答案2.doc

    * 选择题3:SQL Server 支持在线备份,但在备份过程中,不允许执行的操作是创建或删除数据库文件、创建索引、执行非日志操作和自动或手工缩小数据库或数据库文件大小 * 选择题4:SQL 语言中,条件“年龄 BETWEEN 20...

    SQLServer 工具箱v1.3(SQL脚本排序,日志清除,数据导入导出)

    SQLServer工具箱v1.3是一款专为SQL Server数据库管理员设计的实用工具集,它整合了多种功能,包括SQL脚本排序、日志清除以及数据导入导出,旨在提高数据库管理效率,确保系统的稳定运行。下面我们将详细探讨这些核心...

    SQL清除数据库里面所有用户表的数据

    ### SQL清除数据库内所有用户表的数据 在数据库管理与维护工作中,有时会遇到需要清除数据库中所有用户表数据的情况。这种需求可能出现在测试环境清理、数据初始化或迁移等场景。本文将详细介绍如何通过SQL脚本安全...

    sql server数据库中内容被挂马清除工具

    综上所述,"sql server数据库中内容被挂马清除工具"是针对SQL Server数据库安全的重要工具,它可以帮助用户识别和消除潜在的恶意代码,保护数据安全。在使用前需确保系统环境满足运行要求,同时在使用过程中采取必要...

    SqlServer日志清除专家

    "SqlServer日志清除专家"可能是第三方工具,提供自动化管理和清理日志的功能,如SQL Server Management Studio(SSMS)自带的T-SQL命令或专门的日志清理脚本。 5. **最佳实践**: - 监控日志使用情况,定期评估和...

    MSSQL数据库日志清理收缩工具

    本文将深入探讨“MSSQL数据库日志清理收缩工具”的相关知识点,以及如何利用该工具优化数据库性能。 首先,我们需要理解MSSQL的日志文件,通常称为 transaction log。日志文件记录了所有事务的详细操作,包括数据的...

    SqlServer数据库OGG安装部署及数据初始化.docx

    接下来,清除默认的清理作业,使用`sys.sp_cdc_drop_job 'cleanup'`,并用OGG的清理脚本创建新的清理作业,如`ogg_cdc_cleanup_setup.bat createjob ogg ogg dbname (local) ogg2`。 进入OGG的ggsci控制台,创建...

    数据库日志已满

    标题“数据库日志已满”通常指的是在使用关系型数据库管理系统(RDBMS)时,数据库的日志文件(如SQL Server的 transaction log 或 MySQL 的 binlog)已经达到了其最大容量,无法再记录新的事务操作。这可能会导致...

    SQLServer数据库设计和实现

    《SQLServer数据库设计和实现》一书由赵士山撰写,深入探讨了SQL脚本编程,包括存储过程和触发器的使用。在数据库设计中,规范化的范式理论是核心内容,它指导我们如何构建高效、稳定的数据库结构。 首先,第一范式...

    sql数据库死锁查询工具

    查询阻塞进程SQL工具"可能是指特定的数据库管理工具或脚本,用于实时监控和诊断SQL数据库中的死锁和阻塞情况。这类工具通常提供界面友好的方式来查看和分析阻塞链路,定位问题源头,帮助管理员迅速解决问题。 总之...

    modsecurity日志解析并存到mysql数据库

    3. **Python编程**: `modsecurity_log_mysql.py`是一个Python脚本,用于处理日志解析和数据库交互。Python因其强大的文本处理能力以及丰富的库支持(如正则表达式、pandas、sqlalchemy等)而常用于日志分析。 4. **...

Global site tag (gtag.js) - Google Analytics