紧急问题,事物日志已满(9002),多种办法无效,高手请进

lijinhui 2003-08-25 11:59:29
我的sql2000数据库文件.mdf大小为4G,ldf为1M,文件自动增长,不受限制。当进行大规模数据删除插入时,系统报'事物日志已瞒(9002),请备份该数据库的事务日志以释放一些日志空间', 磁盘剩余空间17G,足够大,执行过backup log DbName with no_log 无效,执行dbcc shrinkdatabase ('DbName')同样报错,高手赐教。
...全文
227 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind_flaw 2003-11-14
  • 打赏
  • 举报
回复
搂主的问题我也遇到过,后来解决了,分享一下解决方案:
思路:通过SQL Server Angent定时将数据日志备份,SQL Server在备份日志时会自动清除整个日志,而备份的日志我们可以设定为覆盖方式,这样硬盘上的日志就不会无限增长了
以下是操作的步骤,不好意思,我机上的是英文版的,所以下面关于MSSQL的界面文字有些是英文的,请包涵
1、右击数据库->所有任务->备份数据库弹出SQL Server Backup
2、Backup区选择第三项Transaction Log,Overwrite区选择Overwrite existing media,点击开启Schedule,点击右边的"..."按钮弹出Edit Schedule
3、Schedule Type区选择Recurring,并点击右边的Change按钮弹出Edit Recurring Job Schedule
4、Occurs区选择Daliy,在Daily Frequency里面点击Occurs every ,选择时间间隔
5、注意,在SQL Server服务里开启SQL Server Angent
sdhdy 2003-08-26
  • 打赏
  • 举报
回复
方法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文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。

eastsup 2003-08-26
  • 打赏
  • 举报
回复
在查询分析器中执行下列两句即可

BACKUP LOG 数据库名 with no_log
DBCC SHRINKDATABASE (数据库名,NOTRUNCATE)
hxy2003 2003-08-25
  • 打赏
  • 举报
回复
UP学习
zarge 2003-08-25
  • 打赏
  • 举报
回复
数据库->右键属性->事务日志->最大文件大小

选择文件增长不受限制
lijinhui 2003-08-25
  • 打赏
  • 举报
回复
日志文件仅为1M,已经最小,其实也没有必要收缩
pengdali 2003-08-25
  • 打赏
  • 举报
回复
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
xiangqy 2003-08-25
  • 打赏
  • 举报
回复
在其他磁盘上添加一个日志文件即可。alter database add file
CrazyFor 2003-08-25
  • 打赏
  • 举报
回复
再增加一个数据库文件.单个数据文件最好不要超过3G.
henry_gz 2003-08-25
  • 打赏
  • 举报
回复
implement Shrink Database
txlicenhe 2003-08-25
  • 打赏
  • 举报
回复
1: 删除LOG
1:分离数据库
2:删除LOG文件
3:附加数据库
此法生成新的LOG,大小只有500多K
再将此数据库设置自动收缩
2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG

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

27,579

社区成员

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

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