SQL SERVER 2008数据库日志文件收缩的方法
作者:Fluent 发布时间:2024-01-27 09:29:38
最近公司的数据库随着业务量的增多,日志文件巨大(超过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
来源:http://www.cnblogs.com/Fluent-1202/p/7417799.html
猜你喜欢
- Python命名空间和作用域总结emmm,这一块讲了2个内容,一个是命名空间,一个是作用域。一个一个说吧命名空间A namespace is
- Python中print()函数的方法是打印指定的内容。在交互环境中输入“help(print)”指
- 在保持合理的数据采集上,使用python爬虫也并不是一件坏事情,因为在信息的交流上加快了流通的频率。今天小编为大家带来了一个稍微复杂一点的应
- 下面我们就分别讲述,虽然说的是Insert语句, 但是Select、Update、Delete语句都是一样的。 假如有下述表格:
- python具体强大的库文件,很多功能都有相应的库文件,所以很有必要进行学习一下,其中有一个ftp相应的库文件ftplib,我们只需要其中的
- 1、画直线的函数是cv2.linecv2.line函数语法:cv2.line(img,start_point,end_point,color
- 引言在开发过程中,经常需要观察本地文件系统的更改。经过谷歌了几个小时后,到了一个简单的工具来做这件事。该工具就是fsnotify是一个Go跨
- 本博文源于python科学计算,旨在解析如何使用python进行计算分段函数值。下面就以复杂的二元函数进行演示。题目再现求解思路首先先生成x
- Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库的安全进行全面地管理。按照本文
- 首先,项目结构如下:想要让导航栏、侧边栏变为公共页面,则要在App.vue页面中加入。假设已经有了Header.vue和Left.vue,这
- 疫情还没结束,小编只能宅在家里,哪哪也去不了,今天突发奇想给大家分享一篇教程关于Python paramiko 模块浅谈与SSH主要功能模拟
- 目录1.列表的介绍2.打印出列表的数据1.我们可以根据下标取值进行打印2.使用for循环遍历3.使用while循环遍历3.列表的添加操作1.
- 一、介绍实现的是把某个文件夹下的所有文件名提取出来,放入一个列表,在与excel中的某列进行对比,如果一致的话,对另一列进行操作,比如我们在
- [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1、生成一
- 如下所示:#!/usr/bin/python#-*- coding: utf-8 -*-fin=open('add_1.txt
- #!/usr/bin/env Pythonfrom __future__ import print_functionfrom collect
- 当浏览网页时,总有那么一类网站华丽而富有趣味性。在浏览信息的同时,足够让我们眼前一亮。它们在充分融入动画、视频、游戏、甚至是与众不同的交互操
- 我就废话不多说了,大家还是直接看代码吧~func main() { var a chan string a =mak
- 本文实例讲述了Python实现根据IP地址和子网掩码算出网段的方法。分享给大家供大家参考。具体如下:该代码在Linux环境2.6.6pyth
- 这三种情况下所得到的server.MapPath是一致的,这就导致上传之后写入数据库的图片地址和实际图片存储地址不一致,因此,我们需要自定义