모니터링 및 메트릭
Managed Postgres 인스턴스의 메트릭은 어떻게 확인하나요?
상세한 쿼리 분석을 위한 Query Performance Insights는 곧 제공될 예정입니다.
백업 및 복구
사용 가능한 백업 옵션은 무엇입니까?
인프라 및 자동화
Managed Postgres에서 Terraform을 지원하나요?
확장 기능 및 구성
어떤 확장 기능을 지원하나요?
PostgreSQL 구성 매개변수를 사용자 지정할 수 있나요?
연결 풀링
PgBouncer를 통해 prepared statement does not exist 오류가 발생하는 이유는 무엇입니까?
PREPARE(또는 확장 쿼리 Parse)를 실행한 특정 백엔드에 연결되어 있기 때문입니다. 해당 Execute가 다른 백엔드로 전달되면 다음과 같은 오류가 발생합니다:
- 특히 backfill이나 동시성이 높은 쓰기 작업 중에
prepared statement does not exist오류가 급증합니다 - “조용히 실패하는” 것처럼 보이는 삽입 — SQL 문에서 오류가 발생하고 드라이버가 재시도하면서, Batch가 일부만 적용되거나 아예 누락될 수 있습니다
- 유형이 잘못된 반환 값(예:
BIGINT컬럼이float64비트 패턴으로 디코딩됨) — 캐시된 클라이언트 측 계획이, 해당Parse를 전송받은 적이 없는 백엔드에 오래된 유형/포맷 코드를 재사용할 때 발생합니다
| 드라이버 | 설정 |
|---|---|
| pgx (Go) | statement_cache_capacity=0 and default_query_exec_mode=exec (or simple_protocol) |
| psycopg3 (Python) | prepare_threshold=None |
| asyncpg (Python) | statement_cache_size=0 |
| JDBC (Java) | prepareThreshold=0 |
| node-postgres / pg (Node.js) | query()에 name을 전달하지 마십시오 (name이 지정된 쿼리는 서버 측 prepared statement가 됩니다) |
PgBouncer의 “max_client_conn” 설정은 무엇을 의미하며, Postgres의 max_connections와는 어떤 관련이 있습니까?
- **Postgres
max_connections**는 PostgreSQL 자체의 백엔드(backend) 연결 수 상한을 정합니다. 이 값은 비용이 큰 편입니다. 각 백엔드는 메모리와 프로세스 슬롯을 사용합니다. - **PgBouncer
max_client_conn**는 풀러에 동시에 열 수 있는 클라이언트(client) 연결 수 상한을 정합니다. PgBouncer는 이렇게 많은 클라이언트 연결을 훨씬 더 적은 수의 백엔드 연결에 다중화합니다.
default_pool_size)에 걸렸을 가능성이 훨씬 높습니다.
데이터베이스 기능
여러 데이터베이스와 스키마를 생성할 수 있습니까?
역할 기반 접근 제어(RBAC)를 지원하나요?
Console 통합이 포함된 향상된 RBAC 기능은 올해 중 제공될 예정입니다.
업그레이드
PostgreSQL 버전 업그레이드는 어떻게 처리되나요?
마이그레이션
Managed Postgres로 마이그레이션할 때 사용할 수 있는 도구는 무엇인가요?
- pg_dump and pg_restore: 소규모 데이터베이스 또는 일회성 마이그레이션에 적합합니다. pg_dump and pg_restore 가이드를 참조하세요.
- Logical replication: 다운타임을 최소화해야 하는 대규모 데이터베이스에 적합합니다. 논리적 복제 가이드를 참조하세요.
- PeerDB: 다른 Postgres 소스의 CDC 기반 복제에 적합합니다. PeerDB migration 가이드를 참조하세요.
완전 관리형 마이그레이션 환경이 곧 제공될 예정입니다.