반응형
  1. /**********************************************************************************************
    -- Title : [2k] CHECKDB와 CHECKTABLE로 손상된 DB 및 테이블 복구
    -- Reference : dbRang.com
    -- Key word : checkdb, checktable
    **********************************************************************************************/

    /*
    ** CHECKDB로 손상된 DB 복구하기
    */

    SELECT DATABASEPROPERTYEX ('Northwind', 'UserAccess')
    --MULTI_USER
    GO

    ALTER DATABASE Northwind
    SET SINGLE_USER
    WITH ROLLBACK AFTER 10 --10초 후에 완료되지 않은 트랜잭션들을 롤백
    GO

    SELECT DATABASEPROPERTYEX ('Northwind', 'UserAccess')
    --SINGLE_USER
    GO

    DBCC CHECKDB ('Northwind', REPAIR_FAST)  
    -- REPAIR_FAST            : 사소한 손상 복구, 빠른 속도, 데이터 유실 없음.
    -- REPAIR_REBUILD         : REPAIR_FAST 실행, 시간 소요 작업(인덱스 재생성) 실행, 데이터 유실 무
    -- REPAIR_ALLOW_DATA_LOSS : REPAIR_REBUILD 실행, 구조적 문제와 페이지 오루 정정, 손상된 텍스트
    --                          오브젝트 삭제, 데이터 유실 가능.
    GO

    ALTER DATABASE Northwind
    SET MULTI_USER
    GO
     

    /*
    ** CHECKTABLE로 손상된 테이블 복구하기
    */
    SELECT DATABASEPROPERTYEX ('Northwind', 'UserAccess')
    --MULTI_USER
    GO

    ALTER DATABASE Northwind
    SET SINGLE_USER
    -- 10초 후에 완료되지 않은 트랜잭션들을 롤백
    WITH ROLLBACK AFTER 10
    GO

    SELECT DATABASEPROPERTYEX ('Northwind', 'UserAccess')
    --SINGLE_USER
    GO

    USE Northwind
    GO

    DBCC CHECKTABLE (Orders, REPAIR_FAST)
    GO

    ALTER DATABASE Northwind
    SET MULTI_USER
    GO
    -- EXEC sp_dboption 'Northwind', 'single user', 'FALSE'
    -- GO
반응형

+ Recent posts