백업(backup)은 데이터베이스의 사본을 다른 저장 장소에 미리 떠 두는 일입니다. 디스크가 망가지면 로그만으로는 되살릴 수 없어, 떠 둔 사본을 되살린 뒤 그 뒤의 변경을 반영합니다.
회복에서 가른 장애 셋 가운데 미디어 장애는 디스크가 망가져 데이터를 읽을 수 없는 장애입니다. 로그까지 같은 디스크에 있었다면 로그마저 읽을 수 없습니다. 그래서 물리 설계에서는 '무엇을 얼마나 자주 떠서 어디에 두나'를 미리 정합니다. 한 벌을 통째로 뜨면 되살릴 때 쓰는 백업이 하나뿐이지만 뜨는 데 오래 걸리고, 바뀐 것만 뜨면 빨리 끝나지만 되살릴 때 여러 벌을 차례로 되돌려야 합니다. 아래 그림은 백업 달력에서 증분으로 운영한 줄과 차등으로 운영한 줄을 나란히 놓고, 목요일 아침 장애에 되살리는 데 쓰는 백업 수를 견줍니다.
1무엇을 담나 — 전체·차등·증분
그림은 일요일 밤의 전체 백업을 먼저 보입니다. 전체 백업(full backup)은 데이터베이스를 한 벌 통째로 뜨는 것입니다. 되살릴 때 밑바탕이 되는 백업이라, 차등도 증분도 전체 백업 한 벌이 있어야 뜻이 있습니다. 그림의 두 운영 줄이 같은 막대 하나에서 갈라지는 까닭입니다.
이어서 월·화·수 밤의 백업이 두 줄로 갈립니다. 증분 백업(incremental backup)은 마지막 백업 뒤에 바뀐 것만 담습니다. 여기서 마지막 백업은 전체 백업일 수도 있고 바로 앞 증분 백업일 수도 있습니다. 차등 백업(differential backup)은 언제나 마지막 전체 백업 뒤에 바뀐 것을 모두 담아, 그림의 차등 막대는 날마다 전체 백업 자리에서 다시 시작해 길어집니다.
| 가르는 기준 | 전체 백업 | 차등 백업 | 증분 백업 |
|---|---|---|---|
| 무엇을 담나 | 데이터베이스 전부 | 전체 백업 뒤에 바뀐 것 모두 | 마지막 백업 뒤에 바뀐 것만 |
| 어디를 기준으로 재나 | 기준이 없다 | 마지막 전체 백업 | 마지막 백업(전체 또는 증분) |
| 뜨는 시간과 자리 | 가장 오래 걸리고 가장 많이 쓴다 | 날이 갈수록 늘어난다 | 날마다 적다 |
| 되살릴 때 쓰는 백업 | 전체 1개 | 전체 1개와 가장 최근 차등 1개 | 전체 1개와 그 뒤 증분 전부 |
2되살리는 순서 — 로그 백업이 사이를 메운다
그림의 마지막 장면은 수요일 밤 백업과 목요일 아침 장애 사이에 띠 하나를 더합니다. 로그 백업(log backup)은 마지막 백업 뒤에 쌓인 변경 기록만 뜨는 것입니다. 데이터 백업이 하루에 한 번이어도 로그 백업은 몇 분마다 뜰 수 있어 장애 직전까지 되돌립니다.
되살리는 순서는 정해져 있습니다.
- 전체 백업을 되살립니다.
- 차등으로 운영했다면 가장 최근 차등 백업 하나를 되돌립니다. 증분으로 운영했다면 그 뒤의 증분 백업을 뜬 순서대로 모두 되돌립니다.
- 그 뒤에 뜬 로그 백업을 시간 순서대로 반영합니다.
증분 백업은 하나라도 빠지면 그 뒤를 되돌릴 수 없습니다. 로그 백업도 중간이 빠지면 빠진 곳까지만 되돌릴 수 있습니다.
3주기와 보관
주기는 '얼마만큼 잃어도 되나'로 정합니다. 주말 밤에 전체 백업, 평일 밤에 차등이나 증분, 낮에는 로그 백업을 몇 분마다 뜨는 꼴이 흔합니다. 차등으로 운영하면 날이 갈수록 백업이 커지므로 새 전체 백업을 떠 기준을 다시 세웁니다.
둔 자리도 백업의 일부입니다. 데이터베이스와 같은 디스크에 둔 백업은 그 디스크가 망가질 때 함께 사라지므로, 다른 저장 장치에 여러 날의 백업을 남기고 주기마다 한 번씩 되살려 봅니다.
예제
일요일 밤에 전체 백업을 뜨고 평일 밤마다 한 번씩 뜨는 운영입니다. 목요일 아침에 디스크가 망가졌습니다.
| 언제 | 증분으로 운영 | 차등으로 운영 |
|---|---|---|
| 일 밤 | 전체 백업 | 전체 백업 |
| 월 밤 | 월에 바뀐 것 | 전체 뒤에 바뀐 것(월) |
| 화 밤 | 화에 바뀐 것 | 전체 뒤에 바뀐 것(월·화) |
| 수 밤 | 수에 바뀐 것 | 전체 뒤에 바뀐 것(월·화·수) |
| 목 아침 | 장애 | 장애 |
되살리는 데 쓰는 백업은 운영에 따라 갈립니다.
| 운영 | 되살리는 차례 | 백업 수 |
|---|---|---|
| 증분 | 전체 → 월 → 화 → 수 | 4개 |
| 차등 | 전체 → 수 | 2개 |
증분 쪽은 날마다 뜨는 양이 적은 대신 백업 4개를 차례로 되돌립니다. 차등 쪽은 수요일 백업 하나에 월·화의 변경까지 들어 있어 2개로 끝납니다. 수요일 밤 뒤의 변경은 두 운영 모두 데이터 백업에 없어, 목요일 아침까지의 로그 백업을 반영해 장애 직전으로 맞춥니다.
시험 포인트
- 필기: 전체 백업은 데이터베이스 전부를, 차등 백업은 마지막 전체 백업 뒤에 바뀐 것을 모두, 증분 백업은 마지막 백업 뒤에 바뀐 것만 담습니다. 되살리는 순서는 전체 백업 다음에 차등은 가장 최근 하나, 증분은 그 뒤 전부를 되돌리고 마지막으로 로그 백업을 시간 순서대로 반영하는 것입니다. 증분은 뜨는 양이 적고 되살릴 때 쓰는 백업이 많으며, 차등은 그 반대입니다.
- 실기: 전체 백업(Full Backup)·차등 백업(Differential Backup)·증분 백업(Incremental Backup)·로그 백업(Log Backup)으로 씁니다.
확인 문제
1. 토요일 밤에 전체 백업을 뜨고, 일·월·화 밤마다 차등 백업을 뜨는 운영입니다. 수요일 낮에 디스크가 망가졌습니다. 되살리는 데 쓰는 백업으로 알맞은 것을 고르세요.
- ① 전체 백업 1개
- ② 전체 백업과 화요일 차등, 2개
- ③ 일·월·화 차등, 3개
- ④ 전체 백업과 일·월·화 차등, 4개
정답
②입니다. 차등 백업은 날마다 마지막 전체 백업 뒤에 바뀐 것을 모두 담으므로, 화요일 차등 하나에 일·월의 변경까지 들어 있습니다. 전체 백업을 되살린 뒤 가장 최근 차등 하나만 되돌립니다.
- ① 차등 백업을 되돌리지 않았습니다. 전체 백업만 되살리면 토요일 밤 상태로 돌아가고 일·월·화의 변경이 사라집니다.
- ③ 전체 백업 없이 차등만으로 된다고 봤습니다. 차등 백업은 전체 백업 뒤에 바뀐 것만 담아, 밑바탕이 되는 전체 백업이 있어야 합니다.
- ④ 뜬 순서대로 모두 되돌린다고 봤습니다. 그것은 증분 백업으로 운영했을 때입니다. 차등은 뒤의 것이 앞의 것을 품고 있어 가장 최근 하나로 끝납니다.
2. 다음 (가)~(라)에 맞는 이름을 한글 이름과 영문으로 함께 쓰세요. 답을 끝까지 쓴 뒤 정답을 펼치세요.
- (가) 데이터베이스를 한 벌 통째로 떠 둡니다. 다른 백업들이 되살릴 때 밑바탕으로 삼습니다.
- (나) 바로 앞에 뜬 백업 뒤에 바뀐 것만 떠 둡니다. 날마다 뜨는 양이 가장 적고, 되살릴 때는 뜬 순서대로 모두 되돌려야 합니다.
- (다) 떠 두는 범위가 늘 마지막 (가) 자리에서 시작합니다. 날이 갈수록 커지지만 되살릴 때는 가장 최근 하나만 되돌립니다.
- (라) 데이터가 아니라 그 사이에 쌓인 변경 기록만 떠 둡니다. 몇 분마다 뜰 수 있어 장애 직전까지 되돌릴 수 있습니다.
정답
받는 답: (가) 전체 백업(Full Backup) · (나) 증분 백업(Incremental Backup) · (다) 차등 백업(Differential Backup) · (라) 로그 백업(Log Backup)
(가)의 실마리는 '한 벌 통째로, 다른 백업의 밑바탕', (나)는 '바로 앞에 뜬 백업 뒤', (다)는 '늘 전체 백업 자리에서 시작', (라)는 '데이터가 아니라 변경 기록'입니다.
- 틀리는 꼴 차등 백업 — (나)에: 기준이 마지막 전체 백업이라 되살릴 때 하나만 되돌립니다. (나)는 뜬 순서대로 모두 되돌립니다.
- 틀리는 꼴 증분 백업 — (다)에: 기준이 바로 앞 백업이라 날마다 담는 양이 비슷합니다. (다)는 날이 갈수록 커집니다.
- 틀리는 꼴 로그 — (라)에: 백업하지 않고 데이터베이스가 쌓아 두는 변경 기록 자체의 이름입니다. (라)는 그 기록을 떠 두는 백업의 이름입니다.
3. 증분 백업으로 운영하는 데이터베이스가 있습니다. 밤마다 백업을 뜨는 시간은 짧은데, 장애가 났을 때 되살리는 데 너무 오래 걸린다는 지적을 받았습니다. 밤 백업을 차등으로 바꾸면 어떻게 되는지 알맞은 것을 고르세요.
- ① 밤마다 뜨는 양이 늘고, 되살릴 때 되돌리는 백업 수는 줄어든다
- ② 밤마다 뜨는 양이 줄고, 되살릴 때 되돌리는 백업 수도 줄어든다
- ③ 밤마다 뜨는 양은 그대로이고, 되살릴 때 되돌리는 백업 수만 줄어든다
- ④ 밤마다 뜨는 양이 늘고, 되살릴 때 되돌리는 백업 수도 늘어난다
정답
①입니다. 차등 백업은 기준이 마지막 전체 백업이라 전체 백업에서 멀어질수록 담는 양이 늘어납니다. 대신 되살릴 때는 전체 백업과 가장 최근 차등 하나만 되돌려 백업 수가 줄어듭니다.
- ② 뜨는 양과 되살리는 품이 함께 줄어든다고 봤습니다. 둘은 반대로 움직입니다. 뜨는 양이 가장 적은 쪽이 증분이고, 그쪽이 되돌릴 백업이 가장 많습니다.
- ③ 담는 범위가 그대로라고 봤습니다. 기준이 바로 앞 백업에서 마지막 전체 백업으로 바뀌므로 범위가 넓어집니다.
- ④ 되돌리는 백업 수까지 늘어난다고 봤습니다. 차등은 뒤의 백업이 앞의 변경을 품고 있어, 가장 최근 하나로 끝납니다.