SQL Server 收缩事务日志
收缩数据文件或日志文件的空间

2》在释放未使用的空间前重新组织页:请在“将文件收缩到”数值微调器中键入您希望收缩的文件大小(以MB为单位),这个数值不可小于目前配置的大小或是大于配置给文件的总扩展盘值,一旦不符合就会自动将设定值还原为下限或上限。
注意:当数据库或事务日志正在备份时,您不能收缩数据文件或日志文件;反过来,当数据库的数据文件或日志文件正在被收缩时,您不能去备份数据库或事务日志。此外,若数据库被设定成只读的话,您也不能收缩数据文件或日志文件的大小。
1.打开SQL Server Management Studio
2.在“连接到服务器”对话框中的“服务器类型”下拉选项中选择“数据库引擎”,接着根据您实际的环境讲相关选项设定完毕,然后点击“连接”按钮。
6.若您选择的文件类型是“数据”,且先前创建了文件组的话,则在文件组选项您可以选取PRIMARY改变。如果您选择的文件类型是“日志”,文件组选项会变成“<不适用>”。
7.当您的数据文件或日志文件有多个时,您可以在文件名称下拉选项才对你中选择要收缩的文件。
8.请设置一下三个选项,以便决定要如何收缩文件:
您也可以使用DBCC SHRINKFILE表达式来开“对象资源管理器”窗口,展开要收缩数据文件或日志文件空间的数据库引擎实例,接着展开“数据库”项目。
4.使用鼠标右键单击您要收缩其空间的数据库,并从快捷菜单中依次选择“任务/收缩/文件”命令,打开“收缩文件”对话框。
5.首先请选择要收缩的文件类型,有“数据”与“日志”两种选项,默认选项为“数据”,根据您选取的不同文件类型,会改变其他字段中相对应的选项。
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);。
SQL2024数据库日志太大收缩方法

SQL2024数据库日志太大收缩方法在数据库中,日志文件记录了数据库的所有修改操作,包括数据更新、插入和删除。
随着时间的推移,日志文件可能会变得非常庞大,这可能会导致数据库性能下降和存储空间的过度使用。
为了解决这个问题,可以采取以下步骤来收缩SQL Server 2024数据库的日志文件。
1.备份日志文件:首先,您需要确保数据库的日志文件已经进行了备份。
通过备份日志文件,可以将日志中的事务信息保存到备份中,并允许数据库截断未使用的事务日志。
2.更改恢复模式:如果数据库处于完整恢复模式或大容量恢复模式下,可以将恢复模式更改为简单恢复模式。
这样做可以使日志文件更容易自动收缩,并释放空间。
3.执行事务日志的截断:可以通过执行CHECKPOINT语句或DBCC命令来截断事务日志。
CHECKPOINT语句将强制将内存中的修改写入磁盘,并将事务日志截断到CHECKPOINT之前的位置。
DBCC命令允许您手动截断事务日志。
4.缩小日志文件:使用DBCCSHRINKFILE命令缩小数据库的日志文件。
该命令将尝试将日志文件的物理大小收缩到适当的大小,以节省存储空间。
但请注意,缩小日志文件可能会造成数据库性能下降,因此需要谨慎使用。
5.定期维护计划:建立定期维护计划,包括备份和收缩日志文件的任务。
通过定期备份和收缩日志文件,可以确保数据库的日志文件始终保持在合理的大小范围内,避免过度使用存储空间。
6.监控日志文件:持续监控数据库的日志文件,以确保它不会再次变得过大。
如果发现日志文件再次过大,可以立即采取适当的措施来收缩日志文件。
需要注意的是,在执行以上操作之前,应该先备份数据库,并确保具有足够的磁盘空间来存储备份和缩小的日志文件。
此外,建议在操作数据库之前,先在测试环境中测试这些操作,以确保不会对生产环境中的数据库造成任何不可回滚的影响。
总之,通过备份、更改恢复模式、截断事务日志、缩小日志文件和建立定期维护计划,可以有效地收缩SQL Server 2024数据库的日志文件,并确保数据库的性能和存储空间的合理使用。
SQLServer2008日志文件无法收缩处理方法

