场景:SQLSERVER日志文件太大以至分区没有空间被扩展.
解决方法:
1.停止SQL SERVER
2.将LOG文件移到其他地方.
3.重起SQL SERVER系统自动生成一个同名的日志LOG文件.

如果重起SQL时数据库置疑,请使用以下文章的方法解决!:



Sql Server数据库被置疑后解决方法
现象:数据库Log日志太大了,shrink不掉。于是想把数据库文件卸下来,删除log,再附加上。附加失败。
提示错误:
服务器: 消息 1813,级别 16,状态 2,行 1
未能打开新数据库 'metadb'CREATE DATABASE 将终止。
设备激活错误。物理文件名 'd:\metadb.LDF' 可能有误。
环境:MSSQL SERVER 2000 企业版

解决过程:

1.建一个新库newdb

2.停掉数据库。删除新库的log文件,metadb.mdf覆盖newdb.mdf

3.启动数据库服务器。数据库newdb的状态为置疑

4. 允许对系统目录直接修改

USE MASTER

GO

SP_CONFIGURE 'ALLOW UPDATES',1

GO

RECONFIGURE WITH OVERRIDE

GO

UPDATE SYSDATABASES SET STATUS=-32768 WHERE DBID=DB_ID('NEWDB')

5.重建LOG

DBCC REBUILD_LOG('NEWDB','C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL\DATA\NEWDB_LOG.LDF')

6.DBCC检查

DBCC CHECKDB('NEWDB')

7.设置数据库为正常状态

UPDATE SYSDATABASES SET STATUS =28 WHERE NAME='NEWDB'

GO

8 不允许对系统目录直接修改

SP_CONFIGURE 'ALLOW UPDATES',0

GO

RECONFIGURE WITH OVERRIDE

GO

?

发表于 2005年9月13日 21:45

评论

# re: Sql Server数据库被置疑后解决方法

UPDATE SYSDATABASES SET STATUS =28 WHERE NAME='NEWDB'

最好是记录原来的status,然后再使用。

做完后建议dbcc,检查是否有损坏

另外,如果这样还不行,可以rebuild log
2005-9-14 10:15 | 怡红公子

# re: Sql Server数据库被置疑后解决方法

如果还不行,中间还可以再加一步,是上次我们公司数据库出问题的时候美国MS PSS给说的,好像叫dbcc recovery什么的。有机会找一下share出来
2005-9-14 11:18 | 董晓涛

# re: Sql Server数据库被置疑后解决方法

嘿嘿,rebuild log 就差不多是最狠的招了,再不行就只有分析文件内容了。

当初我们给人恢复数据,可是¥1/MB的
2005-9-14 11:27 | 怡红公子

# re: Sql Server数据库被置疑后解决方法

我们当时遇到下面的错误:
[Microsoft][ODBC SQL Server Driver][SQL Server]Could not run BEGIN TRANSACTION in database 'imk' because the database is in bypass recovery mode.

用一下下面的就好了:
dbcc dbrecover(dbname,ignoreerrors)
2005-9-14 11:52 | 董晓涛

# re: Sql Server数据库被置疑后解决方法

¥1/MB !

那我40GB,就是40000了?

我只收了500。

雷锋
2005-9-15 19:30 | datacen

# re: Sql Server数据库被置疑后解决方法

dbcc dbrecover
竟然是undocument的!

2005-9-15 19:41 | datacen

# re: Sql Server数据库被置疑后解决方法

微软这方面的没有给大家的好东东看样子多了:)