SQL Server 2008 SQL2012 SQL2014 收缩日志 清空删除大日志文件

合集下载

清理SQL Server数据库日志的两种方法

清理SQL Server数据库日志的两种方法

清理SQL Server数据库日志的两种方法sql server数据库使用时间长了,日志文件会很大,占用过多系统资源,数据库可能会报 log full 的错误,甚至磁盘空间占满让数据库处于不可用状态,这个时候我们需要清理数据库,以前有人开发了数据库日志清理工具,好像还要收费,其实很简单就可以完成这个操作,请跟我来:清理sql server数据库日志可用两种方法:方法一:清空日志。

1、打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2、再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至: ,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。

方法二:有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。

1、删除LOG分离数据库企业管理器->服务器->数据库->右键->分离数据库2、删除LOG文件附加数据库企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有500多K。

注意:建议使用第一种方法。

如果以后,不想要它变大。

SQL2000下使用:在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。

或用SQL语句:alter database 数据库名 set recovery simple另外,数据库属性有两个选项,与事务日志的增长有关:Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将 Truncate log on checkpoint 选项设为True 时才能进行。

sqlserver 清理日志语句

sqlserver 清理日志语句

sqlserver 清理日志语句【最新版】目录1.SQL Server 清理日志的必要性2.SQL Server 日志文件的存储位置3.SQL Server 清理日志的方法4.SQL Server 清理日志的注意事项正文【1.SQL Server 清理日志的必要性】SQL Server 作为一种广泛应用的数据库管理系统,在运行过程中会产生大量的日志文件。

这些日志文件记录了数据库的运行状态、操作记录等信息,对于数据库的安全和稳定运行具有重要意义。

然而,随着日志文件的不断增加,磁盘空间会逐渐减少,从而影响数据库的性能。

因此,定期清理 SQL Server 日志文件非常必要。

【2.SQL Server 日志文件的存储位置】SQL Server 日志文件主要存储在数据库服务器的日志文件夹中。

默认情况下,日志文件位于“C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERLOG”(根据安装路径和版本号有所不同)目录下。

在此目录下,您可以找到名为“ERRORLOG.XML”和“LOG.XML”的日志文件。

【3.SQL Server 清理日志的方法】SQL Server 清理日志的方法主要有以下几种:(1)使用 SQL 语句清理日志使用以下 SQL 语句,可以删除指定日期之前的所有日志:```sqlDELETE FROM Log_TableWHERE Log_Date < "2021-01-01";```其中,“Log_Table”为日志表名,“Log_Date”为日志日期字段名。

(2)使用 SQL Server Management Studio 清理日志1.打开 SQL Server Management Studio,连接到目标数据库服务器。

2.在“对象资源管理器”中,展开“数据库”节点,找到需要清理日志的数据库。

3.右键点击数据库,选择“任务”>“维护”>“收缩数据库”。

SQL Server 2008 R2 日志收缩处理方法

SQL Server 2008 R2 日志收缩处理方法

SQL Server 2008 R2 日志收缩数据库日志文件收缩方法一:1、将数据库恢复模式改为简单模式,右击数据库选择属性,弹出窗口如下图,选择“选项”,将“恢复模式”改为“简单”。

2、右击数据库如下图选择,打开“收缩文件”窗口3、收缩文件窗口如下图,“文件类型”选择“日志”,单击“确定”完成日志收缩。

数据库日志文件收缩方法二:在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。

SQL代码如下(用指定数据库名替换DNName):USE MASTERGOALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY SIMPLE--简单模式GOUSE DNNameGODBCC SHRINKFILE (N'DNName_Log',11, TRUNCA TEONL Y)GOUSE MASTERGOALTER DATABASE DNName SET RECOVERY FULL WITH NO_W AITGOALTER DATABASE DNName SET RECOVERY FULL--还原为完全模式GO优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内即可完成。

缺点:不过此动作最好不要经常使用,因为它的运行会带来系统碎片。

普通状态下LOG 和DIFF的备份即可截断日志。

此语句使用的恰当环境:当系统的日志文件异常增大或者备份LOG时间太长可能影响系统的情况下使用。

数据库日志文件收缩方法三:通过分离数据库,然后再删除事务日志文件,再附加mdf数据文件,也可以达到某种意义上的事务日志收缩。

