如何释放日志空间

luoyunfu 2003-08-20 11:42:56
我用Dump transaction xxxx with no_log命令无法释放XXXX库的日志空间,再用dbcc sqlperf(logspace)查看其Log space used 仍为100% ,且其status=8,各位高手请问如何处理此问题

Database Name Log size(MB) Log space used(%) Status -------------------------------------------------------------------------------------------------------xxxx 10.0 100 8 pubs 0.0 0.0 1 msdb 2.0 0.195313 0 master 0.0 0.0 1
...全文
89 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoyunfu 2003-08-21
  • 打赏
  • 举报
回复
感谢各位大侠,以上方法皆非最精妙的!
CrazyFor 2003-08-20
  • 打赏
  • 举报
回复
并:
数据库->右键->所有任务->收缩数据

选中:在收缩前将页移到文件启始位置..
CrazyFor 2003-08-20
  • 打赏
  • 举报
回复
并:
数据库->右键->所有任务->收缩数据

选中:在收缩前将页移到文件启始位置..
pengdali 2003-08-20
  • 打赏
  • 举报
回复
示例
下例将 UserDB 用户数据库中名为 DataFil1 的文件收缩到 7 MB。

USE UserDB
GO
DBCC SHRINKFILE (DataFil1, 7)
GO

CrazyFor 2003-08-20
  • 打赏
  • 举报
回复
清空日志:
BACKUP LOG 库名 WITH NO_LOG



DBCC SHRINKFILE( '日志文件名',新的大小数值型如1)

日志文件名是这样的:

select name from sysfiles
如:
mastlog
pengdali 2003-08-20
  • 打赏
  • 举报
回复
DBCC SHRINKFILE( @LogoFileName,@NewSize)
sdhdy 2003-08-20
  • 打赏
  • 举报
回复
方法1、
--在查询分析器,选中所要清理日志的数据库,执行如下SQL
backup log 数据库名 with no_log
DBCC SHRINKFILE ( 日志文件名或日志文件ID,要缩小的目标大小)

在当前数据库下
select fileid,groupid,name from sysfiles where groupid=0
----------------------------------------
得到以下结果
fileid groupid name
2 0 test_log

以上结果,fileid为日志文件ID,name为test_log

你可以
backup log test with no_log
dbcc shrinkfile (2,2)
or
backup log test with no_log
dbcc shrinkfile ('test_log',2)
如果以后,不想要它变大,在数据库上点右键->属性->选项->故障恢复 模型 选择 简单模型就可以了!
或用SQL语句
alter database 数据库名 set recovery simple

方法2、
SQL SERVER企业管理器-》SQL SERVER组-》服务器-》数据库-》选中数据库实体-》右键-》所有任务-》分离数据库,
然后到数据库所在物理路径下删除.ldf文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。

defasi 2003-08-20
  • 打赏
  • 举报
回复
可以先分离数据库后删除日志文件,再恢复数据库
我也是这样用的
很方便

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