SqlServer2005日志满的问题

ppl20001997 2010-05-19 02:07:36
我最近做了一些ssis包把其他数据库的表导到当前数据库中,由于数据量比较大,在导过几次后就提示日志已满。我用了命令
DUMP TRANSACTION 库名 WITH NO_LOG 然后又收缩了数据库,log文件的大小的确减小到了1m,但是同时space available也只剩0.37m,运行ssis包还是提示日志满,怎么能扩充space available的值,谢谢
...全文
311 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
东那个升 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 garnett_kg 的回复:]
1). 改Recovery为Simple

2).
--预留一个较大的日志空间,然后少量增加。

SQL code
USE [master]
GO
ALTER DATABASE dbname MODIFY FILE ( NAME = N'logname', SIZE = 4097152KB , MAXSIZE = UNLIMITED, FILEGROWTH = 102400KB ……
[/Quote]


UP。。。把日志设置正常情况下可能增长到的最大值。这样省去每次申请空间的的消耗。数据文件同样
nzperfect 2010-05-19
  • 打赏
  • 举报
回复
是不是看错了说哪个库日志满了。。。
Garnett_KG 2010-05-19
  • 打赏
  • 举报
回复
1). 改Recovery为Simple

2).
--预留一个较大的日志空间,然后少量增加。
USE [master]
GO
ALTER DATABASE dbname MODIFY FILE ( NAME = N'logname', SIZE = 4097152KB , MAXSIZE = UNLIMITED, FILEGROWTH = 102400KB )
GO
pbsh 2010-05-19
  • 打赏
  • 举报
回复
提高文件基础大小,提高增量大小.
dawugui 2010-05-19
  • 打赏
  • 举报
回复
另外建议,你的数据库主文件(MDF)其增长率也要加大些.
永生天地 2010-05-19
  • 打赏
  • 举报
回复
把数据库属性中的故障还原模型改为“简单”
xuam 2010-05-19
  • 打赏
  • 举报
回复
USE DB_NAME;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE DB_NAME
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE ([DB_NAME_log], 10);
GO
-- Reset the database recovery model.
ALTER DATABASE DB_NAME
SET RECOVERY FULL;
GO
htl258_Tony 2010-05-19
  • 打赏
  • 举报
回复
Log都减少到1m的还那样,重启服务试试
永生天地 2010-05-19
  • 打赏
  • 举报
回复
乌龟的

/*
标题:清除日志和收缩日志
作者:爱新觉罗·毓华
时间:2008-07-14
地点:新疆乌鲁木齐
资料来源:深圳外经贸局年检数据库和CSDN会员adis789咨询sql server日志为啥会增长很快,
有一个程序每5秒钟写数据一次,然后数据库日志经常增长很快,怎么避免这样的事情发生呢?
怎么能让sql server日志增长不要这么快,数据文件才100M日志文件居然1G多。
*/

SQL code
--清除日志:
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE szwzcheck -- 要操作的数据库名
SELECT @LogicalFileName = 'szwzcheck_Log', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 20 -- 你想设定的日志文件的大小(M)
-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans(DummyColumn char (8000) not null)
DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name =
@LogicalFileName) AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF

--把szwzcheck换成你数据库的名字即可,在查询分析器里面运行。

--收缩日志:企业管理器--所有任务--收缩数据库--文件--选日志文件收缩

you_tube 2010-05-19
  • 打赏
  • 举报
回复
重新运行SSIS试试
dawugui 2010-05-19
  • 打赏
  • 举报
回复
把日志的增长值改大些,例如每次100M.
永生天地 2010-05-19
  • 打赏
  • 举报
回复
--压缩日志

1:截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG

2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG

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


3: 删除LOG
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
再将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'


4: 如果想以后不让它增长
企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)

--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)

5.设置为自动收缩
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

22,210

社区成员

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

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