请问一下:****事务日志已满 若要查明无法重用日志中的空间的原因,请参阅...这种情况该如何解决?

lindu 2009-03-13 03:34:41
我建索引的时候,遇到这个错误

“NewsTable”表
- 无法创建索引“PK_NewsTable”。
数据库 'cnahdata' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
无法创建约束。请参阅前面的错误消息。
语句已终止。


但是我用网上的方法,把日志文件压缩到1M后,再进行该操作,还是不行。
试了很多方法,都不行。

目前我的cnahdata.mdf是1.6G
日志cnahdata_log.ldf是1M

网站运行都很正常,但就是我建索引的时候遇到这种情况!
表NewsTable里有25W左右的数据!

希望大家能帮帮忙。感谢

...全文
5176 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
TiffanyBj 2011-07-06
  • 打赏
  • 举报
回复
DUMP TRANSACTION 数据库名 WITH NO_LOG
nzperfect 2009-03-13
  • 打赏
  • 举报
回复
tempdb没空间了吧...
rucypli 2009-03-13
  • 打赏
  • 举报
回复
UserExp 为你的数据库名
rucypli 2009-03-13
  • 打赏
  • 举报
回复
清空日志

backup log UserExp with truncate_only// 不备份只截断
dbcc shrinkfile(2,notruncate)//释放的空间保留在文件中,不给操作系统
dbcc shrinkfile(2,truncateonly)//未使用的空间释放给操作系统
CN_SQL 2009-03-13
  • 打赏
  • 举报
回复

exec xp_fixeddrives
exec sp_helpdb 'cnahdata'

运行这两个命令,把结果贴出来。
htl258_Tony 2009-03-13
  • 打赏
  • 举报
回复
提供两种办法:
一种方法:清空日志。
1.打开查询分析器,输入命令
 DUMP TRANSACTION 数据库名 WITH NO_LOG

2.打开企业管理器,在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。(也可以直接在查询分析器里执行:
alter database 数据库名 set recovery simple 

3.右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。

另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。
1: 删除LOG
分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K。
注意:建议使用第一种方法。如果以后,不想要它变大。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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