总结:建议资讯同事用方法一来收缩日志,另外需求把日志文件增长方式按如下图来设置,将日志文件选择按MB来增长(目前正式账套F22X库已经设置OK);。

sqlserver2008 收缩数据库方法

sqlserver2008 收缩数据库方法

sqlserver2008 收缩数据库方法
在SQL Server 2008 中,您可以使用以下方法来收缩数据库:
1. 使用SHRINK DATABASE 命令:
```sql
SHRINK DATABASE [YourDatabaseName];
```
这将收缩整个数据库文件。

请注意,这种方法可能会导致数据库文件中的数据碎片,并降低性能。

2. 使用SHRINK FILE 命令:
```sql
SHRINK FILE [YourLogicalFileName];
```
这将收缩指定的数据库文件。

您需要将`YourLogicalFileName` 替换为逻辑文件名。

这种方法只会收缩指定的文件,而不会影响整个数据库。

3. 使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令:
```sql
DBCC SHRINKDATABASE (YourDatabaseName, TargetSizeInMB);
DBCC SHRINKFILE (YourLogicalFileName, TargetSizeInMB);
```
这些命令提供了更多的选项和灵活性,允许您指定收缩的目标大小(以MB 为单位)。

请注意,这些命令可能需要一些时间来执行,具体取决于数据库的大小和目标大小。

请注意,频繁地收缩数据库可能会对性能产生负面影响,并导致数据碎片。

在大多数情况下,最好避免频繁地收缩数据库,而是使用定期维护和备份策略来管理数据库大小。

清空SQL Server日志

清空SQL Server日志

Http高级显示友好http错误信息
两种方法:
一种方法:清空日志。

1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志
文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这
个数,确定就可以了。

另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。

1: 删除LOG
分离数据库企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
附加数据库企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K。

如果以后,不想要它变大。

SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。

或用SQL语句:
alter database 数据库名set recovery simple。

SQL Server 2008 日志文件清除操作步骤

SQL Server 2008 日志文件清除操作步骤

SQL Server 2008 日志文件清除操作步骤:
一、登录SQLServere企业管理器
二、选中需要日志清除的数据库,打开清除日志的SQL脚本文件,执行选中的蓝色阴影部分代码,数据库将在“简单模式”下进行清除日志动作。

(圈内改成相应的数据库名、日志文件名)
三、如不清楚日志文件名可执行涂色选中部分这段代码查询
四、执行完清除日志后将数据库还原为“完全模式”
五、SQL代码
-- 在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。

USE[master]
GO
ALTERDATABASE ChinaLZY SETRECOVERYSIMPLEWITH NO_WAIT
GO
ALTERDATABASE ChinaLZY SETRECOVERYSIMPLE--简单模式
GO
USE ChinaLZY
GO
DBCC SHRINKFILE(N'Amodel_log', 11,TRUNCATEONLY)
GO
-- '这里的Amodel_Log 如果不知道在sys.database_files里是什么名字的话,可以用以下注释的语句进行查
USE ChinaLZY
GO
SELECT file_id,name FROM sys.database_files;
GO
--还原为完全模式
USE[master]
GO
ALTERDATABASE ChinaLZY SETRECOVERYFULLWITH NO_WAIT
GO
ALTERDATABASE ChinaLZY SETRECOVERYFULL--还原为完全模式
GO。

sqlserver2012日志文件超大,清除日志的处理过程

博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
sqlserver2012日 志 文 件 超 大 , 清 除 日 志 的 处 理 过 程
有一个项目使用了sql server2012版本的数据库,一开始可能没有注意到日志文件,使得日志文件越来越大,当使用sql2008的收缩文件的方 法进行操作时,问题出现了。
查询到是LOG_BACKUP,所以我的解决办法就是
USE [dbname] GO backup log dbname to disk='D:\dbbackup\2014-08-24-2.log' GO DBCC SHRINKFILE (N'a23648263485_Log' , 700, TRUNCATEONLY) GO
DUMP TRANSACTION BigData WITH NO_LOG BACKUP LOG BigData WITH NO_LOG
使用上面的方法并不能解决问题,因为2012已决的办法: 给出原办法出处:
通过select log_reuse_wait_desc from sys.databases where name='DBNAME'确认log状态
Байду номын сангаас

SQL 2008清理数据库日志文件

