어떤 이유로든 원본이 손상되거나 손실될 경우를 대비하여 데이터베이스를 백업하는 것이 필수적입니다. 이 백업을 이용하여 데이터베이스를 장애 전 상태로 복구할 수 있습니다.
데이터베이스 백업은 기본적으로 데이터베이스 정보와 데이터의 복제본을 생성하여 백업 서버에 안전하게 보관하는 것을 의미합니다. 트랜잭션 로그도 데이터베이스 데이터와 함께 백업에 저장됩니다. 트랜잭션 로그가 없으면 데이터가 쓸모가 없기 때문입니다.
데이터베이스의 실패 이유
데이터베이스 백업 및 복구 계획이 필요한 데이터베이스 오류에는 여러 가지 이유가 있을 수 있습니다. 이러한 이유 중 일부는 다음과 같습니다.
- 사용자 오류 - 일반적으로 사용자 오류는 데이터베이스의 데이터 파괴 또는 손상의 가장 큰 원인입니다. 오류를 수정하려면 오류가 발생하기 전의 시점으로 데이터베이스를 복원해야 합니다.
- 하드웨어 오류 - 이것은 또한 데이터베이스의 데이터 손실로 이어질 수 있습니다. 데이터베이스는 다양한 위치에 있는 여러 하드 드라이브에 저장됩니다. 이러한 하드 드라이브는 때때로 데이터베이스 손상으로 이어지는 오작동을 일으킬 수 있습니다. 따라서 주기적으로 교체하는 것이 중요합니다.
- 재앙적 사건 - 재난은 홍수나 지진과 같은 자연 재해나 데이터베이스 해킹과 같은 고의적인 방해 행위가 될 수 있습니다. 어느 쪽이든 데이터베이스 데이터가 손상되어 백업이 필요할 수 있습니다.
백업 방법
데이터베이스의 다양한 백업 방법은 다음과 같습니다.
- 전체 백업 - 이 방법은 데이터와 거래 기록을 포함하여 데이터베이스의 전체 복사본이 만들어지기 때문에 많은 시간이 걸립니다.
- 거래 로그 - 이 방법에서는 트랜잭션 로그만 백업으로 저장됩니다. 백업 파일을 최대한 작게 유지하기 위해 새 백업 기록이 생성되면 이전 트랜잭션 로그 세부 정보가 삭제됩니다.
- 차등 백업 - 이는 데이터와 트랜잭션 레코드를 모두 저장한다는 점에서 전체 백업과 유사합니다. 그러나 마지막 전체 백업 이후 변경된 백업에는 해당 정보만 저장됩니다. 이 때문에 차등 백업을 사용하면 파일 크기가 작아집니다.
데이터베이스 복구
데이터베이스 복구에 주로 사용되는 두 가지 방법이 있습니다. 다음과 같습니다.
- 로그 기반 복구 - 로그 기반 복구에서는 모든 데이터베이스 트랜잭션의 로그를 보안 영역에 저장하여 시스템 장애 시 데이터베이스에서 데이터를 복구할 수 있습니다. 트랜잭션이 실행되기 전에 트랜잭션 시간, 데이터 등과 같은 모든 로그 정보를 저장해야 합니다.
- 그림자 페이징 - 섀도우 페이징에서는 트랜잭션이 완료된 후 데이터가 자동으로 저장되어 안전하게 보관됩니다. 따라서 트랜잭션 도중 시스템이 충돌하면 변경 사항이 데이터베이스에 반영되지 않습니다.