백업로그가 확장되거나 로그가 꽉찰때 로그를 비워줄때 사용하는 옵션이 SQL2008이후 버젼에서는 더이상 사용할 수 없게 되었다.
use master go drop database shrinkdemo go CREATE DATABASE shrinkdemo ALTER DATABASE shrinkdemo SET RECOVERY FULL go sp_helpdb shrinkdemo go --name fileid filename filegroup size --shrinkdemo 1 D:\DB\MSSQL\shrinkdemo.mdf PRIMARY 4160 KB --shrinkdemo_log 2 D:\DB\MSSQL\shrinkdemo_log.ldf NULL 1040 KB USE shrinkdemo go --※. log file 생성시 생성 크기에 따른 vlf count수 --Initial or Extended Size Number of VLFs created --<64MB 4 -->=64MB and < 1GB 8 -->=1GB 16 -- 1MB 이내임으로 VLF COUNT 체크 DBCC LOGINFO --RecoveryUnitId FileId FileSize StartOffset FSeqNo Status Parity CreateLSN --0 2 262144 8192 34 2 64 0 --0 2 262144 270336 0 0 0 0 --0 2 262144 532480 0 0 0 0 --0 2 270336 794624 0 0 0 0 -- 4개이다. CREATE TABLE biggie (a int, padding char(4000) default ' ') go INSERT biggie (a) SELECT a.object_id FROM sys.objects a CROSS JOIN sys.objects b CROSS JOIN sys.objects c go EXEC sp_helpdb shrinkdemo go --log file size 증가. --name size --shrinkdemo 667904 KB --shrinkdemo_log 770752 KB -- 1MB 이내임으로 VLF COUNT 체크 DBCC LOGINFO -- 총 32개 VLF 청크가 생겼다. -- 복구 모델을 변경 ALTER DATABASE shrinkdemo SET RECOVERY SIMPLE go -- 로그를 잘라낸다. DBCC SHRINKFILE(shrinkdemo_log) go --DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages --23 2 130 130 128 128 -- 4개 DBCC LOGINFO -- 다시 4개 생성 --RecoveryUnitId FileId FileSize StartOffset FSeqNo Status Parity CreateLSN --0 2 262144 8192 337 2 128 0 --0 2 262144 270336 35 0 64 0 --0 2 262144 532480 36 0 64 0 --0 2 270336 794624 37 0 64 0 EXEC sp_helpdb shrinkdemo go -- 축소되었다.(파일이 다시 1M로 되어 있으니 CHUNK가 4개로 생성) --name size --shrinkdemo 667904 KB --shrinkdemo_log 576 KB -- 로그 파일을 적정 사이즈로 변경 ALTER DATABASE shrinkdemo MODIFY FILE ( NAME = shrinkdemo_log , SIZE = 200MB ) go -- 복구 모델을 변경 ALTER DATABASE shrinkdemo SET RECOVERY FULL go -- 8개가 정상인데 왜? 12개야? DBCC LOGINFO go -- 파일의 SIZE가 200MB인데 왜 12개의 VLF가 생성되는 건가? -- 최소로 축소 했을 때 4개였는데 흠.... --RecoveryUnitId FileId FileSize StartOffset FSeqNo Status Parity CreateLSN --0 2 262144 8192 337 2 128 0 --0 2 262144 270336 35 0 64 0 --0 2 262144 532480 36 0 64 0 --0 2 270336 794624 37 0 64 0 --0 2 26017792 1064960 0 0 0 337000000006400001 --0 2 26017792 27082752 0 0 0 337000000006400001 --0 2 26017792 53100544 0 0 0 337000000006400001 --0 2 26017792 79118336 0 0 0 337000000006400001 --0 2 26017792 105136128 0 0 0 337000000006400001 --0 2 26017792 131153920 0 0 0 337000000006400001 --0 2 26017792 157171712 0 0 0 337000000006400001 --0 2 26525696 183189504 0 0 0 337000000006400001
'SQL Server 2008' 카테고리의 다른 글
DML 변경 내용 추적하기 (0) | 2011.08.09 |
---|---|
DeadLock 감지 및 확인 (0) | 2011.08.08 |
Myths and misconceptions: 60-page PDF of blog posts (0) | 2010.11.03 |
server collation과 database collation을 한번에 바꾸기 (0) | 2010.11.01 |
Optimising Server-Side Paging - Part I (1) | 2010.04.26 |