강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

:: 차등 백업 받기와 복원 ::
작성자 : 13 김영철
등록날짜 : 2009.01.24 23:03
2,120

1. 차등 백업(Differential Backup)의 특징

데이터베이스 차등 백업이란 전체 백업(Full Backup) 이후에 변경된 데이터만 백업받는 방법입니다. 예를 들어서 현재 100GB 정도의 데이터베이스가 있고 어제 저녁에 전체 백업을 받았다고 가정 하겠습니다. 오늘 하루 동안 입력된 데이터가 1,000건 정도 있다고 했을 때 가장 효과적인 백업(트랜잭션 백업을 제외하고)은 오늘 변경된 1,000 건의 데이터에 대한 백업만 받는 것입니다. 이후에 문제가 발생하게 되면 어제 받은 전체 백업을 복원하고 오늘 추가로 백업 받은 변경분 백업만 이어서 복원하게 되면 전체 데이터가 복원됩니다.

그래서 차 등백업이 효과적인 경우는 전체 데이터베이스 사이즈가 너무 커서 전체 백업을 받기에 너무 부담이 되는 경우입니다. 단지 변경 내용만 백업 받게 되면 짧은 시간에 백업을 받을 수 있어 효과적입니다. 중요한 것은 차등 백업만 있으면 아무 의미가 없다는 것입니다. 전체 백업 받은 것이 있어야 차등 백업이 의미가 있습니다. 다시 말하면 문제가 발생하여 데이터베이스 복원을 해야 하는데 차등 백업 데이터는 있는데 전체 백업 데이터가 없다면 복원이 불가능하게 됩니다.

혼동하기 쉬운 차등 백업의 특징이 있습니다. 차등 백업은 전체 백업이 이루어지고 난 이후에 변경된 내용을 백업 받는다고 했습니다. 이 사실을 정확히 이해 하셔야 합니다. 다음의 가정을 세우도록 하겠습니다.

고객 테이블에 홍길동 고객정보추가
전체 백업
고객 테이블에 안경태 고객정보 추가
차등 백업
고객 테이블에 김치국 고객정보 추가
차등백업
문제 발생

이렇게 문제가 발생 한 경우 데이터베이스 복원 작업을 하려고 합니다. 과연 이때 필요한 백업 데이터는 어떤것들 일까요?

위 경우 ④ 번의 차등 백업은 안경테 고객의 데이터를 가지고 있습니다. 그리고 ⑥ 번의 차등 백업은 김치국 고객의 정보 뿐만 아니라 안경태 고객의 정보도 가지고 있습니다. 왜냐하면 전체 백업 이후의 변경 데이터를 가지고 있기 때문입니다. 그래서 복원을 원한다면 전체 백업을 복원 한 후 ⑥ 번의 차등 백업을 복원 하면 데이터베이스 복원이 이루어지게 되는 것입니다.

2. 차등 백업 수행

1) EM에서의차등 백업

차등 백업을 받는 방법은 전체 백업을 받는 과정과 동일 합니다. 단지 아래 [그림 1]과 같이 백업 방법을 '데이터베이스 - 차등'으로 선택만 하시면 됩니다. 각 항목들의 의미는 전체 백업과 동일합니다.

lec_a0005a.jpg
[그림 1]

2) T-SQL 문을 이용한 전체 백업

BACKUP DATABASE 문을 이용해서 전체 백업은 물론 차등 백업을 수행 할 수 있습니다. 테이블을 하나 만들어 전체 백업과 차등 백업을 수행하고 그 결과를 보도록 하겠습니다.

[예제 1] Test1 테이블 만들기

CREATE TABLE Test1
(
col1 char(05),
col2 int
)
GO

o 간단한 구조의 테이블 Test1 을 만들었습니다.

[예제 2] 샘플 데이터 추가

INSERT INTO Test1 VALUES('AAAAA',10)
INSERT INTO Test1 VALUES('BBBBB',20)
INSERT INTO Test1 VALUES('CCCCC',30)

o 3개의 레코드를 추가 하였습니다.

[예제 3] 전체 백업 수행

USE Master
GO

BACKUP DATABASE sqlworld TO SQLWORLD WITH INIT

o sqlworld 데이터베이스를 예전에 만든 백업 장치인 SQLWORLD에 전체 백업을 받았습니다.

[예제 4] 샘플 데이터 추가

INSERT INTO Test1 VALUES('DDDDD',40)
INSERT INTO Test1 VALUES('EEEEE',50)
INSERT INTO Test1 VALUES('FFFFF',60)

o 다시 3개의 레코드를 추가 하였습니다.

[예제 5] 첫번째 차등 백업 수행

USE Master
GO

BACKUP DATABASE sqlworld TO SQLWORLD WITH DIFFERENTIAL, NOINIT

o 첫번째 차등 백업을 수행했습니다. NOINIT을 준 이유는 앞에서 백업받은 전체 백업을 보존하기 위해서 입니다. INIT으로 하게 되면 전체 백업 내용이 사라집니다.

[예제 6] 샘플 데이터 추가

