Skip to content
dev-marco-song
Go back

RDBMS의 백업 및 복구에 대한 연구 - (1) 기본 개념

Edit page

RDBMS의 백업 및 복구에 대한 연구 - (1) 기본 개념

백업이란 무엇인가?

https://www.techopedia.com/definition/1235/relational-database-management-system-rdbms https://www.techopedia.com/definition/24058/backup-and-recovery https://technet.tmaxsoft.com/upload/download/online/tibero/pver-20140808-000002/tibero_admin/ch_BackupRecovery.html#d5e6326 데이터베이스에 문제가 생길 것을 대비하여, DB의 데이터(스키마 및 테이블 등)의 사본을 따로 저장해두는 것

복구란 무엇인가?

DB의 저장해둔 백업 데이터를 이용하여 DB를 원래 상태로 되돌리는 것

참고 - 복원과 복구는 약간 다른 개념이다. 복원은 지정해둔 백업으로 전체 데이터를 되돌리는 것이다. 내가 원해서 하는 것이고, 핸들할 수 있다는 의미가 담겨 있다.

복구는 ‘데이터 손실’이 발생했을 때 백업으로 데이터를 되돌리는 것이다. 뭔가 재해가 생겼을 때 되돌리는 것이며, 모든 데이터의 온전함을 보장할 수는 없다. (손실 정도와 DB 성능에 따라 다르겠지만)

왜 백업 및 복구를 검토하게 되었는가?

게임 DB에는 회원 정보, 게임 캐릭터, 골드, 아이템 등 중요한 정보가 저장된다.

특히 게임 캐릭터, 골드, 아이템 데이터의 경우, 데이터가 손실된다면 유저가 게임을 즐겁게 플레이할 수 없을 것이다.

게임 데이터의 무결성을 보장하기 위해서는, DB에 문제가 발생했을 때, DB의 데이터들과 트랜잭션 기록을 복구해내는 기능이 필요하다.

그래서 DB에서의 백업과 복구 기능을 검토하기로 하였다.

DB의 백업과 복구는 어떻게 이루어지는가?

https://technet.tmaxsoft.com/upload/download/online/tibero/pver-20140808-000002/tibero_admin/ch_BackupRecovery.html#d5e6326 https://dev.mysql.com/doc/mysql-backup-excerpt/5.7/en/backup-types.html

물리적 백업은, DB의 데이터 사본을 파일로 만들어 저장 매체에 저장하는 것이다.

논리적 백업은, 테이블, 인덱스, 시퀀스 등 DB의 논리적 단위를 백업하는 것이다. mysqldump로 import-export 기능을 사용한 케이스가 되겠다.

백업 / 복구 속도는 물리적 백업이 빠르다.  논리적 백업은 파일을 논리 구조로부터 복구해야 되기 때문일까?

-> DB의 논리적 구조, 물리적 구조에 대한 개념 정리 필요(아래에서 정리)

온라인 백업은 핫 백업이라고도 한다. 서버가 뜨거울 때도 백업이 된다는 의미.

아카이브 로그 모드가 켜져 있을 때만 가능하다. (Archive log mode : 리두 로그를 다른 디렉토리에 따로 저장하여, 리두 로그를 보존하는 것, 이것이 켜져있지 않으면 리두 로그를 저장할 공간이 모자라서 리두 로그를 많이 보관할 수 없다.)

오프라인 백업은 콜드 백업이라고도 한다. DB 서비스를 멈추고 백업이 가능하다.

DB의 논리적 구조, 물리적 구조는 무엇인가?

논리적 구조 / 물리적 구조(logical / physical storage structure)라는 용어는 현재 오라클 DB에서만 사용하는 개념임을 확인하였다. (왜 다른 DB에서는 사용하지 않는거지?) -> DB 설계에서도 논리적 설계, 물리적 설계가 있는데 이와 연관되지는 않을까?

우리가 개념적으로 이해하고 있는 DB를 생각해보면 된다. 스키마, 테이블, 인덱스 등  DB를 구성하는 컴포넌트들이 모여서 DB의 논리적인 구조를 이룬다.

DB의 논리적 구조들은, 실제로는 코드로 구현하여 DB를 돌리는 컴퓨터의 저장 매체에 파일로 저장할 것이다. 이렇게 컴퓨터에 DB가 물리적으로 저장되면서 물리적 구조를 이룬다.


Edit page
Share this post on:

Previous Post
RDBMS의 백업 및 복구에 대한 연구 - (2) 백업 및 복구 테스트 준비
Next Post
RDBMS - 인덱스