9장 백업과 복구 #68
Replies: 3 comments
-
백업지속성과 성능이 양립하는 구조
백업과 복구PITR(Pointin-time Recovery)
백업의 3가지 관점
|
Beta Was this translation helpful? Give feedback.
-
백업과 복구
백업과 복구일반적인 dbms에서는 데이터베이스에 실행된 갱신을 기록한 로그를 보존해서 이를 복원한 데이터베이스에 순차 반영함으로써 백업 이후의 임의의 시점으로 복원할 수 있음. 이처럼 임의의 시점에서의 데이터 변경을 포함한 복원을 PITR(Point In Time Recovery)라 한다 아카이브 지정wal을 크래시 복구에만 이용한다면 체크포인트 이전의 로그는 불필요하고 이를 삭제하거나 재이용할 수 있음. 그러나 이 경우 pitr을 수행하고 싶을 때 로그가 없는 경우 발생. 따라서 pitr용으로 불필요 로그를 보존하는 것을 “아카이브 지정”이라 함 백업의 3가지 관점장애 시 대응을 위해 데이터베이스가 정상적일 때 복제해서 어딘가 다른 장소에 옮겨 두는데, 이를 백업 데이터라 함. 백업은 3가지 관점이 있음
핫 백업과 콜드 백업백업 시 데이터베이스의 상태에 따라 구분한 것이다. 핫 백업은 “온라인 백업”이라고도 하며 백업 대상의 데이터베이스를 정지하지 않고 가동한채로 백업 데이터를 얻는다. 콜드 백업은 “오프라인 백업”이라고도 불리며 백업 대상의 데이터베이스를 정지한 후 백업 데이터를 얻는다
논리 백업과 물리 백업백업 데이터를 형식에 따라 구분한 것 논리 백업은 sql 기반의 텍스트 형식으로 기록되고, 물리 백업은 데이터 영역을 그대로 덤프하는 이미지로 바이너리 형식으로 기록됨. 장단점은 다음과 같음
풀 백업과 부분 백업백업 대상과 이에 따른 데이터의 양을 중심으로 구분한 것. 풀 백업은 데이터베이스 전체를 매일 백업하는 것이고, 부분 백업은 풀 백업 이후 갱신된 데이터를 백업하는 것. 장단점은 아래와 같음
부분 백업의 2가지 방법풀 백업 이후 갱신된 데이터를 백업하는 차등 백업과, 백업의 종류 상관없이 이후 갱신 데이터를 백업하는 증분 백업이 있다. 증분 백업은 데이터의 양이 차등 백업보다 적지만, 복원시 모든 증분 백업을 차례로 적용해야 해서 절차가 복잡함. 차등 백업은 풀 백업 이후 갱신된 데이터 모두를 백업하고, 증분 백업은 처음에 풀 백업을 한 후 그 이후는 전일로부터 증분된 데이터만 백업 함. 롤 포워드 리커버리mysql은 wal을 출력할 수 있으므로 바이너리 로그를 증분 백업으로 보존하고, 이를 사용해 풀 백업 시점 이후 임의 시점까지 복원하는 것이 가능함. 이를 “롤 포워드 리커버리”라 한다.
위와 같은 형태로 현재 데이터베이스를 표현할 수 있고, 이 의미는 풀 백업과 증분 백업으로 현재 데이터베이스를 복구할 수 있는 것을 의미함 데이터베이스 관리 주의점백업 파일은 떨어진 곳에 각각 보관해야 함. 전체를 하나로 관리하면 파손 시 백업 데이터와 사용 중인 데이터베이스를 동시에 잃어버림 장애 대비 방법을 선택할 때, 24시간 가동해야 하는 조건이 있으면 핫 백업을, VLDB(매우 큰 db)를 운용한다면 논리 백업은 시간이 많이 걸리니 물리 백업을, 갱신 범위가 매우 한정되어 있다면 차등 백업을, 데이터베이스를 운용하지 않는 시간이 존재한다면 db를 정지하고 콜드 백업을 사용할 수도 있다. |
Beta Was this translation helpful? Give feedback.
-
|
https://hudi.blog/mysql-pit-recover/ |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
9장 백업과 복구
지속성과 성능이 양립하는 구조
DBMS의 3가지 구조
동기화 쓰기의 작동 방식은 다음과 같다.
장점
로그 선행 쓰기(Wirte Ahead Log: WAL)
동작 방식
장점
데이터베이스버퍼
MySQL의 갱신 흐름
크래시 복구
크래시(DBMS 서버의 비정상적인 종료) 발생시 3가지 파일의 상태
크래시 이후에 서버를 재시동하면 WAL의 정보와 데이터베이스 파일의 정보를 이용해 크래시 때까지 커밋된 최신 상태로 데이터베이스 파일을 수정한다. 이를 롤 포워드라 한다.
백업과 복구
앞선 크래시 복구가 설계된 것은 놀랍지만 논리적인 파괴와 물리적인 파괴를 모두 대응할 수 있는 것이 아니기 때문에 지속적인 백업이 필요하다.
PITR
일반적인 DBMS에서는 데이터 갱신을 기록한 로그를 보존해서 이를 복원한 데이터베이스에 순차적으로 반영하여 임의의 시점의 데이터 상태 유지를 할 수 있는데 이를 PITR(Point-In-Time-Recovery)라고 한다.
부분 백업의 2가지 방식
Beta Was this translation helpful? Give feedback.
All reactions