마지막 백업 시간 및 DBCC 확인

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server에서 최근 마지막 백업은 언제일까? 마지막으로 성공한 DBCC는 언제일까? 아마 대부분의 DBA들은 백업 파일을 이름(날짜로 이름이 생성되어 있는 경우) 또는 파일의 생성날짜로 백업 시간을 알아 낼 것이다.

 

다음 스크립트를 사용하여 현재 생성되어 있는 데이터베이스의 마지막 백업 날짜 및 DBCC 날짜를 확인하여보자.

SET NOCOUNT ON

GO

 

USE master

GO

 

-- Trace flag to make DBCC Page command results available in the current connection

 

DBCC TRACEON(3604)

GO

 

CREATE TABLE #DBCC_table (

ParentObject nvarchar(4000) null,

Object nvarchar(4000) null,

Field nvarchar(4000) null,

VALUE nvarchar(4000) null

)

 

CREATE TABLE #LastDBCC_table (

[Database Name] nvarchar(4000) null,

[Last Known Good DBCC] nvarchar(4000) null

)

 

DECLARE @cmd varchar(4000)

DECLARE @DB_NAME nvarchar(500)

DECLARE @DB_ID int

DECLARE LastDBCC_cursor CURSOR FOR

 

SELECT name, [dbid] FROM sysdatabases

ORDER BY dbid

 

 

OPEN LastDBCC_cursor

-- Perform the first fetch.

FETCH NEXT FROM LastDBCC_cursor into @DB_NAME, @DB_ID

-- Check @@FETCH_STATUS to see if there are any more rows to fetch.

 

    WHILE @@FETCH_STATUS = 0

    BEGIN

        -- This is executed as long as the previous fetch succeeds.

        SET @cmd = 'dbcc page('+ convert(varchar,@DB_ID)+',1,9,3) with tableresults'

        insert into #DBCC_table execute (@cmd)

        insert into #LastDBCC_table

        select distinct @DB_NAME, VALUE from #DBCC_table where Field = 'dbi_dbccLastKnownGood'

 

             if @@ROWCOUNT = 0

                    insert into [#LastDBCC_table] select @DB_NAME, 'Not implemented'

 

        FETCH NEXT FROM LastDBCC_cursor into @DB_NAME, @DB_ID

 

        delete #DBCC_table

    END

 

CLOSE LastDBCC_cursor

 

DEALLOCATE LastDBCC_cursor

 

 

select

    T1.[Database Name],

    CASE

    WHEN (max(T1.[Last Known Good DBCC]) = '1900-01-01 00:00:00.000') then 'Not Yet Ran'

    ELSE max(T1.[Last Known Good DBCC]) END as [Last Known Good DBCC],

    --max(T1.[Last Known Good DBCC]) as [Last Known Good DBCC],

    COALESCE(convert(varchar(50),MAX(T2.backup_finish_date),21),'Not Yet Taken') AS [Last BackUp Taken]

from #LastDBCC_table T1 LEFT OUTER JOIN msdb.dbo.backupset T2

    ON T2.database_name = T1.[Database Name]

GROUP BY T1.[Database Name]

ORDER BY T1.[Database Name]

 

DROP TABLE #LastDBCC_table

DROP TABLE #DBCC_table

 

DBCC traceoff(3604)

GO

 

 

 

[참고자료]

http://blogs.msdn.com/b/sql_pfe_blog/archive/2010/02/09/last-known-good-backup-dbcc.aspx

 



강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 39797
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 21797
1874 AppDomain unloading 오류 로그 – CLR 오류 jevida(강성욱) 2016.10.11 1247
1873 SQL Server IO and Latch 설명 jevida(강성욱) 2016.10.11 3757
» 마지막 백업 시간 및 DBCC 확인 [1] jevida(강성욱) 2016.10.08 1668
1871 DMV를 활용한 CPU 트러블슈팅 - Sys.dm_exec_query_stats, sys.dm_os_ring_buffers 활용 [1] jevida(강성욱) 2016.10.08 2036
1870 백업 미디어 세트에 압축 백업 추가하기 jevida(강성욱) 2016.10.08 1571
1869 Collation에 따른 실행계획 변경과 성능 문제 jevida(강성욱) 2016.10.08 1723
1868 SQL Connection Timeout 디버깅 with BizTalk Server jevida(강성욱) 2016.10.08 2407
1867 인스턴스 파일 초기화 활성 jevida(강성욱) 2016.10.08 1798
1866 누락된 인덱스 확인하기 jevida(강성욱) 2016.10.08 3326
1865 비클러스터 인덱스 페이지 내용 jevida(강성욱) 2016.10.08 2083
1864 ATTACH DATABASE 오류 1314 jevida(강성욱) 2016.10.08 1208
1863 SQL Server 커넥션 풀링 jevida(강성욱) 2016.10.08 4715
1862 가상 SQL Server에 Hot Add vCPU 사용하기 jevida(강성욱) 2016.10.08 1156
1861 DDL 트리거를 활용한 ERRORLOG에 XEVENT 상태 기록하기 jevida(강성욱) 2016.10.08 1448
1860 쉐어포인트의 SQL Server 접속 문제 jevida(강성욱) 2016.10.08 1532
1859 Lazy Log Truncation jevida(강성욱) 2016.10.08 1407
1858 인덱스 구성과 상황에 따른 인덱스 성능 jevida(강성욱) 2016.10.08 1528
1857 Max worker thread 초과 이슈 jevida(강성욱) 2016.10.08 3157
1856 SQL Server Failover 클러스터 설치 트러블슈팅 jevida(강성욱) 2016.10.08 2587
1855 MAXDOP 극대화 하기 jevida(강성욱) 2016.10.08 2330





XE Login