디스크 공간 관리

이 가이드는 SUSE Manager를 사용하여 mgradm 서버의 온라인 데이터베이스 백업을 관리하는 방법을 설명합니다. 백업 시스템은 PostgreSQL 지속적인 아카이빙 쓰기 선행 로깅(WAL)을 기반으로 하며, 이전 버전의 `smdba`와 유사합니다.

  • 시스템이 완전히 복구될 수 있도록 데이터베이스와 기타 시스템 볼륨의 정기적인 백업을 수행하십시오.

  • 재해 복구를 위해 백업 볼륨과 WAL 파일을 외부 저장 장치나 오프사이트 위치로 정기적으로 복사하십시오.

1. 개요

지속적인 아카이빙은 트랜잭션 로그(WAL)를 전용 볼륨에 지속적으로 백업하여 데이터 손실 위험을 줄입니다.

백업 시스템은 다음을 저장하기 위해 `var-pgsql-walbackup`라는 전용 Podman 볼륨을 사용합니다:

  • 기본 백업(데이터베이스의 전체 스냅샷).

  • WAL 세그먼트(마지막 기본 백업 이후의 증분 변경 사항).

시점 복구는 현재 `mgradm`에서 지원되지 않으며 수동 워크플로가 필요합니다.

mgradm 도구에서는 전체 복구만 지원됩니다. 복원 절차는 백업 위치에서 모든 것을 복원합니다.

2. 전제 조건

  • `mgradm`호스트에 설치된 도구입니다.

  • SUSE Manager Podman 환경에서 실행 중인 서버입니다.

3. 백업 활성화

인증서 파일을 생성하려면 다음 명령을 실행합니다.

mgradm backup db enable

명령 실행:

  • 백업이 이미 활성화되어 있지 않은지 확인합니다.

  • PostgreSQL을(를) 활성화하고 postgresql.conf`을(를) 설정하도록 `archive_mode (archive_command)을(를) 구성합니다.

  • 데이터베이스 서비스를 위해 var-pgsql-walbackup 볼륨을 구성합니다.

  • Spacewalk 서비스를 다시 시작하여 변경 사항을 적용합니다.

  • 컨테이너 내에서 초기 기본 백업을 수행합니다.

백업이 이미 구성되어 있지만 다시 초기화해야 하는 경우 --force 플래그를 사용하십시오.

4. mgradm backup create $path

데이터베이스 백업 시스템의 현재 상태를 언제든지 확인할 수 있습니다:

mgradm backup db status

증명 보고서의 상태는 다음 중 하나일 수 있습니다.

  • 활성화됨: 백업이 올바르게 구성되어 있으며 활성화되어 있습니다.

  • 비활성화됨: 지속적인 아카이빙이 명시적으로 꺼져 있습니다.

  • 잘못 구성됨: 구성과 런타임 상태 간에 불일치가 있습니다(예: 누락된 볼륨, 잘못된 아카이브 명령).

5. 백업 유지(리베이스)

시간이 지남에 따라 WAL 세그먼트의 수가 크게 증가하여 디스크 공간을 소모하고 복원 시간을 늘릴 수 있습니다. 정기적으로 새로운 기본 백업을 생성하고 새로운 WAL 체인을 시작하여 백업을 "리베이스"하는 것이 좋습니다.

mgradm backup db rebase

이 명령은 서비스 재시작 없이 데이터베이스의 새로운 전체 스냅샷을 생성합니다.

복원 작업에 필요한 시간을 최소화하기 위해 명령 `mgradm backup db rebase`을 사용하여 데이터베이스 백업을 정기적으로 리베이스하십시오.

6. 백업에서 복원

백업에서 복원하는 것은 *파괴적인 작업*으로 현재 데이터베이스 데이터를 백업의 내용으로 교체합니다.

mgradm backup db restore

복원 과정:

  • 다음 명령으로 데이터베이스를 시작합니다.

  • 다음의 새 데이터베이스 디렉토리를 마운트합니다.

  • 백업 볼륨에서 기본 백업을 추출합니다.

  • 복구를 위해 PostgreSQL을(를) 구성합니다.

  • 다음 명령으로 데이터베이스를 시작합니다.

  • 데이터베이스를 가능한 최신 상태로 가져오기 위해 WAL 세그먼트를 재생합니다.

명령은 데이터베이스가 완전히 복구되고 연결을 수락할 준비가 될 때까지 기다립니다.

복원을 수행하기 전에 최근의 기본 백업과 모든 필요한 WAL 세그먼트가 var-pgsql-walbackup 볼륨에 있는지 확인하십시오.

7. 백업 비활성화

지속적인 아카이빙을 끄려면:

mgradm backup db disable

기본적으로 이 명령은 구성에서 아카이빙을 비활성화하고 데이터베이스를 재시작하지만 백업 볼륨은 유지합니다.

백업 볼륨과 모든 저장된 백업을 제거하려면 다음을 사용하십시오:

mgradm backup db disable --purge-volume

데이터 무결성을 확인하고 복구를 준비하기 위해 복원 절차를 정기적으로 테스트하십시오.

8. 외부 문서

PostgreSQL에 대한 자세한 내용은 PostgreSQL 16: 지속적인 아카이빙 및 시점 복구(PITR)을 참조하십시오.