社区
MS-SQL Server
帖子详情
如何限定SQL SERVER数据库的日志为固定大小?日志满了后会继续循环使用么?不会不能操作数据库了吧!
teleinfor
2008-04-02 09:10:08
如何限定SQL SERVER数据库的日志为固定大小?日志满了后会继续循环使用么?不会不能操作数据库了吧!
...全文
381
4
打赏
收藏
如何限定SQL SERVER数据库的日志为固定大小?日志满了后会继续循环使用么?不会不能操作数据库了吧!
如何限定SQL SERVER数据库的日志为固定大小?日志满了后会继续循环使用么?不会不能操作数据库了吧!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
teleinfor
2008-04-02
打赏
举报
回复
果然如此啊!我限定了日志log大小,结果不能导入数据了!晕死。。。。
因为我操作数据库都是通过客户的应用程序进行,开放给用户也就是一个应用软件,他不需要关注数据库。关键是我如何通过程序控制收缩log哪???? 急啊。。。
dawugui
2008-04-02
打赏
举报
回复
清除日志:
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换成你数据库的名字即可,在查询分析器里面运行。
有全角的空格(为了显示好看),你自己把他换一下.
收缩日志:
企业管理器--所有任务--收缩数据库--文件--选日志文件收缩
dawugui
2008-04-02
打赏
举报
回复
[Quote=引用楼主 teleinfor 的帖子:]
如何限定SQL SERVER数据库的日志为固定大小?日志满了后会继续循环使用么?不会不能操作数据库了吧!
[/Quote]
一般其增长要设置为按多少比例或多少M来管理日志.
如果限制其值,日志满了后不能循环使用.可尝试清除或压缩日志.
JL99000
2008-04-02
打赏
举报
回复
一般建立数据库时会设定数据库日志的大小以及当日志要满的时候采取的增长策略
如果不让日志文件增长,那么满了以后sql server将抱错,也就是不能再操作数据库了
SQL
Server
中怎么查看每个
数据库
的
日志
大小
,以及怎么确定
数据库
的
日志
文件,怎么用语句收缩
日志
文件...
一,找到每个
数据库
的
日志
文件
大小
...如果你管理
数据库
的有很多的话,每天一个一个
数据库
的去查看文件
大小
就太费神了,那就写个
SQL
脚本吧,放到
SQL
Agent 中,每天自动去查看各个
数据库
文件及
日志
文件的
大小
,然后...
SQL
SERVER
数据库
删除LOG文件和清空
日志
的方案
SQL
Server
数据库
都有log文件,log文件记录用户对
数据库
修改的
操作
。可以通过直接删除log文件和清空
日志
在清除
数据库
日志
。 一、删除LOG 1、分离
数据库
。分离
数据库
之前一定要做好
数据库
的全备份,选择
数据库
...
SQL
Server
事务
日志
已
满
的解决方案
我们安装
数据库
后,系统会默认把
数据库
文件和
数据库
日志
文件最大设为500MB,当然你中途可以更改这个限制。当
日志
文件接近最大值时,
继续
使用
数据库
会提示:事务
日志
已
满
。解决这个问题,有3种方案: 第一种解决方案...
查看my
sql
日志
大小
_
SQL
SERVER
查看
日志
大小
及
日志
已
满
的处理方法 (转)
--解决方法--
日志
文件
满
而造成
SQL
数据库
无法写入文件时,可用两种方法:--查看
数据库
日志
大小
dbcc
sql
perf(logspace)--清空
日志
。--1.打开查询分析器,输入命令DUMP TRANSACTION
数据库
名 WITH NO_LOG--2.再打开...
Sql
Server
数据库
恢复和
日志
文件的详细介绍
一个
Sql
Server
数据库
最少要包含一个mdf数据文件和一个ldf
日志
文件。 mdf文件中包含了所有的
数据库
对象和数据,例如表、存储过程、用户信息等等。 ldf文件中包含(或者曾经包含)了
数据库
的所有事务
日志
,但是不要...
MS-SQL Server
34,837
社区成员
254,632
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章