SQL SERVER 2008数据库日志文件收缩的方法
最近公司的数据库随着业务量的增多,日志文件巨大(超过300G),造成磁盘空间不够用,进而后来的访问数据库请求无法访问。
网上类似的方法也很多,但不可行,如下是我实践过,可行的,将日志文件收缩至任意指定大小的方法:
第一步: 在SQL SERVER Management Studio 中右击数据库选择“属性”---》“选项”,将恢复模式由默认的“完整”改为“简单”。
第二步:再次右键选择数据库的“任务”--》“收缩”---》“文件”菜单,进入收缩文件页面,将(要收缩的)文件类型选定为“日志”, 将页面下面的“收缩操作”单选框里选择“在释放未使用的空间前重新组织页,将文件收缩到:”,然后填写合适的收缩后的日志文件大小。
最后点击这个页面下面的“确定”按钮,以执行收缩文件(日志)操作。
执行完毕后,用户可以查到到的确该日志文件收缩到指定的大小了。
将文件收缩到 0 即可。瞬间就ok了,比用命令快多了,对于36g的日志也很快。
第三步:在SQL SERVER Management Studio 中右击数据库选择“属性”---》“选项”,将恢复模式由默认的“简单”改为“完整”。
下面是最常用的方法一
USE [master] GO ALTER DATABASE 库名 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 库名 SET RECOVERY SIMPLE --简单模式 GO USE 库名 GO DBCC SHRINKFILE (N'库名_log' , 11, TRUNCATEONLY) GO --这里的DNName_Log 如果不知道在sys.database_files里是什么名字的话,可以用以下注释的语句进行查询 --USE 库名 --GO --SELECT file_id,name FROM sys.database_files; --GO USE [master] GO ALTER DATABASE SCDMS SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE SCDMS SET RECOVERY FULL --还原为完全模式 GO
一般来说上面的sql对于日志2个G内速度还可以,如果不行请参考下面的步骤
1:然后在网上查找命令,找到日志文件类型为 REPLICATION 即发布状态
2:又查找到执行命令 ,该命令显示很多status为2的日志,即没有提交的。
DBCC LOGINFO('数据库名称')
3:直接选择我之前创建的发布,提示以下错误:
sqlserver无法作为数据库主体执行,因为主体 "dbo" 不存在...
查找到以下命令,为用户添加数据库角色时提示已经存在此帐号请查看数据库下是否已经存在该帐号并删除重新授权
USE 库名
EXEC sp_changedbowner 'sa'
4:然后再删除发布和订阅即成功。最后再执行第一步的SQL命令,日志文件缩小成功。
方法二、先设置恢复模式为“简单恢复”模式,再收缩:
USE BigData ; GO ALTER DATABASE BigData SET RECOVERY SIMPLE;--设置简单恢复模式 GO DBCC SHRINKFILE (BigData_Log, 1); GO ALTER DATABASE BigData SET RECOVERY FULL;--恢复为原模式 GO
方法三、
USE BigData; GO BACKUP LOG DATABASENAME TO DISK='d:\test.bak' -- Shrink the truncated log file to 1 MB. DBCC SHRINKFILE (Bigdata_Log, 1); GO
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
SQL Server 2008登录错误:无法连接到(local)解决方法
在一些朋友安装完SQL Server 2008之后大多会遇到连接出错的问题比如:SQL Server 2008登录错误:无法连接到(local)等等相关问题,本文将详细介绍解决方法,需要的朋友可以参考下2012-12-12SQL 2008 还原SQL 2005备份文件不成功的解决方法
本文主要介绍了SQL 2008还原SQL 2005备份文件不成功的解决方法,具有很好的参考价值,下面跟着小编一起来看下吧2017-02-02使用Navicat Premium将SQLServer数据导出为sql格式
这篇文章主要介绍了使用Navicat Premium将SQLServer数据导出为sql格式,需要的朋友可以参考下2016-12-12SQL Server使用一个语句块批量插入多条记录的三种方法
本文介绍了三种不同的方法向数据库中一次插入多条记录的方法,第三种方法是SQL Server2008中特有的,大家体验一下吧。2016-05-05SQL Server 2008中的代码安全(二) DDL触发器与登录触发器
MicrosoftSQL Server 提供两种主要机制来强制使用业务规则和数据完整性:约束和触发器。触发器为特殊类型的存储过程,可在执行语言事件时自动生效。SQL Server 包括三种常规类型的触发器:DML 触发器、DDL 触发器和登录触发器。2011-06-06sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法
登陆数据库后,右键打开表提示:目录名无效,执行SQL语句也提示有错误,现在把解决方法分享给大家2014-01-01SQL Server复制需要有实际的服务器名称才能连接到服务器
服务器上安装的WIN2008 R2,然后没有在意机器名,安装了SQL2008 R2数据库之后,配置AD域的时候修改了机器名2013-11-11
最新评论