相思资源网 Design By www.200059.com

最近公司的数据库随着业务量的增多,日志文件巨大(超过300G),造成磁盘空间不够用,进而后来的访问数据库请求无法访问。

网上类似的方法也很多,但不可行,如下是我实践过,可行的,将日志文件收缩至任意指定大小的方法:

第一步: 在SQL SERVER Management Studio 中右击数据库选择“属性”---》“选项”,将恢复模式由默认的“完整”改为“简单”。

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

第二步:再次右键选择数据库的“任务”--》“收缩”---》“文件”菜单,进入收缩文件页面,将(要收缩的)文件类型选定为“日志”, 将页面下面的“收缩操作”单选框里选择“在释放未使用的空间前重新组织页,将文件收缩到:”,然后填写合适的收缩后的日志文件大小。

最后点击这个页面下面的“确定”按钮,以执行收缩文件(日志)操作。

执行完毕后,用户可以查到到的确该日志文件收缩到指定的大小了。

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

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

将文件收缩到 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,日志文件

相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com

评论“SQL SERVER 2008数据库日志文件收缩的方法”

暂无SQL SERVER 2008数据库日志文件收缩的方法的评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。