SQL Server 2008 事务日志物理文件尺寸无法减小的解决办法(含日志收缩(shrink)技巧)作者:宋林发现有的数据库日志文件太大,无论如何收缩执行几次SQL语句都不行。
事务日志达30+G,而且使用常规的截断、收缩方法均无法减小日志物理文件的尺寸,经过一番寻找,终于找到了解决方法。
查看日志信息在查询分析器中执行如下代码来查看日志信息:DBCC LOGINFO('数据库名称')我们看到status=0的日志,代表已经备份到磁盘的日志文件;而status=2的日志还没有备份。
当我们收缩日志文件时,收缩掉的空间其实就是status=0的空间,如果日志物理文件无法减小,这里一定能看到非常多status=2的记录。
接下来分析为什么会有这么多status=2的记录查看日志截断延迟原因活跃(active)的日志无法通过收缩来截断,有各种原因会使日志截断延迟,具体表现就是事务日志的物理文件无法通过截断、收缩来减小,通过下面的代码可以看到实例上每个数据库的日志截断延迟原因:1USE[master]2SELECT[name] ,[database_id] ,[log_reuse_wait] ,[log_reuse_w ait_desc]FROM[sys].[databases]各种原因及解释如下:针对延迟日志截断原因的部分解决方案∙LOG_BACKUP备份日志后再执行收缩即可backup log [database] with nolog ∙REPLICATION这是我遇到的情况,但我根本没有启用过REPLICATION,据查,这好像是SQLSERVER2008的一个BUG,解决方法是给标有“REPLICATION”的数据库任意一个表创建数据库事务复制(TRANSACTION REPLICATION),然后再删除,执行数据库与日志备份后,就可以收缩了。
∙收缩日志小技巧∙一般收缩日志的代码中都要求指定日志的文件名称,下面的代码则可以自动获取日志文件名称:∙1USE[数据库名称]2DECLARE@LogFileLogicalName sysname3SELECT@LogFileLogicalName=Name FROM sys.database_files WHERE Type=14PRINT@LogFileLogicalName5DBCC SHRINKFILE (@LogFileLogicalName, 1);然后再收缩数据库DBCC SHRINKDATABASE(库名)。
集群数据库 收缩日志

集群数据库收缩日志
收缩日志是指在集群数据库中对日志文件进行整理和压缩,以释放空间并提高性能。
在集群数据库中,日志文件记录了数据库的操作和变化,随着时间的推移,日志文件可能会变得庞大,占用大量存储空间,影响数据库性能。
因此,收缩日志是一种管理和优化数据库的重要操作。
从技术角度来看,收缩日志可以通过数据库管理系统提供的特定命令或工具来实现。
在SQL Server中,可以使用DBCC SHRINKFILE命令来收缩日志文件,而在Oracle数据库中,可以使用ALTER DATABASE命令来收缩日志文件。
这些命令通常会重新组织日志文件的物理存储结构,删除不再需要的空间,并将文件大小缩小到合适的水平。
另外,收缩日志也需要考虑到数据库的运行状态和业务需求。
在执行收缩日志操作之前,需要确保数据库没有活动的事务或长时间运行的查询,以免影响数据库的正常运行。
此外,还需要评估数据库的日志使用情况和备份策略,以确定何时以及如何执行收缩日志操作,以避免对数据库的正常运行和数据完整性造成影响。
在实际操作中,收缩日志也需要注意一些潜在的风险和注意事项。
过于频繁地收缩日志可能会导致日志文件的不断增长和碎片化,影响数据库性能。
因此,需要根据实际情况和最佳实践来制定合适
的收缩日志策略,以保证数据库的稳定和高效运行。
综上所述,收缩日志是集群数据库管理中的重要操作,通过合
理的技术手段和策略,可以有效地管理和优化数据库的日志文件,
提高数据库性能和稳定性。
ldf文件过大如何收缩SQLServer数据库日志Ldf文件

