|
我觉得自己很有经验SQL但是我没有做这两件事:& b8 `& X! Q7 p- C' l
减少分配的日志的大小。
# g) W8 N& i6 \, G5 x截断日志。DBCC sqlperf(日志空间)
/ _# _4 @& G G" ?) U返回:
2 w! b+ W. `% b+ VDatabase Name Log Size (MB) Log Space Used (%) StatusByBox .25 30.0657 以下不适用SQL 20080 f& i+ S% r( s( t1 A. u
DUMP TRANSACTION ByBox WITH TRUNCATE_ONLY操作下列命令无济于事
8 p# b7 U, S) g Y" B1 l" W4 }$ {DBCC SHRINKFILE ('ByBox_1_Log' ,1)DBCC shrinkdatabase(N'bybox')我试过备份。我还试图将数据库的属性设置为-恢复模型同时设置为完整和简单,以及上述所有组合。我也试图设置正确的SQL Server
% Q& [% h' x. K" l/ ^; `, H; K r2005和SQL Server 2008兼容性。
+ O5 @1 p/ e! L3 D8 D不管我尝试什么,这个日志仍然是1964年.25 MB,已使用了30%,而且还在增长。" Q/ b4 u0 W% @' G! d( J- J
希望日志回落到0%将日志文件的大小降低到100 MB,这就够了。我的数据库一定讨厌我。它只是忽略了我要求它执行的所有关于日志的操作。! V3 g3 K7 B0 w s
进一步说明。生产数据库中有很多复制的表,当我使用以下命令在开发盒上执行还原时,这些表将关闭:3 ^! Z7 n9 o6 p* p5 w8 h- s
-- Clear out pending replication stuffexec sp_removedbreplicationgoEXEC sp_repldone @xactid = NULL,@xact_segno = NULL, @numtrans = 0,@time = 0,@reset = 1go试:
# L6 Q. @0 l* ^3 m' f- q, T4 ?* {SELECT log_reuse_wait,log_reuse_wait_descFROM sys.databasesWHERE NAME='bybox'退货$ R1 x; h7 y0 m8 ]
log_reuse_wait log_reuse_wait_desc0 NOTHING如何解决这个问题?$ H, u$ @: L6 V5 ?; @: T
看这个,把恢复模型设置为FULL,我尝试了以下操作:6 J; e" x5 j" {5 m i* E/ p! I( {9 c
USE masterGOEXEC sp_addumpdevice 'disk','ByBoxData',N'C:\\bybox.bak'-- Create a logical backup device,ByBoxLog.EXEC sp_addumpdevice 'disk','ByBoxLog',N'C:\\bybox_log.bak'-- Back up the full bybox database.BACKUP DATABASE bybox TO ByBoxData-- Back up the bybox log.BACKUP LOG bybox TO ByBoxLog返回:6 S8 Z9 V& o# A. B1 q Q9 J
Processed 151800 pages for database 'bybox',file 'ByBox_Data' on file 3.Processed 12256 pages for database 'bybox',file 'ByBox_Secondary' on file 3.Processed 1 pages for database 'bybox',file 'ByBox_1_Log' on file 3.BACKUP DATABASE successfully processed 164057 pages in 35.456 seconds (36.148 MB/sec).Processed 2 pages for database 'bybox',file 'ByBox_1_Log' on file 4.BACKUP LOG successfully processed 2 pages in 0.056 seconds (0.252 MB/sec).完美的!但事实并非如此。
. C# z0 ~8 `6 BDBCC SHRINKFILE(’ByBox_1_Log’,1)现在返回
2 O W: A1 D( `, y% i; aDbId FileId CurrentSize MinimumSize UsedPages EstimatedPages 251425 251425 251424 251424并且DBCC SQLPERF(LOGSPACE)仍然报告30%的使用率。
0 l) p/ ?6 X% N我想我可能不得不辞职SQL Server" T4 j( o. D- o# L( E6 W2 D
2008年可能会出现错误,或者我的日志文件以某种方式被损坏。然而,我的数据库处于良好的工作状态,这让我觉得有错误( 对此 不满意) 。' K) S) I% a( q. ^6 I% n
. S& g& `6 V/ \* b/ ?+ |! f0 i* | 解决方案: 9 W* U. N5 r, q/ Z
找到解决方案!
5 M# Z' B0 ^2 G/ N: H7 U我将数据负载添加到数据库中,所以我不得不扩展日志。然后,我删除了不必要的数据,使数据库恢复到原始状态。; z* y0 A; a. r, ^
备份和看,完美的0%日志。) w+ j' G% o5 @& T
因此,解决方案是扩展日志。 |
|