SQL 2008清理数据库日志文件
首先,清理数据库日志文件的脚本是这样的。

其次,需要清理的数据库日志文件有多大,可以在SQL Server Management Studio看到:鼠标右键点击对应的数据库,选择属性,在“文件”这个标签下就能看到日志文件大小。

现在开始清理:
打开SQL Server Management Studio。

连接上数据库服务器后,新建查询。

新建查询的方式有两种,结果都是一样的。

第一步:新建查询。

1:右击需要进行清理的数据库,选择“新建查询”。

或者,
2:点击“新建查询”,然后在下方选择需要处理的数据库。

第二步:录入查询脚本。

以打开或者手工录入的形式,将脚本文件内容输入进去。

最后是这样一个情况,请注意左上的数据库名。

第三步:开始清理。

接下来将脚本中的“数据库名”更换为需要清理的数据库的名字。

因为我的数据库名字中有特殊字符“-”,所以需要用到“[”“]”。

如果您的数据库名称第一位是数字,也需要这么处理。

点击执行:
接下来出现了这个:
切换到“结果”:
将这里的数据库Name填写进刚才的脚本中。

再次执行。

完成收工。

SQL SERVER 收缩数据库的命令

SQL SERVER 收缩数据库的命令1.清空日志DUMP T RANSACTION库名WIT H NO_LOG2.截断事务日志:BACKUP LOG数据库名WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(客户资料)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfilesDBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离pubs,然后将pubs 中的一个文件附加到当前服务器。

a.分离E X E C sp_detach_db @dbname='pubs'b.删除日志文件c.再附加E X E C sp_attach_single_file_db @dbname='pubs',@physname='c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.m df'5.为了以后能自动收缩,做如下设置:企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:E X E C sp_dboption '数据库名', 'autoshrink', 'T RUE'6.如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database数据库名modify file(nam e=逻辑文件名,maxsize=20)特别注意:请按步骤进行,未进行前面的步骤,请不要做后面的步骤否则可能损坏你的数据库.一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.另外提供一种更简单的方法,本人屡试不爽,建议大家使用。

SQL Server 2008 清空删除日志文件

SQL Server 2008 清空删除日志文件(瞬间日志变几M)SQL2008清空删除日志:方法一:USE [master]GOALTER DATABASE AFMS SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE AFMS SET RECOVERY SIMPLEGOUSE AFMSGODBCC SHRINKFILE (N'AFMS_Log' , 11, TRUNCATEONLY)GOUSE [master]GOALTER DATABASE AFMS SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE AFMS SET RECOVERY FULLGO方法2:在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。

USE [master]GOALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY SIMPLE --简单模式GOUSE DNNameGODBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)GO'这里的DNName_Log 如果不知道在sys.database_files里是什么名字的话,可以用以下注释的语句进行查询'USE DNName'GO'SELECT file_id, nameFROM sys.database_files;'GOUSE [master]GOALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY FULL --还原为完全模式GOSQL2005清空删除日志:Backup Log DNName with no_log '这里的DNName是你要收缩的数据库名,自己注意修改下面的数据库名,我就不再注释了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL Server 2008 SQL2012 SQL2014 收缩日志清空删除大日志文件
SQL2008 SQL2012 SQL2014 的收缩日志
由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:(SQL2005)
BackupLog DNName with no_log
go
dumptransaction DNName with no_log
go
USE DNName
DBCC SHRINKFILE (2)
Go
--------------------------------------------------------------
(SQL2008):
在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。

方案一:完全命令模式
USE[master]
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE --简单模式
GO
USE DNName
GO
DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
GO
USE[master]
GO
ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY FULL --还原为完全模式
GO
方案二:部分命令模式+ 任务-收缩-文件(单个数据库)
ALTER DATABASE DNName SET RECOVERY SIMPLE --简单模式
GO
右键-任务-收缩-文件-确定下来数据库的日志只保留了1M
ALTERDATABASE DNName SET RECOVERY FULL --还原为完全模式
GO
优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内
即可完成。

缺点:不过此动作最好不要经常使用,因为它的运行会带来系统碎片。

普通状态下LOG和DIFF的备份即可截断日志。

此语句使用的恰当环境:当系统的日志文件异常增大或者备份LOG时间太长可能影响生产的情况下使用。

相关文档
最新文档