ldf文件过大如何收缩SQL Server 数据库日志Ldf文件结:其实也就是两个指令就可以完成了BACKUP LOG DateBaseName WITH TRUNCATE_ONLYDBCC ShrinkDatabase(DateBaseName)--最好备份日志,以后可通过日志恢复数据。
以下为日志处理方法一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.--*/--下面的所有库名都指你要处理的数据库的库名1.清空日志DUMP TRANSACTION 库名WITH NO_LOG2.截断事务日志:BACKUP LOG 库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(库名)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离EXEC sp_detach_db @dbname = '库名'b.删除日志文件c.再附加EXEC sp_attach_single_file_db @dbname = '库名',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf' 5.为了以后能自动收缩,做如下设置:企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:EXEC sp_dboption '库名', 'autoshrink', 'TRUE'6.如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 库名modify file(name=逻辑文件名,maxsize=20)--首先,用下面的语句,检查/修复数据库/并整理索引碎片(需要比较长的时间,请在系统空闲时进行此工作)USE MASTERGOsp_dboption '你的数据库名', 'single user', 'true'GoDBCC CHECKDB('你的数据库名', REPAIR_REBUILD)GoUSE 你的数据库名goexec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_REBUILD)' exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'gosp_dboption '你的数据库名', 'single user', 'false'Go--然后用这个压缩数据库日志文件.SET NOCOUNT ONDECLARE @LogicalFileName sysname,@MaxMinutes INT,@NewSize INT--Select * From SysfilesUSE YSERP -- 要操作的数据库名Select @LogicalFileName = 'YSERP_Log' , -- 日志文件名@MaxMinutes = 10, -- Limit on time allowed to wrap log.@NewSize = 20 -- 你想设定的日志文件的大小(M)-- Setup / initializeDECLARE @OriginalSize intSelect @OriginalSize = sizeFROM sysfilesWhere name = @LogicalFileNameSelect ' original Size of ' + db_name() + ' LOG is ' + CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + ' MB 'FROM sysfilesWhere name = @LogicalFileNameCreate 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 has not /*expired*/ AND @OriginalSize = (Select size FROM sysfiles Where name =@LogicalFileName) AND (@OriginalSize * 8 /1024) > @NewSizeBEGIN -- Outer loop.Select @Counter = 0WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))BEGIN -- updateInsert DummyTrans VALUES ( ' Fill Log ' )Delete DummyTransSelect @Counter = @Counter + 1ENDEXEC (@TruncLog)ENDSelect ' Final Size of ' + db_name() + ' LOG is ' +CONVERT(VARCHAR(30),size) + ' 8K pages or ' +CONVERT(VARCHAR(30),(size*8/1024)) + ' MB 'FROM sysfilesWhere name = @LogicalFileNameDrop TABLE DummyTransSET NOCOUNT OFF--其次是压缩主数据文件企业管理器->所有任务->压缩数据库->压缩文件->文件->压缩到最终大小->输入最小值即可。
sql数据库如何定期收缩日志文件大小
sql数据库如何定期收缩日志文件大小--用作业就行了嘛:企业管理器--管理--SQL Server代理--右键作业--新建作业-- "常规"项中输入作业名称-- "步骤"项--新建-- "步骤名"中输入步骤名-- "类型"中选择"Transact-SQL 脚本(TSQL) "-- "数据库"选择执行命令的数据库-- "命令"中输入日志收缩的语句:DUMP TRANSACTION 库名WITH NO_LOG截断事务日志BACKUP LOG 数据库名WITH NO_LOG收缩数据库DBCC SHRINKDATABASE(数据库名)--确定-- "调度"项--新建调度-- "名称"中输入调度名称-- "调度类型"中选择你的作业执行安排--如果选择"反复出现"--点"更改"来设置你的时间安排然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行/*--特别注意请按步骤进行,未进行前面的步骤,请不要做后面的步骤否则可能损坏你的数据库.一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.--*/--下面的所有库名都指你要处理的数据库的库名1.清空日志DUMP TRANSACTION 库名WITH NO_LOG2.截断事务日志:BACKUP LOG 库名WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(库名)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离pubs,然后将pubs 中的一个文件附加到当前服务器。
SQLServer事务日志压缩与删除的方法
解析SQLServer事务日志压缩与删除的方法解析SQLServer事务日志压缩与删除的方法问:SQLServer中的事务日志应该怎样压缩和删除?答:具体方法有3种。
方法一:第一步:-- no_log和truncate_only是在这里是同义的,随便执行哪一句都可以。
第二步:1.收缩特定数据库的所有数据和日志文件,执行:-- database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。
2.收缩一次一个特定数据库中的数据或日志文件,执行-- file_id是要收缩的文件的标识(ID) 号,若要获得文件ID,请使用FILE_ID 函数或在当前数据库中搜索sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。
如果没有指定,dbcc shrinkfile 将文件大小减少到默认文件大小。
两个dbcc都可以带上参数notruncate或truncateonly,具体意思查看联机帮助.方法二:第一步:先备份整个数据库以备不测。
第二步:备份结束后,在Query Analyzer中执行如下的语句:--卸除这个DB在MSSQL中的注册信息第三步:到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录第四步:在Query Analyzer中执行如下的语句:--以单文件的方式注册该DB,如果成功则MSSQL将自动为这个DB生成一个500K的日志文件。
方法三:1. 进入企业管理器,选中数据库,比如demo2. 所有任务->分离数据库3. 到数据库文件的存放目录,将MuOnline_log.LDF文件删除,以防万一,你可以拷出去4. 企业管理器->附加数据库,选muonline,这个时候你会看见日志文件这项是一个叉,不要紧,继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5. 记得数据库重新附加后用户要重新设置一下。
SQL SERVER 收缩事务日志
收缩事务日志--压缩事务日志。
删除日志日志—将原来过大的事务日志保存后将其分离删除,新的事务日志创建后其大小为50KB左边。
方法一、收缩数据库事务日志(T-SQL语句操作)
1.更改数据库恢复模式的命令如下(通常情况下,日志没有被收缩都是因为日志文件未被截断造成的。
还有一个办法是把将数据库恢复模式设置为“ SIMPLE ”模式后再次)如图1 ALTERDATABASE 数据库名 SET RECOVERYFULL;--更改为完全模式
ALTERDATABASE 数据库名 SET RECOVERY bulk_logged ;--更改为大容量日志模式ALTERDATABASE数据库名SET RECOVERY simple; --更改为简单模式
执行效果如图所示
注意事项:如果更改为简单模式,那以后将无需事物日志备份,但是一定要确保的定期执行数据
库备份来确保数据的完整性。
如果更改为完整模式或者大容量日志模式,那一定首先进行一次完整的数据库备份以启动日志链,并且设置任务计划来定期的日志备份
在事物日志进行截断之后,那我们就可以把日志文件进行收缩
可以使用DBCC SHRINKFILE使用命令进行收缩
下图是把以下示例将 test用户数据库中名为test_log的数据文件的大小收缩到 10 MB。
执行完命令后查看日志文件是否缩小,日志文件收缩后不会比虚拟日志文件小
收缩数据库命令
?
? 也可以用
SQL
语句来完成 ---- alter database AdeventureWroks2012 set recovery simple; (simple 简单模式,
full完整模式,bulk_logged大容量日志)。
sqlserver数据库收缩步骤
sqlserver数据库收缩步骤数据库收缩是指将数据库中的空间回收和重新组织,以便提高性能和节省磁盘空间。
以下是SQL Server数据库收缩的步骤:1.首先,运行`DBCCSHRINKDATABASE`命令来收缩整个数据库。
该命令将尝试压缩数据库文件并释放未使用的空间。
语法如下:```DBCC SHRINKDATABASE (database_name)```其中,`database_name`是要收缩的数据库的名称。
2.默认情况下,`DBCCSHRINKDATABASE`将尝试将数据库缩小到其实际大小。
但是,如果你希望将数据库缩小到指定的大小,可以使用`TARGET_SIZE`选项。
例如,要将数据库缩小到100MB大小,可以执行以下命令:```DBCC SHRINKDATABASE (database_name, 100)```3.收缩数据库过程可能会造成数据库锁定,因此在收缩数据库之前应考虑该数据库的使用情况。
如果数据库正在被频繁使用,可能需要在低峰时间进行收缩操作。
4.收缩数据库期间,可以将进度信息输出到消息窗口。
要启用此选项,可以使用`WITHNO_INFOMSGS`选项。
例如:DBCC SHRINKDATABASE (database_name) WITH NO_INFOMSGS```5.如果只需要收缩特定的表或索引,可以使用`DBCCSHRINKFILE`命令。
该命令用于收缩特定文件(数据文件或日志文件),而不是整个数据库。
语法如下:```DBCC SHRINKFILE (file_name, target_size)```6. `DBCC SHRINKFILE`命令中的`file_name`参数可以指定要收缩的文件的名称。
可以通过查询`sys.database_files`系统视图或使用SQL Server Management Studio(SSMS)查看文件名称。
7.使用`DBCCSHRINKFILE`命令收缩数据库文件时,可以将文件缩小到其实际大小,或者指定目标大小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收缩事务日志--压缩事务日志。
删除日志日志—将原来过大的事务日志保存后将其分离删除,新的事务日志创建后其大小为50KB左边。
方法一、收缩数据库事务日志(T-SQL语句操作)
1.更改数据库恢复模式的命令如下(通常情况下,日志没有被收缩都是因为日志文件未被截断造
成的。
还有一个办法是把将数据库恢复模式设置为“ SIMPLE ”模式后再次)如图1
ALTERDATABASE数据库名SET RECOVERY FULL;--更改为完全模式
ALTERDATABASE 数据库名SET RECOVERY bulk_logged ;--更改为大容量日志模式
ALTERDATABASE数据库名SET RECOVERY simple; --更改为简单模式
执行效果如图所示
注意事项:如果更改为简单模式,那以后将无需事物日志备份,但是一定要确保的定期执行数据库备份来确保数据的完整性。
如果更改为完整模式或者大容量日志模式,那一定首先进行一次完整的数据库备份以启动日志链,并且设置任务计划来定期的日志备份
在事物日志进行截断之后,那我们就可以把日志文件进行收缩
可以使用DBCC SHRINKFILE使用命令进行收缩
下图是把以下示例将 test用户数据库中名为test_log的数据文件的大小收缩到 10 MB。
执行完命令后查看日志文件是否缩小,日志文件收缩后不会比虚拟日志文件小
收缩数据库命令
∙也可以用SQL语句来完成
∙---- alter database AdeventureWroks2012 set recovery simple; (simple简单模式,full完整模式,bulk_logged大容量日志)
∙--收缩数据库
DBCC SHRINKDATABASE(库名)
∙DBCC Shrinkdatabase ('AdeventureWroks2012',10)收缩AdeventureWroks2012数据库,保留百分之10%的空闲空间
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
方法一、收缩数据库事务日志
1.登陆项目平台数据库服务器。
双击SQL Server Management Studio打开数据库管理。
2.更改数据库恢复模式
3.收缩数据库日志
4.修改完收缩日志后,将数据库恢复模式改为完整
方法二: 分离删除ldf,让它自动创建个新的事务日志文件
1. 进入企业管理器,选中数据库,比如arsystem
2. 所有任务->分离数据库
3. 到数据库文件的存放目录,将爱人沈阳市特命ARSystem_log.LDF文件删除,以防万一,你可以拷出去,或者是给它改名
4. 企业管理器->附加数据库,选arsystem.mdf,这个时候你会看见日志文件这项是一个叉,不要紧,继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5. 记得数据库重新附加后用户要重新设置一下。
分离数据库语句
Sp_detach_db 'ARsystem'
附加数据库语句
USE master
Go
Create database arsystem on
(filename= 'E:\Program File\Micorosoft SQL
Server\MSSQL11.SQLA\MSSQL\DATA\ARSystem.mdf') (filename= 'E:\Program File\Micorosoft SQL
Server\MSSQL11.SQLA\MSSQL\DATA\ARSystem_ldf.ldf') For attach
Go
释放数据库硬盘空间(那个LDF文件超大,怎么办?)
最简单的方法,卸离数据库-->删除ldf文件-->附加数据库-->自动重新产生一个ldf文件.
事务日志的优点和缺点
优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内
即可完成。
缺点:不过此动作最好不要经常使用,因为它的运行会带来系统碎片。
普通状态下LOG和DIFF的备份即可截断日志。
此语句使用的恰当环境:当系统的日志文件异常增大或者备份LOG时间太长可能影响生产的情况下使用。