首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

收缩数据库解决方案

2012-05-09 
收缩数据库请教下各位客户服务器上的数据库说越来越大,备份下来由1个G,当客户把数据库给我时,我附加后 再

收缩数据库
请教下各位;
客户服务器上的数据库说越来越大,
备份下来由1个G,
当客户把数据库给我时,
我附加后 再备份下 发现是文件只有450M,
当我有压缩备份后 文件只有200M,
请问下是不是因为服务器上日志的原因,
如果是日志的原因,
以下这段代码是否能够解决

SQL code
--在sql server 2008上,收缩日志之前必须把数据备份等级设置为simple(简单),切记!ALTER DATABASE your_database_name SET RECOVERY SIMPLEGO-- 收缩 DBCC SHRINKFILE (2,30)  --30单位为M,日志文件的大小 GO -- 更改模式为FULL ,再改回来,如果本身就已是simple,那就不必要了ALTER DATABASE your_database_name SET RECOVERY FULL  GO




[解决办法]
试下嘛

如果一般情况下,设置简单模式不必修改回来,就不必过一段时间收缩一次了
[解决办法]
SQL code
LZ上面的方法可以,我下面還有幾種方法,LZ可以看看方法一:--BigData为数据库名(該方法在SQL2008無效)DUMP TRANSACTION BigData WITH NO_LOGBACKUP LOG BigData WITH NO_LOGDBCC SHRINKDATABASE(BigData )方法二:USE BigData;GOBACKUP LOG DATABASENAME TO DISK='d:\test.bak'-- Shrink the truncated log file to 1 MB.DBCC SHRINKFILE (Bigdata_Log, 1);GO方法三:use DB_NAMEsp_dboption DB_NAME, "trunc. log on chkpt.", truecheckpointsp_dboption DB_NAME, "autoshrink", true --每一行指令请单独执行。其中的DB_NAME是指Database Name,在下完语法后的数小时至数十小时,该LOG档会逐渐释放空间,最后大约都会维持在数1024KB左右
[解决办法]
日志文件可以定期shrink,但是数据模式一般不要设置为simple
纯订阅、存放临时性数据的数据库可以设置为simple
[解决办法]
SQL code
select name from sys.database_files WHERE type_desc = 'LOG'
[解决办法]
探讨

SQL code

select name from sys.database_files WHERE type_desc = 'LOG'


查到你要收缩的数据库日志名字,然后替换语句中的文件名就行了。
前提是在当前数据库下执行上面的语句

热点排行