RDS for PostgreSQL DB 인스턴스에 파라미터로 작업
일부 경우, 사용자 정의 파라미터 그룹을 지정하지 않고 RDS for PostgreSQL DB 인스턴스를 생성할 수 있습니다. 이 경우 선택한 PostgreSQL 버전에 대한 기본 파라미터 그룹을 사용하여 DB 인스턴스가 생성됩니다. 예를 들어, PostgreSQL 13.3을 사용하여 RDS for PostgreSQL DB 인스턴스를 생성한다고 가정해 보겠습니다. 이 경우 DB 인스턴스는 PostgreSQL 13 릴리스용 파라미터 그룹(default.postgres13
)의 값을 사용하여 생성됩니다.
사용자 지정 DB 파라미터 그룹을 생성할 수도 있습니다. RDS for PostgreSQL DB 인스턴스용 설정을 기본값에서 수정하려면 이 작업을 수행해야 합니다. 자세한 방법은 Amazon RDS의 파라미터 그룹(을)를 참조하세요.
RDS for PostgreSQL DB 인스턴스에서 설정을 여러 가지 방법으로 추적할 수 있습니다. AWS Management Console, AWS CLI 또는 Amazon RDS API를 사용할 수 있습니다. 다음과 같이 인스턴스의 PostgreSQL pg_settings
테이블에서 값을 쿼리할 수도 있습니다.
SELECT name, setting, boot_val, reset_val, unit FROM pg_settings ORDER BY name;
이 쿼리에서 반환된 값에 대한 자세한 내용은 PostgreSQL 설명서의 pg_settings
RDS for PostgreSQL DB 인스턴스에서 max_connections
및 shared_buffers
에 대한 설정을 변경할 때 특히 주의해야 합니다. 예를 들어 max_connections
또는 shared_buffers
에 대한 설정을 수정해서 실제 워크로드에 비해 너무 높은 값을 사용한다고 가정하겠습니다. 이 경우 RDS for PostgreSQL DB 인스턴스는 시작되지 않습니다. 이 경우 postgres.log
에 다음과 같은 오류가 기록됩니다.
2018-09-18 21:13:15 UTC::@:[8097]:FATAL: could not map anonymous shared memory: Cannot allocate memory
2018-09-18 21:13:15 UTC::@:[8097]:HINT: This error usually means that PostgreSQL's request for a shared memory segment
exceeded available memory or swap space. To reduce the request size (currently 3514134274048 bytes), reduce
PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
그러나 PostgreSQL DB 파라미터 그룹의 기본 RDS에 포함된 설정 값은 변경할 수 없습니다. 파라미터에 대한 설정을 변경하려면 먼저 사용자 지정 DB 파라미터 그룹을 생성합니다. 그런 다음 해당 사용자 정의 그룹의 설정을 변경한 다음 사용자 정의 파라미터 그룹을 RDS for PostgreSQL DB 인스턴스에 적용합니다. 자세한 내용은 Amazon RDS의 파라미터 그룹을 참조하십시오.
RDS for PostgreSQL에는 두 가지 유형의 파라미터가 있습니다.
정적 파라미터 - 정적 파라미터를 사용하려면 변경 후 RDS for PostgreSQL DB 인스턴스를 재부팅해야 새 값이 적용됩니다.
동적 파라미터 - 동적 파라미터는 설정을 변경한 후 재부팅할 필요가 없습니다.
참고
RDS for PostgreSQL DB 인스턴스가 자체 사용자 정의 DB 파라미터 그룹을 사용하는 경우, 실행 중인 DB 인스턴스에서 동적 파라미터 값을 변경할 수 있습니다. AWS Management Console, AWS CLI 또는 Amazon RDS API를 사용하여 이 작업을 수행할 수 있습니다.
권한이 있는 경우 ALTER
DATABASE
, ALTER ROLE
및 SET
명령을 사용하여 파라미터 값을 변경할 수도 있습니다.
RDS for PostgreSQL DB 인스턴스 파라미터 목록
다음 표에는 RDS for PostgreSQL DB 인스턴스에서 사용할 수 있는 일부 파라미터가 나와 있습니다. 사용 가능한 모든 파라미터를 보려면 describe-db-parameters AWS CLI 명령을 사용하세요. 예를 들어 RDS for PostgreSQL 버전 13의 기본 파라미터 그룹에서 사용할 수 있는 모든 파라미터 목록을 가져오려면 다음을 실행합니다.
aws rds describe-db-parameters --db-parameter-group-name default.postgres13
콘솔을 사용할 수도 있습니다. Amazon RDS 메뉴에서 파라미터 그룹을 선택한 다음 AWS 리전에서 사용 가능한 파라미터 그룹 중에서 파라미터 그룹을 선택합니다.
파라미터 이름 |
적용 유형 |
설명 |
---|---|---|
|
동적 | 애플리케이션 이름이 통계 및 로그에 표시되도록 설정합니다. |
|
동적 | WAL 파일을 보관하기 위해 호출할 셸 명령을 설정합니다. |
|
동적 | 어레이의 NULL 요소 입력을 활성화합니다. |
|
동적 | 클라이언트 인증 완료를 위한 최대 허용 시간을 설정합니다. |
|
동적 | autovacuum 서브프로세스를 시작합니다. |
|
동적 | 분석 전 삽입, 업데이트 또는 삭제되는 튜플 수를 reltuples 분수 값으로 지정합니다. |
|
동적 | 분석 전 삽입, 업데이트 또는 삭제되는 튜플의 최소 수를 지정합니다. |
|
정적 | 트랜잭션 ID 랩어라운드를 방지하기 위한 테이블의 autovacuum 기간을 지정합니다. |
|
동적 | autovacuum 실행 간 절전 시간을 지정합니다. |
|
정적 | autovacuum 작업자 프로세스를 동시에 실행할 수 있는 최대 수를 설정합니다. |
|
동적 | autovacuum에서 vacuum 코스트 지연 시간(밀리초)을 지정합니다. |
|
동적 | autovacuum에서 지연 시간 이전에 이용 가능한 vacuum 코스트 값을 지정합니다. |
|
동적 | vacuum 전 업데이트 또는 삭제되는 튜플 수를 reltuples 분수 값으로 지정합니다. |
|
동적 | vacuum 전 업데이트 또는 삭제되는 튜플의 최소 수를 지정합니다. |
|
동적 | 문자열 리터럴에서 백슬래시(\)의 허용 여부를 설정합니다. |
|
동적 | 라운드 사이에 백그라운드 라이터의 절전 시간을 지정합니다. |
|
동적 | 백그라운드 라이터가 라운드마다 LRU 페이지를 작성할 최대 수를 지정합니다. |
|
동적 | 라운드마다 해제할 평균 버퍼 사용량의 배수를 지정합니다. |
|
동적 | 바이트의 출력 형식을 설정합니다. |
|
동적 | CREATE FUNCTION 도중 함수 본문을 검사합니다. |
|
동적 | 체크포인트 도중 변경된 버퍼 플러시에 사용된 시간으로 체크포인트 간격의 분수 값입니다. |
|
동적 | 로그 세그먼트에서 자동 write-ahead log(WAL) 체크포인트의 최대 간격을 설정합니다. |
|
동적 | 자동 WAL 체크포인트 사이의 최대 시간을 설정합니다. |
|
동적 | 체크포인트 세그먼트가 이 파라미터 값보다 더 빨리 채워지는 경우 경고를 활성화합니다. |
|
동적 | 쿼리를 실행하는 동안 연결 끊김 검사 사이의 시간 간격을 설정합니다. |
|
동적 | 클라이언트 문자 세트 인코딩을 설정합니다. |
|
동적 | 클라이언트에게 보여지는 메시지 수준을 설정합니다. |
|
동적 | 트랜잭션 커밋부터 디스크에 대한 WAL 플러시까지 지연 시간(밀리초)을 설정합니다. |
|
동적 | commit_delay 실행 전에 동시에 열려 있는 트랜잭션 최소 개수를 설정합니다. |
|
동적 | planner가 제약 조건을 사용하여 쿼리를 최적화하도록 활성화합니다. |
|
동적 | 인덱스 스캔 중 각 인덱스 항목을 처리하는 데 따른 planner의 예상 코스트를 설정합니다. |
|
동적 | 각 연산자 또는 함수 호출을 처리하는 데 따른 planner의 예상 코스트를 설정합니다. |
|
동적 | 각 튜플(행)을 처리하는 데 따른 planner의 예상 코스트를 설정합니다. |
|
동적 | planner가 예상하는 검색할 커서 행의 분수 값을 설정합니다. |
|
동적 | 날짜와 시간 값에 대한 표시 형식을 설정합니다. |
|
동적 | 교착 상태 여부를 확인하기 이전 잠금 대기 시간을 설정합니다. |
|
동적 | 구문과 실행 계획 트리를 들여쓰기 하여 표시합니다. |
|
동적 | 각 쿼리의 구문 분석 트리를 기록합니다. |
|
동적 | 각 쿼리의 실행 계획을 기록합니다. |
|
동적 | 각 쿼리에서 재작성된 구문 분석 트리를 기록합니다. |
|
동적 | 기본 통계 대상을 설정합니다. |
|
동적 | 테이블과 인덱스를 생성할 기본 테이블스페이스를 설정합니다. |
|
동적 | 새로운 트랜잭션의 기본 deferrable 상태를 설정합니다. |
|
동적 | 새로운 트랜잭션마다 트랜잭션 격리 수준을 설정합니다. |
|
동적 | 새로운 트랜잭션의 기본 읽기 전용 상태를 설정합니다. |
|
동적 | 새로운 테이블을 생성할 때 객체 ID(OID)가 기본적으로 포함됩니다. |
|
동적 | 디스크 캐시 크기에 대한 planner의 가정을 설정합니다. |
|
동적 | 디스크 하위 시스템에서 효율적으로 동시에 처리할 수 있는 요청 수를 지정합니다. |
|
동적 | planner가 비트맵 스캔 계획을 사용할 수 있도록 활성화합니다. |
|
동적 | planner가 해시된 집계 계획을 사용할 수 있도록 활성화합니다. |
|
동적 | planner가 해시 조인 계획을 사용할 수 있도록 활성화합니다. |
|
동적 | planner가 인덱스 스캔 계획을 사용할 수 있도록 활성화합니다. |
|
동적 | planner가 구체화를 사용할 수 있도록 활성화합니다. |
|
동적 | planner가 병합 조인 계획을 사용할 수 있도록 활성화합니다. |
|
동적 | planner가 중첩 루프 조인 계획을 사용할 수 있도록 활성화합니다. |
|
동적 | planner가 순차적 스캔 계획을 사용할 수 있도록 활성화합니다. |
|
동적 | planner가 명시적 정렬 단계를 사용할 수 있도록 활성화합니다. |
|
동적 | planner가 TID 스캔 계획을 사용할 수 있도록 활성화합니다. |
|
동적 | 일반 문자열 리터럴의 백슬래시(\) 이스케이프에 대해 경고합니다. |
|
동적 | 부동 소수점으로 표시할 자릿수를 설정합니다. |
|
동적 | 서브 쿼리가 축소되지 않는 FROM 목록 크기를 설정합니다. |
|
동적 | 업데이트를 디스크와 강제로 동기화합니다. |
|
동적 | 체크포인트 후 최초 변경 시 전체 페이지를 WAL에 기입합니다. |
|
동적 | 유전적 쿼리 최적화를 활성화합니다. |
|
동적 | GEQO: 다른 GEQO 파라미터의 기본값을 설정하는 데 사용됩니다. |
|
동적 | GEQO: 알고리즘의 반복 횟수입니다. |
|
동적 | GEQO: 모집단의 개체 수입니다. |
|
동적 | GEQO: 무작위 경로 선택을 위한 시드(seed)를 지정합니다. |
|
동적 | GEQO: 모집단 내 선택적 압력을 지정합니다. |
|
동적 | GEQO가 사용되는 FROM 항목의 임계값을 설정합니다. |
|
동적 | 정확한 GIN 기준 검색에 허용되는 최대 결과 수를 설정합니다. |
|
동적 | 핫 스탠바이가 피드백 메시지를 기본 또는 업스트림 스탠바이로 전송하는지 여부를 결정합니다. |
|
동적 | 간격 값에 대한 표시 형식을 설정합니다. |
|
동적 | JOIN 구문이 결합되지 않는 FROM 목록 크기를 설정합니다. |
|
동적 | 메시지 표시 언어를 설정합니다. |
|
동적 | 통화 금액의 형식으로 사용할 로캘을 설정합니다. |
|
동적 | 숫자의 형식으로 사용할 로캘을 설정합니다. |
|
동적 | 날짜와 시간 값의 형식으로 사용할 로캘을 설정합니다. |
|
동적 | autovacuum 작업이 기록되는 최소 실행 시간을 설정합니다. |
|
동적 | 각 체크포인트를 기록합니다. |
|
동적 | 성공한 연결을 모두 기록합니다. |
|
동적 | 지속 시간을 포함해 세션 종료를 기록합니다. |
|
동적 | 완료된 개별 SQL 문의 지속 시간을 기록합니다. |
|
동적 | 기록된 메시지의 세부 사항을 설정합니다. |
|
동적 | 실행기 성능 통계를 서버 로그에 기록합니다. |
|
동적 | 로그 파일의 이름 패턴을 설정합니다. |
|
동적 | 로그 파일에 대한 파일 권한을 설정합니다. 기본값은 0644입니다. |
|
동적 | 연결 로그에 호스트 이름을 기록합니다. PostgreSQL 12 이상 버전에서는 이 파라미터가 기본적으로 '해제' 상태입니다. 이 파라미터를 켜면 연결은 DNS 역방향 조회를 사용하여 연결 로그에 캡처되는 호스트 이름을 가져옵니다. 이 파라미터를 켰다면, 연결을 설정하는 데 걸리는 시간이 달라지는지 모니터링해야 합니다. |
|
동적 | 각 로그 행에 접두사가 붙은 정보를 제어합니다. |
|
동적 | 오랜 잠금 대기 시간을 기록합니다. |
|
동적 | 문이 기록되는 최소 실행 시간을 설정합니다. |
|
동적 | 이 수준 이상으로 오류 원인이 되는 모든 문을 기록합니다. |
|
동적 | 기록되는 메시지 수준을 설정합니다. |
|
동적 | 구문 분석기 성능 통계를 서버 로그에 기록합니다. |
|
동적 | planner 성능 통계를 서버 로그에 기록합니다. |
|
동적 | N분 후에 자동 로그 파일 로테이션이 일어납니다. |
|
동적 | N킬로바이트 후에 자동 로그 파일 로테이션이 일어납니다. |
|
동적 | 기록할 문 유형을 설정합니다. |
|
동적 | 누적 성능 통계를 서버 로그에 기록합니다. |
|
동적 | 이 킬로바이트 수치보다 큰 임시 파일의 사용을 기록합니다. |
|
동적 | 로그 메시지에 사용할 표준 시간대를 설정합니다. |
|
동적 | 로그 순환 중에 동일한 이름의 기존 로그 파일을 잘라냅니다. |
|
정적 | 하위 프로세스를 시작하여 stderr 출력 및/또는 csvlog를 로그 파일로 캡처합니다. |
|
동적 | 유지 관리 작업에 사용할 최대 메모리를 설정합니다. |
|
정적 | 동시에 접속할 수 있는 최대 수를 설정합니다. |
|
정적 | 서버 프로세스마다 파일을 동시에 열 수 있는 최대 수를 설정합니다. |
|
정적 | 하나의 트랜잭션에서 사용할 수 있는 최대 잠금 횟수를 설정합니다. |
|
정적 | 하나의 트랜잭션에서 사용할 수 있는 최대 술어(predicate) 잠금 횟수를 설정합니다. |
|
정적 | 트랜잭션을 동시에 준비할 수 있는 최대 수를 설정합니다. |
|
동적 | 최대 스택 깊이(KB)를 설정합니다. |
|
동적 | 핫 스탠바이 서버가 아카이브 WAL 데이터를 처리할 때 쿼리 취소까지 걸리는 최대 지연 시간을 설정합니다. |
|
동적 | 핫 스탠바이 서버가 스트리밍 WAL 데이터를 처리할 때 쿼리 취소까지 걸리는 최대 지연 시간을 설정합니다. |
max_wal_size |
동적 | 검사 점을 트리거하는 WAL 크기(MB)를 설정합니다. 모든 RDS for PostgreSQL 10 이후 버전에서는 기본값이 최소 1GB(1024MB)입니다. 예를 들어 RDS for PostgreSQL 14의 max_wal_size 설정은 2GB(2048MB)입니다. RDS for PostgreSQL DB 인스턴스에서 SHOW max_wal_size; 명령을 사용하여 관련 현재 값을 확인합니다. |
min_wal_size |
동적 | WAL을 축소할 최소 크기를 설정합니다. PostgreSQL 버전 9.6 이하의 경우 min_wal_size 는 16MB 단위입니다. PostgreSQL 버전 10 이상의 경우 min_wal_size 는 1MB 단위입니다. |
|
동적 | SQL 조각 생성 시 모든 식별자에 인용 부호(")를 추가합니다. |
|
동적 | 비순차적으로 가져온 디스크 페이지에 대한 planner의 예상 코스트를 설정합니다. 이 파라미터는 쿼리 계획 관리(QPM)가 켜져 있지 않으면 값이 없습니다. QPM이 켜져 있으면 이 파라미터의 기본값은 4 입니다. |
rds.adaptive_autovacuum |
동적 | 트랜잭션 ID 임계값이 초과될 때마다 autovacuum 파라미터를 자동으로 조정합니다. |
rds.force_ssl |
동적 | SSL 연결을 사용해야 합니다. RDS for PostgreSQL 버전 15의 기본값은 1(켜짐)로 설정되어 있습니다. 다른 모든 RDS for PostgreSQL 메이저 버전 14 이상에는 기본값이 0(꺼짐)로 설정되어 있습니다. |
|
정적 | 로컬 볼륨에 논리적 유출 파일 쓰기를 활성화합니다. |
|
동적 | Amazon RDS가 n분보다 오래된 PostgreSQL 로그를 삭제하도록 로그 보존을 설정합니다. |
rds.rds_superuser_reserved_connections |
정적 | rds_superuser용으로 예약된 연결 슬롯 수를 설정합니다. 이 파라미터는 버전 15 이상에서만 사용할 수 있습니다. 자세한 내용은 reserved_connections |
rds.restrict_password_commands |
정적 | 암호를 관리할 수 있는 사람을 rds_password 역할이 있는 사용자로 제한합니다. 암호 제한을 활성화하려면 이 파라미터를 1로 설정합니다. 기본값은 0입니다. |
|
동적 | 스키마로 한정되지 않은 이름의 스키마 검색 순서를 설정합니다. |
|
동적 | 순차적으로 가져온 디스크 페이지에 대한 planner의 예상 코스트를 설정합니다. |
|
동적 | 트리거 및 다시 쓰기 규칙에 대한 세션 동작을 설정합니다. |
|
정적 | 서버에서 사용할 공유 메모리 버퍼의 수를 설정합니다. |
|
정적 | RDS for PostgreSQL DB 인스턴스에 미리 로드할 공유 라이브러리를 나열합니다. 지원되는 값으로는 auto_explain, orafce, pgaudit, pglogical, pg_bigm, pg_cron, pg_hint_plan, pg_prewarm, pg_similarity, pg_stat_statements, pg_tle, pg_transport, plprofiler, plrust가 있습니다. |
|
동적 | SSL 연결을 활성화합니다. |
|
동적 | 다양한 명령에서 서브테이블이 기본적으로 상속됩니다. |
|
동적 | 암호화 키를 재협상하기 전에 전송 및 수신할 트래픽 양을 설정합니다. |
|
동적 | ... 문자열에서 백슬래시가 리터럴로 처리됩니다. |
|
동적 | 모든 문에 허용되는 최대 지속 시간을 설정합니다. |
|
동적 | 동기 방식의 순차적 스캔을 활성화합니다. |
|
동적 | 현재 트랜잭션 동기화 수준을 설정합니다. |
|
동적 | TCP keepalive의 최대 재전송 횟수를 지정합니다. |
|
동적 | TCP keepalive의 실행 주기를 지정합니다. |
|
동적 | TCP keepalive의 재전송 주기를 지정합니다. |
|
동적 | 각 세션에서 사용하는 임시 버퍼의 최대 수를 설정합니다. |
temp_file_limit |
동적 | 임시 파일이 증가할 수 있는 최대 크기(KB)를 설정합니다. |
|
동적 | 임시 테이블 및 정렬 파일에 사용할 테이블스페이스를 설정합니다. |
|
동적 | 타임스탬프를 표시 및 해석할 시간대를 설정합니다. IANA(Internet Assigned Numbers Authority)에서는 https://www.iana.org/time-zones |
|
동적 | 명령 실행에 대한 정보를 수집합니다. |
|
정적 | pg_stat_activity.current_query에 예약되는 크기(바이트)를 설정합니다. |
|
동적 | 데이터베이스 작업에 관한 통계를 수집합니다. |
|
동적 | 데이터베이스 작업에 관한 함수 수준 통계를 수집합니다. |
|
동적 | 데이터베이스 I/O 작업에 관한 시간 통계를 수집합니다. |
|
동적 | 잠재적 직렬화 오류 없이 시작될 때까지 직렬화가 가능한 읽기 전용 트랜잭션의 지연 여부를 결정합니다. |
|
동적 | 현재 트랜잭션 격리 수준을 설정합니다. |
|
동적 | 현재 트랜잭션의 읽기 전용 상태를 설정합니다. |
|
동적 | expr=NULL을 expr IS NULL로 처리합니다. |
|
동적 | 프로세스 제목을 업데이트하여 활성 SQL 명령을 표시합니다. |
|
동적 | vacuum 코스트 지연 시간(밀리초)을 지정합니다. |
|
동적 | 지연 시간 이전에 이용 가능한 vacuum 코스트 값을 지정합니다. |
|
동적 | vacuum으로 페이지 변경 시 부과되는 vacuum 코스트를 지정합니다. |
|
동적 | 버퍼 캐시에서 발견되는 페이지에 대한 vacuum 코스트를 지정합니다. |
|
동적 | 버퍼 캐시에서 발견되지 않는 페이지에 대한 vacuum 코스트를 지정합니다. |
|
동적 | vacuum 및 hot cleanup을 연기해야 하는 트랜잭션 수를 지정합니다(있는 경우). |
|
동적 | vacuum에서 테이블 행을 동결해야 하는 최소 기간을 지정합니다. |
|
동적 | vacuum에서 전체 테이블을 스캔하여 튜플을 동결해야 하는 기간을 지정합니다. |
|
정적 | WAL 기능을 위해 공유 메모리에서 사용할 디스크 페이지 버퍼 수를 설정합니다. |
|
동적 | WAL 플러시 사이에 WAL 작성기의 절전 시간을 지정합니다. |
|
동적 | 쿼리 작업 공간에 사용할 최대 메모리를 설정합니다. |
|
동적 | XML에서 바이너리 값의 인코딩 방식을 설정합니다. |
|
동적 | 암시적 구문 분석 및 직렬화 작업에서 XML 데이터를 문서 또는 내용 조각으로 간주할지 여부를 설정합니다. |
Amazon RDS는 모든 파라미터에서 기본 PostgreSQL 단위를 사용합니다. 다음 표는 각 파라미터의 PostgreSQL 기본 단위를 나타냅니다.
파라미터 이름 |
단위 |
---|---|
| s |
| s |
| s |
| ms |
| ms |
| s |
| s |
| ms |
| 8KB |
| ms |
| ms |
| ms |
| 분 |
| KB |
| KB |
| KB |
| KB |
| ms |
| ms |
| s |
| s |
| 8KB |
| 8KB |
| ms |
| KB |
| s |
| s |
| KB |
| KB |
| 8KB |
| ms |
| 8KB |
| ms |
| B |
| ms |
| ms |
| s |