sqlserver 实现收缩数据库日志操作

说明:

收缩日志的原因有很多种,有些是考虑空间不足,有些则是应用程序限制导致的。

--将“恢复模式”设置为“简单”
ALTER DATABASE xszzxt_test SET RECOVERY SIMPLE
GO
--收缩日志文件大小到10M
DBCC SHRINKFILE (N'xszzxt_test_log' , 10, TRUNCATEONLY)
GO
--将“恢复模式”设置为“完整”
ALTER DATABASE xszzxt_test SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE xszzxt_test SET RECOVERY FULL
GO

补充:SQL Server收缩数据库日志文件失败的解决办法

由于数据库日志文件过大导致磁盘不够用,我们采取的解决办法是收缩数据库日志文件,但是有时候执行收缩操作的时候不成功也不报错,这就头疼了:

先看下,如何做收缩操作的吧:

将文件收缩到最小:

也可以写SQL执行:

DBCC SHRINKFILE('Back_up_log',1)

如果执行完以上操作发现数据库日志文件的大小依旧没变,那么试试如下操作之后再试试收缩操作呢

这个操作就是把恢复模式改成“简单”,我之前是“完整”,没有完成收缩操作,改成简单之后收缩操作完成了~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • SqlServer中tempdb的日志机制原理解析及示例分享

    测试用例 我们分别在用户数据库(testpage),tempdb中创建相似对象t1,#t1,并在tempdb中创建创建非临时表,然后执行相应的insert脚本(用以产生日志),并记录执行时间用以比较用以比较说明tempdb"快" Code 用户数据库testpage use testpage go create table t1 ( id int identity(1,1) not null, str1 char(8000) ) declare @t datetime2=sysutcd

  • SQLServer数据库中开启CDC导致事务日志空间被占满的原因

    SQLServer中开启CDC之后,在某些情况下会导致事务日志空间被占满的现象为: 在执行增删改语句(产生事务日志)的过程中提示,The transaction log for database '***' is full due to 'REPLICATION'(数据库"***"的事务日志已满,原因为"REPLICATION"). CDC以及复制的基本原理粗略地讲,对于日志的使用步骤如下: 1,每当基础表(开启了CDC或者replication的表)产生事务性操作

  • Sqlserver2005日志文件太大如何减小

    Sqlserver2005日志文件太大,使其减小的方法如下所示: 运行下面的三行 dbName为数据库名: backup log dbNamewith NO_LOG backup log dbNamewith TRUNCATE_ONLY DBCC SHRINKDATABASE(dbName) 日志文件减小到1MB sql server清空日志文件2011-04-06 23:05 1: 删除LOG 1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库 2:删除LOG文

  • SqlServer数据库提示 “tempdb” 的日志已满 问题解决方案

    执行sql 语句,中间没有用到临时表 提示服务器: 消息 9002,级别 17,状态 2,行 1 数据库 'tempdb' 的日志已满.请备份该数据库的事务日志以释放一些日志空间. 网上找了下解决方案,大体是扩大临时库的日志文件的大小解决的 解决过程: 查看了下数据库的属性,是自动增长,不指定文件大小上限. 在网上Google了很久,试了些方法都不行:数据库所在磁盘还有很大的可用空间,试着下重药了. 直接把tempdb的数据文件和日志文件的大小改为3000M, 问题解决. 记录一下清空日志的命令

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

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

  • sqlserver 实现收缩数据库日志操作

    说明: 收缩日志的原因有很多种,有些是考虑空间不足,有些则是应用程序限制导致的. --将"恢复模式"设置为"简单" ALTER DATABASE xszzxt_test SET RECOVERY SIMPLE GO --收缩日志文件大小到10M DBCC SHRINKFILE (N'xszzxt_test_log' , 10, TRUNCATEONLY) GO --将"恢复模式"设置为"完整" ALTER DATABASE x

  • 使用alwayson后如何收缩数据库日志的方法详解

    问题描述: 在使用了alwayson后,主从库实时同步,原理是通过事务日志同步的,所以造成主数据库的事务日志一直在使用,而且无法收缩主数据库的事务日志. 在主从库同步时,收缩数据库是不起作用的.由于主数据库无法收缩,所以从数据库的日志也会一直跟着增长,造成磁盘空间一直增长. 网上大量的收缩日志的方法,基本上都不管用,怀疑根本没有在实际环境中使用过,以下方案是我在实际中使用后总结记录的. 解决方案: 最开始发现这个问题后,也是研究了好久,发现的方法,先是全手动操作.因为这些操作,并不能用语句来实现

  • 收缩数据库日志文件的方法(仅适用于mssql2005)

    执行以下语句,在执行前将dbname修改为需要瘦身的数据库名称,执行后数据库日志文件将变为1M大小. 复制代码 代码如下: backup log dbName with NO_LOG; backup log dbName with TRUNCATE_ONLY; DBCC SHRINKDATABASE(dbName);

  • SqlServer创建自动收缩事务日志任务的图文教程

    目录 1. 进入SSMS 2. 填写名称 3.步骤 4. 选择高级 5. 新建计划 6. 填写计划 7. 新建完成点击确认 8. 刷新查看作业 9. 执行作业 总结 1. 进入SSMS 点击展开sqlserver代理,右键点击“作业”,然后选择新建作业. 2. 填写名称 名称可以随便填写,只要能表示这次作业任务就行了.简洁明了,让自己后面能看懂. 所有者选择sa或者windows用户.如果需要远程操作,建议选择sa账户.windows账户只支持本地登陆后操作执行. 说明也可以随便填写.自己明白就

  • 清除SQL Server数据库日志(ldf文件)的方法汇总

    目录 解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!) 解决方案2 -收缩数据库日志文件(最靠谱方案!) 解决方案3 - 采用SQL脚本删除. 清除SQL Server数据库日志(ldf文件)的几种方法 随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理. 解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!) 1. 在SQL管理器分离数据库. 2. 对数据库日志文件进行压缩备份(rar, zip) 3. 直接删除ldf文件. 附加数

  • SQL Server 2000/2005/2008删除或压缩数据库日志的方法

    由 于数据库日志增长被设置为"无限制",所以时间一长日志文件必然会很大,一个400G的数据库居然有600G的LOG文件,严重占用了磁盘空间.由于主要 是做OLAP,所以数据库本身不会有大变动,所以日志也就没有多少作用了,因此想办法把数据库日志文件收缩到很小或者删除. 网 上搜索相关解决方案后,得到的答案丰富多彩,但是真正管用的方案并不多,这里分享一个csdn上找到的方法.这个方法讲述了SQL Server 2005和SQL Server 2008在收缩数据库日志的不同之处,颇有帮助.同

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

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

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

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

  • SQLServer数据库误操作恢复的方法

    目录 前言 一.恢复数据实例 1.创建初始数据 2.保证数据恢复的前提条件 3.模拟不小心误操作 4.开始恢复 二.恢复数据原理 1.数据库文件类型 2.使用bak恢复数据原理 总结 参考 前言 在日常开发工作中,有可能会存在数据库的误操作,比如不小心删除了一个表或者删除了一堆数据,这个时候我们就需要将数据库进行恢复,恢复到误操作以前的状态,而这篇文章就是主要如何在误操作之后,恢复数据库的数据. 一.恢复数据实例 1.创建初始数据 use master if exists (select * f

  • DBCC SHRINKDATABASEMS SQL数据库日志压缩方法

    MS SQL数据库日志压缩方法 MS SQL性能是很不错的,但是数据库用了一段时间之后,数据库却变得很大,实际的数据量不大.一般都是数据库日志引起的!数据库日志的增长可以达到好几百M. 网上的MSSQL虚拟主机价格也贵,要想不让数据库超容,只好压缩下数据库日志,或者删除数据库日志. 下面我给大家介绍一个方法 1.打开企业管理器 2.打开要处理的数据库 3.点击菜单>工具>SQL查询分析器 4.在输入窗口里面输入: DUMP TRANSACTION [数据库名] WITH NO_LOG BACK

随机推荐