다음 섹션에서는 복제를 위해 AlloyDB Omni 기본 서버를 구성하고, 복제본 서버를 구성하고, 기본 서버에서 복제 상태를 확인하는 단계를 설명합니다.
자세한 내용은 Kubernetes에 AlloyDB Omni 설치를 참고하세요.
복제를 위해 기본 서버 구성
- 기본 서버의 Postgres 포트를 통해 복제본 서버의 호스트에서 수신 트래픽을 허용하도록 기본 서버 호스트의 네트워크 또는 방화벽 설정을 업데이트합니다. 
- 복제 사용자를 만듭니다. - docker exec CONTAINER_NAME psql -h localhost -U postgres -c "create user REPLICA_USER with replication password 'PASSWORD'"- 다음을 바꿉니다. - REPLICA_USER: 복제본 사용자의 이름입니다.
- PASSWORD: 복제본 사용자의 비밀번호입니다.
- CONTAINER_NAME: AlloyDB Omni를 설치할 때 할당한 이름입니다.
 
- 파일에 있는 - host all all all scram-sha-256앞에- /DATA_DIR/pg_hba.conf파일에 다음 줄을 추가합니다.- host alloydbmetadata alloydbmetadata IP_RANGE trust host replication REPLICA_USER IP_RANGE scram-sha-256- 다음을 바꿉니다. - IP_RANGE: 복제본 머신이 있는 서브넷의 CIDR 표기법으로 표시된 IP 범위입니다. 예를 들면- 203.0.113.0/24입니다.
- DATA_DIR: 이 복제본이 데이터 디렉터리에 사용할 파일 시스템 경로입니다.
 
- 기본 서버를 다시 시작합니다. - docker restart CONTAINER_NAME
복제본 서버 만들기 및 구성
AlloyDB Omni 복제본 서버를 만들고 구성하려면 다음 단계를 완료하세요.
- 복제본이 기본 서버에 네트워크로 연결되어 있는지 확인합니다. - ping SOURCE_IP- SOURCE_IP를 복제할 기본 AlloyDB Omni 인스턴스의 IP 주소로 바꿉니다.
- 복제본이 기본 서버에 연결할 수 있는지 확인합니다. - docker run -it --rm google/alloydbomni psql "host=SOURCE_IP user=REPLICA_USER replication=1" -c "IDENTIFY_SYSTEM;"- 출력은 다음과 비슷하게 표시됩니다. - systemid | timeline | xlogpos | dbname ---------------------+----------+-----------+-------- 7376500460465963036 | 1 | 0/454B670 | (1 row)
- 복제본에는 디스크에 영구 스토리지 위치가 있어야 합니다. - mkdir alloydb && docker run --rm -it \ -e PGDATA=/var/lib/postgresql/data/pgdata \ -v "$PWD/alloydb":/var/lib/postgresql/data \ -p 5432:5432 \ --user $(id -u):$(id -g) \ google/alloydbomni \ /usr/lib/postgresql/15/bin/pg_basebackup \ --pgdata=/var/lib/postgresql/data/pgdata \ --checkpoint=fast \ --host="SOURCE_IP" \ --port="SOURCE_PORT" \ --username=REPLICA_USER \ --create-slot \ --write-recovery-conf \ --slot="SLOT_NAME"- 다음을 바꿉니다. - SOURCE_PORT: 복제할 기본 AlloyDB Omni 인스턴스의 TCP 포트입니다. 이 값을 제공하지 않으면 AlloyDB Omni에서 기본값- 5432을 적용합니다.
- SLOT_NAME: 복제 슬롯 이름의 라벨입니다.
 
- 복제본 인스턴스를 시작합니다. - docker run --detach \ --name pg-service \ -e POSTGRES_PASSWORD=a \ -e PGDATA=/var/lib/postgresql/data/pgdata \ -v "$PWD/alloydb":/var/lib/postgresql/data \ -v /dev/shm:/dev/shm \ -p 5432:5432 \ --user $(id -u):$(id -g) \ google/alloydbomni
기본 서버에서 복제 상태 확인
복제가 올바르게 구성되었는지 확인하려면 기본 서버의 호스트에서 다음 명령어를 실행합니다.
  docker exec -it CONTAINER_NAME psql -h localhost -U postgres -c "select * from pg_stat_replication"출력 테이블에는 기본 데이터베이스 서버에 연결된 모든 복제본에 대한 행이 하나씩 포함됩니다.
복제를 설정하면 기본 데이터베이스 서버의 행에 대한 모든 삽입, 업데이트, 삭제가 몇 초 내에 복제본에서 읽을 수 있게 됩니다.