이 페이지에서는 오픈소스 데이터베이스 백업 서버인 Barman과 호환되도록 AlloyDB Omni를 구성하여 데이터를 보호하는 방법을 설명합니다.
PostgreSQL과 호환되는 데이터베이스 백업 기술을 사용하여 AlloyDB Omni 데이터를 보호할 수 있습니다. 예를 들어 관리하는 Barman 서버의 연결을 허용하도록 AlloyDB Omni를 구성할 수 있습니다. 이렇게 하면 Barman 서버가 AlloyDB Omni 서버에 저장된 데이터의 지속적인 백업을 실행할 수 있습니다.
Barman과 AlloyDB Omni 서버가 함께 작동하도록 구성한 후에는 Barman 명령어를 실행하여 다음을 비롯한 다양한 데이터 보호 및 재해 복구 작업을 실행할 수 있습니다.
- 데이터의 주문형 백업을 만듭니다.
- 백업 서버에 데이터 변경사항의 동기식 WAL 스트리밍을 설정합니다.
- 특정 백업에서 복원합니다.
- 특정 시점 복원을 실행합니다.
Barman 작동에 관한 자세한 내용은 Barman 매뉴얼을 참고하세요.
시작하기 전에
Barman과 호환되도록 AlloyDB Omni를 구성하려면 다음이 필요합니다.
관리하는 서버에 설치되어 실행 중인 AlloyDB Omni
별도의 서버에 Barman이 설치되었습니다. Barman을 설치한 서버가 TCP를 통해 AlloyDB Omni 서버와 통신할 수 있어야 합니다.
Barman과 호환되도록 AlloyDB Omni 구성
Barman과 함께 작동하도록 AlloyDB Omni 서버를 준비하려면 AlloyDB Omni를 설치한 서버에서 다음 명령어를 실행합니다.
적절한 권한을 가진
barman
데이터베이스 사용자를 만듭니다.Docker
docker exec CONTAINER_NAME psql -h localhost -U postgres -c " CREATE USER barman; GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman; GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman; GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman; GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman; GRANT pg_read_all_settings TO barman; GRANT pg_read_all_stats TO barman; CREATE USER streaming_barman WITH REPLICATION; "
CONTAINER_NAME
을 AlloyDB Omni 컨테이너를 설치할 때 할당한 이름으로 바꿉니다.Podman
podman exec CONTAINER_NAME psql -h localhost -U postgres -c " CREATE USER barman; GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman; GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman; GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman; GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman; GRANT pg_read_all_settings TO barman; GRANT pg_read_all_stats TO barman; CREATE USER streaming_barman WITH REPLICATION; "
CONTAINER_NAME
을 AlloyDB Omni 컨테이너를 설치할 때 할당한 이름으로 바꿉니다.DATA_DIR/pg_hba.conf
파일에서 파일에 있는host all all all scram-sha-256
행 앞에 다음 행을 추가합니다.host all barman BARMAN_IP/32 AUTHN_METHOD host replication streaming_barman BARMAN_IP/32 AUTHN_METHOD
다음을 바꿉니다.
DATA_DIR
: AlloyDB Omni 데이터 디렉터리에 사용되는 파일 시스템 경로입니다.BARMAN_IP
: Barman 서버의 IP 주소입니다.AUTHN_METHOD
: PostgreSQL용 AlloyDB 서버가 Barman 서버에서 기대하는 PostgreSQL 인증 방법입니다. 다음 값 중 하나를 사용하는 것이 좋습니다.Barman 서버가 비밀번호 없이 인증할 수 있도록 하려면
trust
를 사용하세요.Barman 서버에서 비밀번호를 요구하려면
scram-sha-256
를 사용합니다.
DATA_DIR/postgresql.conf
파일에 다음 줄을 추가합니다.archive_command='/bin/true' archive_mode=on listen_addresses='*' wal_level='replica'
AlloyDB Omni 서비스를 다시 시작합니다.
Docker
docker restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
CONTAINER_NAME
을 AlloyDB Omni 컨테이너를 설치할 때 할당한 이름으로 바꿉니다.다음 명령어를 실행하여 필요한 매개변수가 모두 적절하게 설정되었는지 확인합니다.
Docker
docker exec CONTAINER_NAME psql -h localhost -U postgres -c " SELECT name, setting FROM pg_catalog.pg_settings WHERE name IN ('archive_command', 'archive_mode', 'listen_addresses', 'wal_level') ORDER BY name;"
Podman
podman exec CONTAINER_NAME psql -h localhost -U postgres -c " SELECT name, setting FROM pg_catalog.pg_settings WHERE name IN ('archive_command', 'archive_mode', 'listen_addresses', 'wal_level') ORDER BY name;"
출력은 다음과 같습니다.
name | setting ------------------|----------- archive_command | /bin/true archive_mode | on listen_addresses | * wal_level | replica (4 rows)
Barman 백업 서버 설정
AlloyDB Omni 서버에서 작동하도록 Barman을 설정하고 구성하려면 Barman 서버에서 다음 명령어를 실행합니다.
스트리밍 복제 연결이 작동하는지 확인합니다.
psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1
출력은 다음과 비슷합니다.
systemid | timeline | xlogpos | dbname ---------------------+----------+------------+-------- 7265722823667040273 | 1 | 0/1F0AFCD0 | (1 row)
Barman이
barman
데이터베이스 사용자로 AlloyDB Omni 서버에 연결할 수 있는지 확인합니다.psql -t -h DATABASE_IP -U barman -d postgres -c "SELECT 'Connected as: '||current_user"
DATABASE_IP
를 AlloyDB Omni 서버의 IP 주소로 바꿉니다.출력은 다음과 비슷합니다.
Connected as: barman
필요와 환경에 따라 Barman 백업 서버를 구성합니다.
구성에는 다음 설정이 포함되어야 합니다.
barman
사용자로 AlloyDB Omnipostgres
데이터베이스에 연결하도록conninfo
를 설정합니다.streaming_conninfo
를 설정하여streaming_barman
사용자를 사용합니다.- Barman 문서에 설명된 대로 WAL 스트리밍을 사용 설정하는 데 필요한 다른 디렉티브를 구성합니다.
다음의 간단하지만 완전한 예시에서는 Barman 문서의 스트리밍 구성 예시를 수정합니다.
[CONFIGURATION_TAG] description = "Backup settings for my AlloyDB Omni server" conninfo = host=DATABASE_IP user=barman dbname=postgres streaming_conninfo = host=DATABASE_IP user=streaming_barman backup_method = postgres streaming_archiver = on slot_name = barman
다음을 바꿉니다.
CONFIGURATION_TAG
:barman
명령어를 실행할 때 이 서버 구성을 식별하는 짧은 태그입니다(예:omni
).DATABASE_IP
: AlloyDB Omni 서버의 IP 주소입니다.
barman
사용자로 전환합니다.sudo su - barman
barman receive-wal
명령어를 사용하여 복제 슬롯을 만든 다음 데이터베이스 서버에서 WAL 스트림을 수신하기 시작합니다.barman receive-wal --create-slot CONFIGURATION_TAG
barman receive-wal CONFIGURATION_TAG &
CONFIGURATION_TAG
를 이전 단계에서 선택한 구성 태그로 바꿉니다.
이제 Barman이 AlloyDB Omni 서버와 호환되도록 구성되었습니다. 복제 상태를 확인하고, 수동 백업을 만들고, 기타 작업을 실행하려면 일반 명령어를 참고하세요.
예를 들어 수동 백업을 만들려면 barman backup
명령어를 실행합니다.