INSERT INTO Test1 VALUES('GGGGG',70)
INSERT INTO Test1 VALUES('HHHHH',80)
INSERT INTO Test1 VALUES('IIIII',90)

o 다시 3개의 레코드를 추가 하였습니다.

[예제 7] 첫번째 차등 백업 수행

USE Master
GO

BACKUP DATABASE sqlworld TO SQLWORLD WITH DIFFERENTIAL, NOINIT

o 두번째 차등 백업을 수행했습니다.

3. 차등 백업으로 부터의 데이터베이스 복원

[예제 1] 에서 부터 [예제 7]까지의 과정에서 몇가지 데이터의 변화가 있었고 우리는 전체 백업 한번과 두번의 차등 백업의 과정으로 데이터베이스를 백업 받은 상태입니다. 이 시점에서 문제가 발생하여 sqlworld 데이터베이스를 복원해야 한다고 가정을 하고 복원 작업을 하도록 하겠습니다.

전체 백업으로 부터 복원하는 방법을 이전의 강좌에서 배웠습니다. 동일한 방법으로 sqlworld 데이터 베이스 복원을 시도하게 되면 아래 [그림 2]와같은 화면이 표시됩니다. 빨간색 부분을 보면 위에서 우리가 시도한 3번의 백업 히스토리가 보입니다. 그 중에서 파란색 부분은 두번의 차등 백업 히스토리입니다. [그림 2]에서는 맨 처음 전체 백업과 마지막 차등 백업이 선택되어 있습니다. 이때 전체 백업을 선택하지 않으려고 해도 할 수가 없습니다. 왜냐하먼 차등 백업은 전체 백업 내용이 복원 되어야 의미가 있기 때문입니다.

lec_a0005b.jpg
[그림 2]

위 [그림 2]의 상태에서 [확인] 버튼을 눌러 복원을 하면 전체 데이터가 복원 됩니다. 만일 전체 백업 내용과 첫번째 차등 백업 내용을 선택하고 복원을 하게 되면 Test1 테이블에는 6개의 레코드만 존재하는 상태가 됩니다. 마지막 입력된 3개의 레코드는 복원이 안되기 때문입니다.

----------------------------------------------------------------------------------------

출처 : http://www.sqlworld.pe.kr

 

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2685 :: 사용자 정의 함수(User Defined Function) :: 13 김영철 01.24 2679
2684 :: 트리거(Trigger) :: 13 김영철 01.24 2374
2683 :: 백업(Backup) 이란? :: 13 김영철 01.24 2499
2682 :: 백업 장치 만들기 :: 13 김영철 01.24 2318
2681 :: 전체 백업 받기 :: 13 김영철 01.24 2293
2680 :: 전체 백업으로부터의 복원 :: 13 김영철 01.24 2500
열람중 :: 차등 백업 받기와 복원 :: 13 김영철 01.24 2121
2678 :: 데이터베이스 옵션을 이용한 트랜잭션 로그 제어 :: 13 김영철 01.24 2884
2677 :: 트랜잭션 로그 줄이기 테스트 :: 13 김영철 01.24 2303
2676 :: 백업과 복원 정리 :: 13 김영철 01.24 2009
2675 :: SQL Server Agent 서비스 이해 :: 13 김영철 01.24 2819
2674 :: [작업 만들기 마법사] 이용하기 :: 13 김영철 01.24 2724
2673 :: 등록된 작업 살펴보기 :: 13 김영철 01.24 2447
2672 :: 새로운 작업 등록하기 :: 13 김영철 01.24 2056
2671 :: 데이터베이스 유지 관리 계획 마법사 :: 13 김영철 01.24 2354
2670 ::[데이터 가져오기 및 보내기]를 이용한 데이터 변환 :: 13 김영철 01.24 2693
2669 :: 기본적인 웹 페이지 만들기 :: 13 김영철 01.24 2107
2668 :: 템플릿을 이용한 웹 페이지 만들기 :: 13 김영철 01.24 2322
2667 ▒엑셀파일을 ms-sql DB테이블로 전환하기 13 김영철 01.24 3250
2666 :: INFOEMATION_SCHEMA 뷰 이용하기 :: 13 김영철 01.24 2119
2665 :: 인증모드와 로그인 관리 :: 13 김영철 01.24 2404
2664 :: 데이터베이스 사용자 추가 13 김영철 01.24 2241
2663 :: 연결된 서버 만들기 13 김영철 01.24 2933
2662 :: 엑셀 워크시트를 연결된 서버로 만들기 13 김영철 01.24 3114
2661 mssql 함수모음 13 김영철 01.24 3401
2660 :: text타입의 본문 문자열바꾸기 Sql 13 김영철 01.24 2345
2659 오라클과 MSSQL 의 날짜 비교 13 김영철 01.24 3563
2658 MSSQL 백업복구 13 김영철 01.24 3113
2657 [MSSQL]쿼리 분석기 더 잘 사용하기 13 김영철 01.24 3413
2656 SQL Injection 기법 정리(MSSQL) 13 김영철 01.24 4172
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취