SQLServer 清理日志的实现

本文以sql2012为例

第一步,(查询日志中文件名和大小):

USE 数据库名
GO
SELECT file_id, name,size,* FROM sys.database_files;

查询结果如上图所示,可以看到其中name字段为日志文件名,size是日志大小,接下来就可以执行清理日志操作。值得注意的是,清理日志必须先将数据库转成简单模式,清理后再将数据库置为完全模式,具体的语句如下:

第二步,清理:

USE [master]
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE --简单模式
GO
USE 数据库名
GO
DBCC SHRINKFILE (N'文件名' , 11, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 数据库名 SET RECOVERY FULL --还原为完全模式
GO

其中文件名为第一步中查询出的name字段对应的内容。清理完成后,会发现日志的size变小了。

到此这篇关于SQLServer 清理日志的实现的文章就介绍到这了,更多相关SQLServer 清理日志内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Sqlserver 2000/2005/2008 的收缩日志方法和清理日志方法

    1.设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择"简单",然后按确定保存 2.在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定 3.收缩数据库完成后

  • SQLServer清理日志文件方法案例详解

    很多时候SQLSERVER的日志文件是不看的,但时间久了,够把磁盘撑爆,这时候就需要清理日志文件.使用以下方法,在实际环境中经过测试,400G的日志文件1秒就被清理. 操作步骤 1. 将恢复模式改成"简单" 右键数据库 - 属性,切换到选项,将恢复模式修改为简单. 2. 收缩日志 右键数据库 - 任务 - 收缩 - 文件 确定后会发现,日志文件被迅速清理. 3. 命令操作 USE [master] GO ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIM

  • SQL Server 2000 清理日志精品图文教程

    SQL Server 2000 清理日志精品教程 SQL Server 2000 数据库日志太大!如何清理SQL Server 2000的日志呢?如何压缩SQL Server 2000的日志呢?如何让SQL Server 2000的日志变小呢? 据小编所知,办法有很多很多,总结起来算有3类吧: 1.点几下鼠标,用SQL Server 2000管理工具中的企业管理器即可实现,待会儿详解:2.用SQL语句,在SQL Server 2000管理工具中的查询分析器可以实现,此法高级人士喜欢用:3.用第三

  • linux自动清理日志脚本分享

    1.做自动部署系统时精简的一个脚本,主要功能是清理所有目录的日志 2.根据给定日志目录,删除时间 结合crontab进行清理日志,清理完成后,后在/var/log/deltelog/ 生成按照月的清理日志 3.扩展,因为脚本采用mtime(最后修改时间)进行删除,所以可以适用于删除过期备份等,不受文件名称的限制 shell小窍门 find –type f –print 时会根据换行或者空格来输出查找的文件,在不同的sh下有不同的反应,如果不做处理结合xargs 进行删除 更改操作,会有影响 所以

  • C#使用SqlServer作为日志数据库的设计与实现

    前言 做一个简单的日志数据库 功能不需要特别繁琐 主要就是记录普通日志和错误日志(INFO,ERROR) 用数据库作为日志有好处也有坏处 相比于文本来说 更加容易操作 后期查看日志可以根据时间筛选 当然要求也多了点 没那么灵活了 首先你的PC上还要安装一个SqlServer 本来是想用log4net配置去实现的 发现配置很繁琐 决定自己设计一个 肯定有不少不足之处 分为以下几个步骤 1.建立日志数据表 都用一个表来存放,那么字段就要多设置一个 用来区分不同的日志类型 具体怎么设置 也很简单 字段

  • 删除sqlserver数据库日志和没有日志的数据库恢复办法

    一.删除数据库日志文件的方法 你曾经有在执行SQL的时候,数据库报事务日志已满,然后执行报错.然后纠结于怎么删除数据库日志,捣鼓半天吗,现在就提供两种删除日志文件的方法,希望能够帮到你! 方法一:手工操作1.数据库->右键->属性->选项-恢复模式->由完成切换成简单2.数据库->右键->任务->收缩-文件->由完成切换成简单->文件类型->日志->将文件收缩到 方法二:存储过程代替手工操作 复制代码 代码如下: --日志文件收缩至多少M 

  • sqlserver 数据库日志备份和恢复步骤

    --创建测试数据库 CREATE DATABASE Db GO --对数据库进行备份 BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT GO --创建测试表 CREATE TABLE Db.dbo.TB_test(ID int) --延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败) WAITFOR DELAY '00:00:01' GO --假设我们现在误操作删

  • sqlserver 数据库压缩与数据库日志(ldf)压缩方法分享

    Access 操作很简单,具体不步骤如下:打开你mdb数据库,工具-->数据库实用工具-->压缩和修复数据库(c)... SQL SERVER 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大 1.设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQLServer-->SQLServer组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数

  • SQLServer日志清空语句(sql2000,sql2005,sql2008)

    SQL Server日志清空方法 在查询分析器中顺序执行以下三步,其中 databasename 为你的数据库文件名 sql2000日志清空 可以将jb51.ldf文件变得很小,方便备份数据库等,在sqlserver查询分析器中执行即可. 复制代码 代码如下: DUMP TRANSACTION [jb51] WITH NO_LOGBACKUP LOG [jb51] WITH NO_LOGDBCC SHRINKDATABASE([jb51]) 1.清空日志: DUMP TRANSACTION [d

  • MySQL 自动清理binlog日志的方法

    说明: 开启MySQL binlog日志的服务器,如果不设置自动清理日志,默认binlog日志一直保留着,时间一长,服务器磁盘空间被binlog日志占满,导致MySQL数据库出错. 使用下面方法可以安全清理binlog日志 一.没有主从同步的情况下清理日志 mysql -uroot -p123456 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY)'; #mysql 定时清理5天前的binlog mysql -u root

随机推荐

其他