sqlserver数据库怎样压缩数据库日志文件

特殊方法有以下三种。
方法一:第一步:backuplogdatabase_namewithno_log或backuplogdatabase_namewithtruncate_only--no_log和truncate_only这里是一样的,可以执行任何语句。
步骤2:1.收缩所有数据并保存特定数据库的文件,执行:dbccshrinkdatabase(database_name,[,target_percent])-database_name是要收缩的数据库的名称;target_percent是数据库中的剩余数据。
收缩数据库后的空间百分比。
2.一次性收缩数据或一次性记录文件dbccshrinkfile(file_id,[,target_size])--file_id是收缩文件ID的标识符。
使用FILE_ID函数或在当前数据库中搜索sysfiles,其中target_size是所需的文件大小(以兆字节为单位)(指定为整数。
如果未指定,dbccshrinkfile会将文件大小收缩到默认文件大小。
两个dbccshrinkfile都只能有参数notruncate或truncate具体定义请查阅在线帮助步骤2:备份完成后,在QueryAnalyzer中执行以下语句:execsp_detach_dbyourDBName,true-在MSSQL中删除该DB的日志数据第3步:进入物理文件所在目录删除日志文件或从目录中删除日志文件第4步:在分析器中执行以下语句QueryAn:execsp_attach_single_dbyourDBName,'d:\mssql\data\yourDBName_data.mdf'--DB作为单个文件如果注册成功,MSSQL会自动为该DB生成500k的日志文件。
方法三:1.进入企业管理器,选择显示的数据库2.所有任务->数据库数据库3.进入数据库文件存放目录,选择MuOnline_log.LDF删除文件并复制4.企业管理器->数据库Attach,这时候你会看到日志文件项上传了,这时候如果数据库没有日志的话会要求你新建一个数据库5.记住数据库attach后一定要重启。
再次。
如果以后不想让它变大,在SQL2000下使用:右键数据库->属性->选项->恢复-模型-选择-简单模型。
或者使用SQL语句:alterdatabase数据库名setrecoverysimple

MSSQL数据库日志的压缩与清除技巧

通常情况下,收缩SQL数据库可能不会大幅减少数据库大小。
它的主要功能是减少日志大小。
应定期执行此操作,以防止数据库日志变得过大:1、将数据库模式设置为简单模式:打开SQLEnterpriseManager,在控制台根目录中单击MicrosoftSQLServer--SQLServerGroup--双击打开您的服务器--双击打开数据库目录--选择您的数据库名称(例如论坛数据库论坛)--然后右键单击并选择属性--选择选项--故障转移模式选择“简单”并按“确定”保存。
2、右键当前数据库,在所有功能中查看缩小后的数据库,一般不需要调整默认设置,直接点击确定即可。
3、收缩数据库后,建议将数据库属性重置为标准模式,操作方法与第一点相同,因为日志往往是在一些异常情况下恢复数据库的重要依据。
方法二SETNOCOUNTONDECLARE@LogicalFileNamesysname,@MaxMinutesINT,@NewSizeINTUSEtablename--要操作的数据库名SELECT@LogicalFileName='tablename_log',--日志文件名@MaxMinutes=10,--限制tontimeallowedtowraplog.@NewSize=1--日志文件您要设置的尺寸(M)--设置/初始化DECLARE@OriginalSizeintSELECT@OriginalSize=sizeFROMsysfilesWHEREname=@LogicalFileNameSELECT'OriginalSizeof'+db_name()+'LOGis'+CONVERT(VARCHAR(30),@OriginalSize)+'8Kpagesor'+CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+'MB'FROMsysfilesWHEREname=@LogicalFileNameCREATETABLEDummyTrans(DummyColumnchar(8000)notnull)DECLARE@CounterINT,@StartTimeDATETIME,@TruncLog