毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 数据库 >> 正文

sqlserver transation log for database 'db1' is full

更新时间:2012-5-16:  来源:毕业论文

我要删掉数据库的一个表的数据,但是数据量太大,上千万条。
用这样的sql:
WHILE(condition)
begin
  set rowcount 10000
  delete from t1 where condition
end
sql server报错:transation log for database 'db1' is full.

怎样能解决这个问题?
ALTER DATABASE 数据库名
SET RECOVERY SIMPLE
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (数据库日志文件名, 1)
GO
--日志文件名可以通过下面的语句查找
select * from sys.database_files
-- Reset the database recovery model.
ALTER DATABASE 数据库名
SET RECOVERY FULL
GO


SQL Server 2008 日志收缩

SQL code
ALTER DATABASE 数据库名
SET RECOVERY SIMPLE
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (数据库日志文件名, 1)
GO
--日志文件名可以通过下面的语句查找
select * from sys.database_files
-- Reset the database recovery model.
ALTER DATABASE 数据库名
SET RECOVERY FULL
GO


SQL Server 2005

SQL code
DUMP TRANSACTION 数据库名 WITH  NO_LOG

BACKUP LOG 数据库名 WITH NO_LOG

DBCC SHRINKDATABASE (数据库名)
收缩日志,回收之前向操作系统申请但未占用的空间。这样可以省出一部分空间。 
另外收缩数据库,可以将数据库之前向操作系统申请但未占用的空间。也省一部分出来。但也要看你的数据库,之前是否有很多删除操作,如果没有,实际占用的数据空间,就在哪儿摆着,也省不出来。

省了这两部分,LZ应该有地方继续记log了。 

最后,最好日志备份,实时的进行过期备份删除。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。