sql2005日志改为“不限制增长”改不了

时间:2022-09-27 20:42:54

我的sql2005 数据库日志 只能为“增量为 10%,增长的最大值限制为 2097152 MB”,我想改为不限制增长,尽然改不了,改过之后保存,再看还是“增量为 10%,增长的最大值限制为 2097152 MB”

非常困惑,要不日志超过 2097152 MB 数据库就连接不上了!你的数据库版本有问题吧
通常事务日志文件是这样的文件名: <数据库名>_log.ldf。它有个初始大小。比如500MB。我们对数据库的增删改都会对数据库中数据作出改动。所有的改动都被 SqlServer记录到事务日志中了。随着时间的推移,事务日志文件<数据库名>_log.ldf就会慢慢被事务日志占满,当事务日志文件<数据库名>_log.ldf被占满时,SqlServer会根据某些特定策略来处理,一个常见的做法是增加事务日志文件<数据库名>_log.ldf 10%的空间。这避免了事务日志文件<数据库名>_log.ldf满而使数据库事务失败。磁盘空间不是无限的。总有一天事务日志文件< 数据库名>_log.ldf就不能再增加体积了。就出现了上面的情况。


什么才是正确的做法?


1.  为事务日志文件<数据库名>_log.ldf分配固定的大小, 不能自动增长。其实针对数据库主文件<数据库名>.mdf也是如此。


2. 制作数据库监视任务,事务日志将满的时候, 自动备份事务日志来减小事务日志占用的空间
数据库版本应该没问题的,我刚刚重新找了个sql 2005 企业版的安装了,原来的也是企业版的

use YourDB
go
 
dbcc shrinkfile (YourDB_log, 10240) --调整YourDB数据库的事务日志文件大小为10240 MB, 可根据需
要调整, YourDBg_log应该是前面的select name from sysfiles查出来的名字。这里暂时用YourDB_log。
go

这个怎么样设置为不限制日志增长啊?当日志 满的时候我的数据库就连接不上了啊?我把日志收缩减少点就可以了,

你的做法用个成语说是:饮鸩止渴
log不限制增长,这样的做法十分不可取。一般的做法不紧要限制增进,还要定期清理,收缩日志文件。

数据库日志的管理和增长方式受数据库恢复模式的影响。

在简单模式下,数据库日志会自动截断,此时不需要进行日志手动截断或者日志收缩之类的操作。该操作的前提是对数据库的有合理且有效的备份和恢复机制或方案。

您的数据库恢复模式应该是完整模式,否则日志不会无限制增长。

不了解你的需求为何让日志无限增长,难道磁盘可用空间太多,希望数据来存满它吗?

简单的说,不需要对日志有人为干预,设置数据库为简单模式是再好不过的。

如果不是则是另外回事。

还是那句话前提是对数据库的有合理且有效的备份和恢复机制或方案。

至于这个问题,可能只是个表面,为何连接不上,还需要找原因。跟日志应该没有多大关系。

问题是 我的日志如果超过的 上面的最大值 ,数据库就连接不上了,所以只能改成不限制增长,但是我的数据库尽然改不了,发现我以前sql2000的数据库(不是这个数据库)尽然是不限制增长,而这个也想改成不限制增长,确改不了
SQL Server的日志文件最大只能为2TB,当maxsize为2TB时,跟不限制增长一个概念,这也就是你为什么仍然看到的是2097152MB。

日志文件能达到2TB的,也实在少见。建立良好的日志备份机制或者设置为简单模式,才是正确的出路。

首先,SQL设置的‘不限制增长’的具体实现方式是设置限制值为2TB,不管版本是2K还是05。如果你连这个值都能超过,我只能说,你公司生意一定很好^_^

其次,对需要保存日志做备份以提高可靠性的数据库,建议设置日志回复模式为大容量日志,并进行定期日志备份和收缩。
对不需要保存日志的数据库,设置为简单模式即可。
同时,如果更新和插入操作较多,可以将日志大小下限设置为一定大小(我是设置为100M),每次增长100M。这样对磁盘IO会比较有利。
如果更新插入较少的数据库,每天收缩一次日志就可以了

来源:nba直播