当前位置: 首页 > 编程笔记 >

SQL SERVER 2008数据库日志文件收缩的方法

成和悌
2023-03-14
本文向大家介绍SQL SERVER 2008数据库日志文件收缩的方法,包括了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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: [1]指出: “从堆中删除数据时,页面上的数据不会被压缩(回收)。并且如果堆页面的所有行都被删除,则通常无法回收整个页面” “ ALTER INDEX重建和重组选项不能用于对堆中的空间进行碎片整理(但它们可以用于对堆中的非聚集索引 进行碎片整理。)如果要在SQL Server 2005中对堆进行碎片整理,则需要三个选项: 1)在堆上创建一个聚集索引,然后删除该聚集索引; 2)使用SEL

  • 本文向大家介绍MongoDB数据库的日志文件深入分析,包括了MongoDB数据库的日志文件深入分析的使用技巧和注意事项,需要的朋友参考一下 前言 日志是MongoDB中一个非常重要的功能,他保证了数据库服务器在意外断电、自然灾害下数据的完整性 。MongoDB日志记录了数据库实例的健康状态、语句的执行状况、资源的消耗情况,所以日志对于分析数据库服务和性能优化很有帮助。 因此,很有必要花费一些时间来

  • 主要内容:一、数据库,二、日志落盘,三、源码分析,四、总结一、数据库 数据库,本身有一个库,那应该是有自己的库的管理方式,这种传统的关系型数据库是如何把数据存储到硬盘上呢?文件的组织形式有哪些呢?MySql数据库一般要有两类文件落盘,一类是日志型文件,一类是真正的数据文件,在数据文件中,又包含索引数据和真实数据。这也是经常提到聚簇索引和非聚簇索引的主要原因,因为这两种索引,在硬盘中的存储方式是不一样的。前者本身就是数据的顺序集合,后者是需要二次再通过指针

  • 本文向大家介绍mysql二进制日志文件恢复数据库,包括了mysql二进制日志文件恢复数据库的使用技巧和注意事项,需要的朋友参考一下 二进制日志的文件的作用     mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句。如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合使用,即可再现用户操作,使数据库

  • 本文向大家介绍Oracle表空间数据库文件收缩案例解析,包括了Oracle表空间数据库文件收缩案例解析的使用技巧和注意事项,需要的朋友参考一下 我们经常会遇到数据库磁盘空间爆满的问题,或由于归档日志突增、或由于数据文件过多、大导致磁盘使用紧俏。这里主要说的场景是磁盘空间本身很大,但表空间对应的数据文件初始化的时候就直接顶满了磁盘空间,导致经常收到磁盘空间满的报警。 一、错误信息 告警内容如下: 【

  • 本文向大家介绍SQL Server 压缩日志与减少SQL Server 文件大小的方法,包括了SQL Server 压缩日志与减少SQL Server 文件大小的方法的使用技巧和注意事项,需要的朋友参考一下 一般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据。第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复。   1.清空日志   DUMP TRANSACTI