当前位置:首页 » 编程语言 » sql2005数据库收缩

sql2005数据库收缩

发布时间: 2025-02-19 15:05:55

① 如何清空sql server 2005日志文件

SQL Server数据库长期使用后,日志文件可能会变得非常大,占用大量的系统资源,甚至可能导致“日志满”错误,使数据库不可用。在这种情况下,我们需要定期清理数据库。

清理SQL Server数据库日志的方法有几种。最常用的方法是清空日志。具体步骤如下:

1. 打开查询分析器,输入命令“DUMP TRANSACTION 数据库名 WITH NO_LOG”,这将清空当前事务日志。

2. 使用企业管理器,右键点击你要压缩的数据库,选择“所有任务”下的“收缩数据库”选项,再选择“收缩文件”,然后选择日志文件。在收缩方式中选择“收缩至”,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定即可。

另一种方法虽然能够生成新的日志文件,但有一定的风险,因为SQL Server的日志文件不是即时写入数据库主文件的。如果不当操作可能会导致数据丢失。

具体步骤如下:

1. 首先分离数据库。在企业管理器中,选择服务器,然后选择数据库,右键点击,选择“分离数据库”。

2. 删除日志文件。在企业管理器中,选择服务器,然后选择数据库,右键点击,选择“附加数据库”。这将生成新的日志文件,其大小通常只有500多K。

对于SQL 2000以下版本,可以使用以下方法防止日志文件过大:

1. 在数据库上右键点击,选择“属性”,在“选项”中选择“故障恢复-模型”,然后选择“简单模型”。

2. 使用SQL语句:“ALTER DATABASE 数据库名 SET RECOVERY SIMPLE”。

此外,数据库属性中还包含与事务日志增长相关的两个选项:

1. Truncate log on checkpoint(此选项适用于SQL 7.0,SQL 2000中即故障恢复模型选择为简单模型)。当执行CHECKPOINT命令时,如果事务日志文件超过其大小的70%,则将其内容清除。开发数据库时常常将此选项设置为True,当数据库文件或日志文件的未用空间超过其大小的25%时,系统将自动缩减文件使其未用空间等于25%。当文件大小没有超过其建立时的初始大小时,不会缩减文件。缩减后的文件也必须大于或等于其初始大小。对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint选项设为True时才能进行。

需要注意的是,一般立成建立的数据库默认属性已设好,但如果遇到意外情况使数据库属性被更改,请用户在清空日志后,检查数据库的以上属性,以防事务日志再次充满。

② SQL2005数据库日志文件LOG太大怎么办

Sqlserver2005下,日志文件太大,使其减小的方法。
在打开SQL Server Management Studio并正常联接SQL服务器后,运行下面的三行:
( 注意将dbName代换为你的数据库名。)
backup log dbName with NO_LOG
backup log dbName with TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbName)

注意,在SQL 2008之后的版本以上方法无效,需将数据库设为简单模式后再进行收缩。

此外,在SQL Server Management Studio中,以视窗方法操作也可以,操作步骤:
第一步:截断数据库日志,运行代码:
BACKUP LOG 要收缩的数据库名 WITH NO_LOG
第二步:收缩数据库日志文件:
1. 选择要收缩的数据库,点右键选择任务-收缩-文件

2. 在弹出的页面中,选择文件类型为日志

3.点确定。

③ sql收缩数据库日志的几种办法

在SQL Server 2000/2005中可以快速压缩日志log文件,通过SQL,

方法一:

--BigData为数据库名
DUMPTRANSACTIONBigDataWITHNO_LOG
BACKUPLOGBigDataWITHNO_LOG
DBCCSHRINKDATABASE(BigData)

执行以上语句可以快速压缩日志文件到1M。

但是以上语句中前两行在SQL Server 2008下无法执行 ,

第一行提示“Incorrect syntax near the keyword 'TRANSACTION'.”

第二行提示“One or more of the options (no_log) are not supported for this statement. Review the documentation for supported options. ”

第三行可以执行。但日志log文件没有任何变化。

原来SQL Server 2008已经不再支持DUMPTRANSACTION和BACKUP LOG WITH NO_LOG,

sql Server 2005说明中明确:包含 DUMP 语句是为了向后兼容。而 后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 BACKUP。

SQL Server 2008说明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。

方法二:

useDB_NAME
sp_dboptionDB_NAME,"trunc.logonchkpt.",true
checkpoint
sp_dboptionDB_NAME,"autoshrink",true

方法三:(请提前备份文件!!)

  1. Detach数据库。

  2. 删除log文件。

  3. 附加数据库,选移除log文件,此时SQL Server 会自动重新建立一个512K 的Log 文件。

方法四:

USEBigData;
GO
BACKUPLOGDATABASENAMETODISK='d: est.bak'
--.
DBCCSHRINKFILE(Bigdata_Log,1);
GO
热点内容
游戏编程要学多久 发布:2025-04-23 05:03:16 浏览:169
密码输入多少次会锁 发布:2025-04-23 04:53:00 浏览:65
文件夹加固 发布:2025-04-23 04:52:11 浏览:915
android消息传递 发布:2025-04-23 04:50:45 浏览:797
sky服务器错误什么意思 发布:2025-04-23 04:50:02 浏览:380
三星usb存储设备在哪 发布:2025-04-23 04:43:31 浏览:499
把什么涂在密码锁上能看到密码 发布:2025-04-23 04:29:40 浏览:242
sql2000密码忘记 发布:2025-04-23 04:22:03 浏览:21
安卓手机退出应用怎么丝滑 发布:2025-04-23 04:17:46 浏览:107
小米全盘加密 发布:2025-04-23 04:14:24 浏览:741