저는 다소 새로운 DBA이며 상당한 양의 활동이있는 SQL Server 2012 인스턴스를 관리하고 있습니다. 특정 시점 복구가 필요하기 때문에 전체 복구 모드에서 실행 중입니다.
지금은 매일 오전 5시에 데이터베이스와 로그를 전체 백업합니다. 일부 로그 파일은 최대 300GB로 확장되었으며 백업을 수행 한 후에도 크기가 줄어들지 않습니다. 다음과 비슷한 것을 실행하여 크기를 줄일 수 있습니다.
BACKUP LOG db1 TO DISK = '\\server\share\db1_log1.trn';
DBCC ShrinkFile([db1_log], 0);
BACKUP LOG db1 TO DISK = '\\server\share\db1_log2.trn';
DBCC ShrinkFile([db1_log], 0);
BACKUP LOG db1 TO DISK = '\\server\share\db1_log3.trn';
DBCC ShrinkFile([db1_log], 0);
백업 파일의 LSN을 확인하면 다음과 같은 내용이 표시됩니다.
RESTORE headeronly FROM DISK = N'\\server\share\db1_log1.trn'
FirstLSN: 15781000014686200001
SecondLSN: 15802000000665000001
RESTORE headeronly FROM DISK = N'\\server\share\db1_log2.trn'
FirstLSN: 15802000000665000001
SecondLSN: 15805000000004100001
RESTORE headeronly FROM DISK = N'\\server\share\db1_log3.trn'
FirstLSN: 15805000000004100001
SecondLSN: 15808000000004200001
로그 파일을 축소하여 로그 체인을 깨고 있다고 생각하지 않습니다. 이것에 대해 읽으면 축소 된 로그 파일이 다시 커져야하기 때문에 성능이 저하된다고 생각합니다.
질문 :
- 백업 후 로그 파일이 축소되지 않는 이유는 무엇입니까? 커밋되지 않은 트랜잭션이 있기 때문입니까?
- 처음에는 오전 5시 백업 후 로그 파일을 축소해야한다고 생각했습니다. 성능이 어떻게 나빠지는지에 대해 읽은 후에는 하루 중 몇 시간마다 정기적 인 로그 백업을 수행해야한다고 생각합니다. 그 맞습니까?
- 데이터베이스 / 로그의 정상적인 전체 백업은 매일 오전 5시에 발생하며 때로는 3 시간이 걸립니다. 1 시간마다 로그 백업이 수행되도록 예약하면 로그 백업이 오전 5시 백업과 충돌하면 어떻게됩니까?