데이터베이스 플래그 구성

이 페이지에서는 Cloud SQL에 데이터베이스 플래그를 구성하는 방법을 설명하고 인스턴스에 설정할 수 있는 플래그를 알아봅니다. 데이터베이스 플래그는 PostgreSQL 매개변수 조정, 옵션 조정, 인스턴스 구성 및 조정을 포함한 여러 작업에 사용합니다.

경우에 따라 한 플래그를 설정할 때 원하는 기능을 완전히 활성화하기 위해 다른 플래그를 설정해야 할 수도 있습니다.

데이터베이스 인스턴스의 플래그를 설정, 삭제, 수정하면 데이터베이스가 다시 시작될 수 있습니다. 플래그 값은 인스턴스를 삭제하기 전까지 유지됩니다. 인스턴스가 복제본의 소스이며 인스턴스를 다시 시작하는 경우 복제본은 인스턴스의 현재 구성에 맞게 다시 시작됩니다.

데이터베이스 플래그 구성

데이터베이스 플래그 설정

콘솔

  1. Google Cloud 콘솔에서 데이터베이스 플래그를 설정할 Cloud SQL 인스턴스가 포함된 프로젝트를 선택합니다.
  2. 인스턴스를 열고 수정을 클릭합니다.
  3. 플래그 섹션까지 아래로 스크롤합니다.
  4. 이전에 인스턴스에 설정되지 않은 플래그를 설정하려면 항목 추가를 클릭하고 드롭다운 메뉴에서 플래그를 선택한 다음 값을 설정합니다.
  5. 저장을 클릭하여 변경사항을 저장합니다.
  6. 개요 페이지의 플래그에서 변경사항을 확인합니다.

gcloud

인스턴스를 수정합니다.

gcloud sql instances patch INSTANCE_NAME --database-flags=FLAG1=VALUE1,FLAG2=VALUE2

이 명령어는 이전에 설정한 모든 데이터베이스 플래그를 덮어씁니다. 이전에 설정된 플래그를 유지하고 새 플래그를 추가하려면 인스턴스에 설정하려는 모든 플래그의 값을 포함합니다. 명확하게 포함되지 않은 플래그는 기본값으로 설정됩니다. 값을 가지지 않는 플래그의 경우 플래그 이름 뒤에 등호('=')를 지정합니다.

예를 들어 log_connectionslog_min_error_statement 플래그를 설정하려면 다음 명령어를 사용하면 됩니다.

gcloud sql instances patch INSTANCE_NAME \
  --database-flags=log_connections=on,log_min_error_statement=error

Terraform

데이터베이스 플래그를 추가하려면 Terraform 리소스를 사용합니다.

resource "google_sql_database_instance" "instance" {
  name             = "postgres-instance"
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    database_flags {
      name  = "log_connections"
      value = "on"
    }
    database_flags {
      name  = "log_min_error_statement"
      value = "error"
    }
    tier = "db-custom-2-7680"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

변경사항 적용

Google Cloud 프로젝트에 Terraform 구성을 적용하려면 다음 섹션의 단계를 완료하세요.

Cloud Shell 준비

  1. Cloud Shell을 실행합니다.
  2. Terraform 구성을 적용할 기본 Google Cloud 프로젝트를 설정합니다.

    이 명령어는 프로젝트당 한 번만 실행하면 되며 어떤 디렉터리에서도 실행할 수 있습니다.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Terraform 구성 파일에서 명시적 값을 설정하면 환경 변수가 재정의됩니다.

디렉터리 준비

각 Terraform 구성 파일에는 자체 디렉터리(루트 모듈이라고도 함)가 있어야 합니다.

  1. Cloud Shell에서 디렉터리를 만들고 해당 디렉터리 내에 새 파일을 만드세요. 파일 이름에는 .tf 확장자가 있어야 합니다(예: main.tf). 이 튜토리얼에서는 파일을 main.tf라고 합니다.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 튜토리얼을 따라 하는 경우 각 섹션이나 단계에서 샘플 코드를 복사할 수 있습니다.

    샘플 코드를 새로 만든 main.tf에 복사합니다.

    필요한 경우 GitHub에서 코드를 복사합니다. 이는 Terraform 스니펫이 엔드 투 엔드 솔루션의 일부인 경우에 권장됩니다.

  3. 환경에 적용할 샘플 매개변수를 검토하고 수정합니다.
  4. 변경사항을 저장합니다.
  5. Terraform을 초기화합니다. 이 작업은 디렉터리당 한 번만 수행하면 됩니다.
    terraform init

    원하는 경우 최신 Google 공급업체 버전을 사용하려면 -upgrade 옵션을 포함합니다.

    terraform init -upgrade

변경사항 적용

  1. 구성을 검토하고 Terraform에서 만들거나 업데이트할 리소스가 예상과 일치하는지 확인합니다.
    terraform plan

    필요에 따라 구성을 수정합니다.

  2. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 Terraform 구성을 적용합니다.
    terraform apply

    Terraform에 '적용 완료' 메시지가 표시될 때까지 기다립니다.

  3. 결과를 보려면 Google Cloud 프로젝트를 엽니다. Google Cloud 콘솔에서 UI의 리소스로 이동하여 Terraform이 리소스를 만들었거나 업데이트했는지 확인합니다.

변경사항 삭제

변경사항을 삭제하려면 다음 단계를 따르세요.

  1. Terraform 구성 파일에서 삭제 보호를 사용 중지하려면 deletion_protection 인수를 false로 설정합니다.
    deletion_protection =  "false"
  2. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 업데이트된 Terraform 구성을 적용합니다.
    terraform apply
  1. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 이전에 Terraform 구성에 적용된 리소스를 삭제합니다.

    terraform destroy

REST v1

기존 데이터베이스에 플래그를 설정하려면 다음 안내를 따르세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON 요청 본문:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

데이터베이스에 기존에 구성된 플래그가 있는 경우 이전 명령어를 수정하여 해당 플래그를 포함할 수 있습니다. PATCH 명령어는 기존 플래그를 요청에 지정된 플래그로 덮어씁니다.

REST v1beta4

기존 데이터베이스에 플래그를 설정하려면 다음 안내를 따르세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 요청 본문:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

데이터베이스에 기존에 구성된 플래그가 있는 경우 이전 명령어를 수정하여 해당 플래그를 포함할 수 있습니다. PATCH 명령어는 기존 플래그를 요청에 지정된 플래그로 덮어씁니다.

모든 플래그를 삭제해 기본값으로 지정

콘솔

  1. Google Cloud 콘솔에서 모든 플래그를 삭제하려는 Cloud SQL 인스턴스가 포함된 프로젝트를 선택합니다.
  2. 인스턴스를 열고 수정을 클릭합니다.
  3. 데이터베이스 플래그 섹션을 엽니다.
  4. 표시된 모든 플래그 옆에 있는 X를 클릭합니다.
  5. 저장을 클릭하여 변경사항을 저장합니다.

gcloud

인스턴스의 모든 플래그를 기본값으로 지정합니다.

gcloud sql instances patch INSTANCE_NAME \
--clear-database-flags

인스턴스를 다시 시작할지 묻는 메시지가 표시됩니다.

REST v1

기존 인스턴스의 모든 플래그를 삭제하려면 다음을 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON 요청 본문:

{
  "settings":
  {
    "databaseFlags": []
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

REST v1beta4

기존 인스턴스의 모든 플래그를 삭제하려면 다음을 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 요청 본문:

{
  "settings":
  {
    "databaseFlags": []
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

데이터베이스 플래그의 현재 값 보기

PostgreSQL 설정의 모든 현재 값을 보려면 psql 클라이언트에서 인스턴스에 로그인하고 다음 문을 입력합니다.

 SELECT name, setting FROM pg_settings;

지원되는 플래그(아래 참조)의 값만 변경할 수 있습니다.

인스턴스에 설정된 데이터베이스 플래그 확인

Cloud SQL 인스턴스에 설정된 플래그를 확인하려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 설정된 데이터베이스 플래그를 확인할 Cloud SQL 인스턴스가 포함된 프로젝트를 선택합니다.
  2. 인스턴스를 선택하여 인스턴스 개요 페이지를 엽니다.

    데이터베이스 플래그 섹션에 설정된 데이터베이스 플래그가 나열됩니다.

gcloud

인스턴스 상태를 가져옵니다.

gcloud sql instances describe INSTANCE_NAME

출력에서 데이터베이스 플래그는 databaseFlags 컬렉션으로 settings 아래에 나열됩니다. 출력에서 플래그 표시에 대한 자세한 내용은 인스턴스 리소스 표시를 참조하세요.

REST v1

인스턴스에 구성된 플래그를 나열하려면 다음을 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

출력에서 databaseFlags 필드를 확인합니다.

REST v1beta4

인스턴스에 구성된 플래그를 나열하려면 다음을 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

출력에서 databaseFlags 필드를 확인합니다.

지원되는 플래그

아래에 언급되지 않은 플래그는 지원되지 않습니다.

Cloud SQL은 특정 플래그에 PostgreSQL과 다른 값 또는 범위의 매개변수 또는 옵션을 지원합니다.

A | C | D | E | F | G | H | I | J | L | M | O | P | R | S | T | V | W

Cloud SQL 플래그 유형
허용 값 및 참고사항
다시 시작
필요 여부
anon.algorithm String
기본값은 sha256입니다.
No
anon.maskschema String
기본값은 마스크입니다.
No
anon.restrict_to_trusted_schemas boolean
on | off
기본값은 사용 안함입니다.
No
anon.salt String
기본값은 없습니다.
No
anon.sourceshema String
기본값은 공개입니다.
No
auto_explain.log_analyze boolean
on | off
기본값은 사용 안함입니다.
No
auto_explain.log_buffers boolean
on | off
기본값은 사용 안함입니다.
No
auto_explain.log_min_duration Integer
-1 ... 2147483647
기본값은 -1입니다.
No
auto_explain.log_format String
text|xml|json|yaml
기본값은 텍스트입니다.
No
auto_explain.log_level String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|log
기본값은 로그입니다.
PostgreSQL 12 이상에서 지원됩니다.
No
auto_explain.log_nested_statements boolean
on | off
기본값은 사용 안함입니다.
No
auto_explain.log_settings boolean
on | off
기본값은 사용 안함입니다.
PostgreSQL 12 이상에서 지원됩니다.
No
auto_explain.log_timing boolean
on | off
기본값은 사용입니다.
No
auto_explain.log_triggers boolean
on | off
기본값은 사용 안함입니다.
No
auto_explain.log_wal boolean
on | off
기본값은 사용 안함입니다.
PostgreSQL 13 이상에서 지원됩니다.
No
auto_explain.log_verbose boolean
on | off
기본값은 사용 안함입니다.
No
auto_explain.sample_rate Float
0 ... 1
기본값은 1입니다.
No
autovacuum boolean
on | off
기본값은 사용입니다.
SLA에 영향을 줄 수 있는 사용 정보는 PostgreSQL용 Cloud SQL 인스턴스의 작업 가이드라인을 참조하세요.
No
autovacuum_analyze_scale_factor float
0 ... 100
기본값은 0.1입니다.
No
autovacuum_analyze_threshold integer
0 ... 2147483647
기본값은 50입니다.
No
autovacuum_freeze_max_age integer
100000 ... 2000000000
기본값은 200000000입니다.
SLA에 영향을 줄 수 있는 사용 정보는 PostgreSQL용 Cloud SQL 인스턴스의 작업 가이드라인을 참조하세요.
Yes
autovacuum_max_workers integer
1 ... varies (see note)
기본값은 3입니다.
Yes
autovacuum_multixact_freeze_max_age integer
10000 ... 2000000000
기본값은 400000000입니다.
SLA에 영향을 줄 수 있는 사용 정보는 PostgreSQL용 Cloud SQL 인스턴스의 작업 가이드라인을 참조하세요.
Yes
autovacuum_naptime integer
1 ... 2147483
기본값은 60초입니다.
No
autovacuum_vacuum_cost_delay integer
0 ... 100밀리초 또는 -1이면 vacuum_cost_delay 값 사용
PostgreSQL 9.6, 10, 11의 경우 기본값은 2ms입니다.
No
autovacuum_vacuum_cost_limit integer
0 ... 10000 또는 -1이면 vacuum_cost_limit 값 사용
기본값은 -1입니다.
No
autovacuum_vacuum_insert_scale_factor float
0 ... 100
기본값은 0.2입니다.
No
autovacuum_vacuum_insert_threshold integer
-1 ... 2147483647
기본값은 1000입니다.
No
autovacuum_vacuum_scale_factor float
0 ... 100
기본값은 0.2입니다.
No
autovacuum_vacuum_threshold integer
0 ... 2147483647
기본값은 50입니다.
No
autovacuum_work_mem integer
0 ... 2147483647 KB 또는 -1이면 maintenance_work_mem 값 사용
기본값은-1 입니다.
No
checkpoint_completion_target float
0.0 ... 1.0
기본값은 0.9입니다.
No
checkpoint_timeout integer
30 ... 86,400
기본값은 300초입니다.
SLA에 영향을 줄 수 있는 사용 정보는 PostgreSQL용 Cloud SQL 인스턴스의 작업 가이드라인을 참조하세요.
No
checkpoint_warning integer
0 ... 2147483647
기본값은 30초입니다.
No
cloudsql.allow_passwordless_local_connections boolean
on | off
기본값은 off입니다.
No
cloudsql.enable_anon boolean
on | off
기본값은 off입니다.
No
cloudsql.enable_auto_explain boolean
on | off
기본값은 off입니다.
Yes
cloudsql.enable_maintenance_mode boolean
on | off
기본값은 off입니다.
Yes
cloudsql.enable_pgaudit boolean
on | off
기본값은 사용 안함입니다.
Yes
cloudsql.enable_pg_bigm boolean
on | off
기본값: off
Yes
cloudsql.enable_pg_cron boolean
on | off
기본값은 off입니다.
PostgreSQL 10 이상에서 지원됩니다.
Yes
cloudsql.enable_pg_hint_plan boolean
on | off
기본값은 off입니다.
Yes
cloudsql.enable_pglogical boolean
on | off
기본값은 off입니다.
cloudsql.enable_pg_squeeze boolean
on | off
기본값은 off입니다.
cloudsql.enable_pg_wait_sampling boolean
on | off
Yes
cloudsql.iam_authentication boolean
on | off
기본값은 off입니다.
No
cloudsql.logical_decoding boolean
on | off
기본값은 off입니다.
Yes
cloudsql.max_failed_attempts_user integer
0 ... 10000
기본값은 10입니다.
Yes
cloudsql.pg_authid_select_role string
No
commit_delay integer
0 ... 100000
기본값은 0입니다.
No
commit_siblings integer
0 ... 1000
기본값은 5입니다.
No
constraint_exclusion enumeration
partition | on | off
기본값은 파티션입니다.
No
cpu_index_tuple_cost float
0.0 ... inf
기본값은 0.005입니다.
No
cpu_operator_cost float
0.0 ... inf
기본값은 0.0025입니다.
No
cpu_tuple_cost float
0.0 ... inf
기본값은 0.01입니다.
No
cron.database_name String.
PostgreSQL 10 이상에서 지원됩니다.
Yes
cron.log_statement boolean
on | off
기본값은 사용입니다.
PostgreSQL 10 이상에서 지원됩니다.
Yes
cron.log_run boolean
on | off
기본값은 사용입니다.
PostgreSQL 10 이상에서 지원됩니다.
Yes
cron.max_running_jobs Integer
0 ... varies
기본값은 5입니다.
PostgreSQL 10 이상에서 지원됩니다.
Yes
cron.log_min_messages String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log|fatal|panic
기본값은 경고입니다.
PostgreSQL 10 이상에서 지원됩니다.
No
cursor_tuple_fraction float
0.0 ... 1.0
기본값은 0.1입니다.
No
deadlock_timeout integer
1 ... 2147483647밀리초
기본값은 1000밀리초입니다.
No
default_statistics_target integer
1 ... 10000
기본값은 100입니다.
No
default_tablespace string No
default_transaction_deferrable boolean
on | off
기본값은 사용 안함입니다.
No
default_transaction_isolation enumeration
serializable | 'repeatable read' | 'read committed' | 'read uncommitted'
기본값은 '커밋된 읽기'입니다.
No
effective_cache_size integer
크기 범위는 인스턴스 메모리의 10%~70%입니다.
단위는 8KB입니다.
기본값은 VM 메모리의 40% 입니다. 예를 들어 45GB 인스턴스 메모리의 기본값은 18537160KB입니다.
No
effective_io_concurrency integer
0 ... 1000
기본값은 1입니다.
No
enable_bitmapscan boolean
on | off
기본값은 사용입니다.
No
enable_hashagg boolean
on | off
기본값은 사용입니다.
No
enable_hashjoin boolean
on | off
기본값은 사용입니다.
No
enable_indexonlyscan boolean
on | off
기본값은 사용입니다.
No
enable_indexscan boolean
on | off
기본값은 사용입니다.
No
enable_material boolean
on | off
기본값은 사용입니다.
No
enable_mergejoin boolean
on | off
기본값은 사용입니다.
No
enable_nestloop boolean
on | off
기본값은 사용입니다.
No
enable_seqscan boolean
on | off
기본값은 사용입니다.
No
enable_sort boolean
on | off
기본값은 사용입니다.
No
enable_tidscan boolean
on | off
기본값은 사용입니다.
No
force_parallel_mode enumeration
off | on | regress
기본값은 사용 안함입니다.
No
from_collapse_limit integer
1 ... 2147483647
기본값은 8입니다.
No
geqo boolean
on | off
기본값은 사용입니다.
No
geqo_effort integer
1 ... 10
기본값은 5입니다.
No
geqo_generations integer
0 ... 2147483647
기본값은 0입니다.
No
geqo_pool_size integer
0 ... 2147483647
기본값은 0입니다.
No
geqo_seed float
0.0 ... 1.0
기본값은 0입니다.
No
geqo_selection_bias float
1.5 ... 2.0
기본값은 2입니다.
No
geqo_threshold integer
2 ... 2147483647
기본값은 12입니다.
No
gin_fuzzy_search_limit integer
0 ... 2147483647
기본값은 0입니다.
No
gin_pending_list_limit integer
64 ... 2147483647KB
기본값은 4096KB입니다.
No
hash_mem_multiplier float
1 ... 1000
기본값은 2입니다.
No
hot_standby_feedback boolean
on | off
기본값은 사용 안함입니다.
No
huge_pages enumeration
try | off
기본값은 시도입니다.
Yes
idle_in_transaction_session_timeout integer
0 ... 2147483647밀리초
기본값은 0입니다.
No
ivfflat.probes integer
1 ... varies
기본값은 1입니다.
PostgreSQL 11 이상에서 지원됩니다.
No
join_collapse_limit integer
1 ... 2147483647
기본값은 8입니다.
No
lock_timeout integer
0 ... 2147483647밀리초
기본값은 0입니다.
No
log_autovacuum_min_duration integer
0 ... 2147483647밀리초 또는 -1이면 사용 중지
기본값은 0입니다.
No
log_checkpoints boolean
on | off
기본값은 사용 안함입니다.
No
log_connections boolean
on | off
기본값은 사용 안함입니다.
No
log_disconnections boolean
on | off
기본값은 사용 안함입니다.
No
log_duration boolean
on | off
기본값은 사용 안함입니다.
No
log_error_verbosity enumeration
terse | default | verbose
기본값은 기본값입니다.
No
log_executor_stats boolean
on | off
기본값은 사용 안함입니다.
No
log_hostname boolean
on | off
기본값은 사용 안함입니다.
No
log_line_prefix String
로그 파일의 각 행 시작 부분에 생성되는 printf-style 문자열입니다.
기본값은 %m [%p]: [%l-1] db=%d,user=%u이며 타임스탬프, 프로세스 ID, 데이터베이스, 사용자 이름을 로깅합니다.
No
log_lock_waits boolean
on | off
기본값은 사용 안함입니다.
No
log_min_duration_statement integer
-1 ... 2147483647밀리초
기본값은 -1입니다.
No
log_min_error_statement enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal panic
기본값은 오류입니다.
No
log_min_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal panic
기본값은 경고입니다.
No
log_parser_stats boolean
on | off
기본값은 사용 안함입니다.
No
log_planner_stats boolean
on | off
기본값은 사용 안함입니다.
No
log_replication_commands boolean
on | off
기본값은 사용 안함입니다.
No
log_statement enumeration
none | ddl | mod | all
mod로 설정하면 모든 데이터 정의 언어(DDL) 문과 데이터 수정문(예:INSERT ,UPDATE ,DELETE ,TRUNCATE) 로깅
기본값은없음입니다.
No
log_statement_stats boolean
on | off
log_parser_stats, log_planner_stats, log_executor_stats와 함께 사용 설정할 수 없음
기본값은 사용 안함입니다.
No
log_temp_files integer
0 ... 2147483647KB 또는 -1이면 사용 중지
기본값은 0입니다.
No
log_timezone string
이 플래그는 PostgreSQL용 Cloud SQL 사용자에게 서버 로그에 기록된 타임스탬프에 사용되는 시간대를 설정하는 방법을 제공합니다.

이름별로 시간대를 지정합니다. 예를 들어 Europe/London은 런던의 시간대 이름입니다.

이를 반영하려면 기본 인스턴스와 모든 읽기 복제본에서 이 플래그를 수동으로 업데이트해야 합니다.

시간대 이름은 대소문자를 구분하지 않습니다. 어떠한 경우에도 시간대 이름을 제공할 수 있습니다.

이 플래그의 올바른 형식으로 UTC+X가 지원됩니다. 여기서 X+/-HH:MM입니다.

Yes
logical_decoding_work_mem integer
64 ... 2147483647
기본값은 65536입니다.
No
maintenance_io_concurrency integer
0 ... 1000
기본값은 10입니다.
No
maintenance_work_mem integer
1024 ... 2147483647KB
기본값은 64MB입니다.
No
max_connections integer
14 ... varies (see note)
기본값은 기본 인스턴스(이 인스턴스, 읽기 복제본인 경우 기본 인스턴스, 기본 인스턴스의 기본 인스턴스 등)에서 복제 트리의 루트까지 가장 큰 인스턴스의 메모리 양에 따라 다릅니다.
가장 큰 인스턴스의 메모리(GB)기본값
아주 작음(~0.5)25
작음(~1.7)50
3.75부터 6 미만100
6부터 7.5 미만200
7.5부터 15 미만400
15부터 30 미만500
30부터 60 미만600
60부터 120 미만800
>=1201,000

복제본 값은 기본 인스턴스 값 이상이어야 합니다. 기본 인스턴스의 변경사항은 기본 인스턴스의 새 값보다 낮거나 기본값에서 변경되지 않은 값이 설정된 복제본에 전파됩니다. 기본 인스턴스에 이러한 변경사항이 적용되면 복제본이 다시 시작됩니다.

Yes
max_locks_per_transaction integer
10 ... 2,147,483,647
기본값은 64입니다.

복제본 값은 기본 인스턴스 값 이상이어야 합니다. 기본 인스턴스의 변경사항은 기본 인스턴스의 새 값보다 낮거나 기본값에서 변경되지 않은 값이 설정된 복제본에 전파됩니다. 기본 인스턴스에 이러한 변경사항이 적용되면 복제본이 다시 시작됩니다.

Yes
max_logical_replication_workers integer
4 ... 8192
기본값은 4입니다.
PostgreSQL 10 이상에서 지원됩니다.
Yes
max_parallel_maintenance_workers integer
0 ... varies
기본값은 2입니다.
PostgreSQL 11 이상에서 지원됩니다.

복제본 값은 기본 인스턴스 값 이상이어야 합니다. 기본 인스턴스의 변경사항은 기본 인스턴스의 새 값보다 낮거나 기본값에서 변경되지 않은 값이 설정된 복제본에 전파됩니다.

기본 인스턴스의 값이 default이면 복제본의 값을 변경할 수 없습니다. 복제본 값을 변경하려면 먼저 기본 인스턴스의 값을 정수로 설정합니다.

No
max_parallel_workers integer
0 ... varies
기본값은 8입니다.
PostgreSQL 10 이상에서 지원됩니다.

복제본 값은 기본 인스턴스 값 이상이어야 합니다. 기본 인스턴스의 변경사항은 기본 인스턴스의 새 값보다 낮거나 기본값에서 변경되지 않은 값이 설정된 복제본에 전파됩니다.

기본 인스턴스의 값이 default이면 복제본의 값을 변경할 수 없습니다. 복제본 값을 변경하려면 먼저 기본 인스턴스의 값을 정수로 설정합니다.

No
max_parallel_workers_per_gather integer
0 ... varies
기본값은 2입니다.

복제본 값은 기본 인스턴스 값 이상이어야 합니다. 기본 인스턴스의 변경사항은 기본 인스턴스의 새 값보다 낮거나 기본값에서 변경되지 않은 값이 설정된 복제본에 전파됩니다.

기본 인스턴스의 값이 default이면 복제본의 값을 변경할 수 없습니다. 복제본 값을 변경하려면 먼저 기본 인스턴스의 값을 정수로 설정합니다.

No
max_pred_locks_per_page integer
0 ... 2147483647
기본값은 2입니다.
PostgreSQL 10 이상에서 지원됩니다.
Yes
max_pred_locks_per_relation integer
-2147483648 ... 2147483647
기본값은 -2입니다.
PostgreSQL 10 이상에서 지원됩니다.
Yes
max_pred_locks_per_transaction integer
64 ... 1048576
Yes
max_prepared_transactions integer
0 ... varies
메모리 크기(MB)최댓값
0 - 3,84030,000
3,840 - 7,68085,000
7,680 - 15,360200,000
15,360 이상262,000

복제본 값은 기본 인스턴스 값 이상이어야 합니다. 기본 인스턴스의 변경사항은 기본 인스턴스의 새 값보다 낮거나 기본값에서 변경되지 않은 값이 설정된 복제본에 전파됩니다. 기본 인스턴스에 이러한 변경사항이 적용되면 복제본이 다시 시작됩니다.

Yes
max_replication_slots integer
10 ... varies
기본값은 10입니다.
Yes
max_standby_archive_delay integer
0 ... 2147483647밀리초, 또는 -1이면 영구 대기
No
max_standby_streaming_delay integer
0 ... 2147483647 밀리초 또는 -1이면 영구 대기
No
max_sync_workers_per_subscription integer
2 ... 64
max_logical_replication_workers 이하여야 합니다.
No
max_wal_senders integer
10 ... varies
기본값은 10입니다.

복제본 값은 기본 인스턴스 값 이상이어야 합니다. 기본 인스턴스의 변경사항은 기본 인스턴스의 새 값보다 낮거나 기본값에서 변경되지 않은 값이 설정된 복제본에 전파됩니다. 기본 인스턴스에 이러한 변경사항이 적용되면 복제본이 다시 시작됩니다.

Yes
max_wal_size integer
2 ... 2147483647

단위는 버전 9.6의 경우 16MB(WAL 파일 크기)이며 PostgreSQL 10 이상의 경우 1MB입니다.

인스턴스 메모리가 3.75GB 이상인 경우 기본값은 1504MB입니다. 인스턴스 메모리가 3.75GB 미만인 경우 기본값은 1GB입니다.

SLA에 영향을 줄 수 있는 사용 정보는 PostgreSQL용 Cloud SQL 인스턴스의 작업 가이드라인을 참조하세요.
No
max_worker_processes integer
8 ... varies

복제본 값은 기본 인스턴스 값 이상이어야 합니다. 기본 인스턴스의 변경사항은 기본 인스턴스의 새 값보다 낮거나 기본값에서 변경되지 않은 값이 설정된 복제본에 전파됩니다. 기본 인스턴스에 이러한 변경사항이 적용되면 복제본이 다시 시작됩니다.

Yes
min_parallel_relation_size integer
0 ... 715827882
단위는 8KB입니다.
PostgreSQL 9.6에서만 지원됩니다.
No
min_wal_size integer
32 ... 2147483647

단위는 버전 9.6의 경우 16MB(WAL 파일 크기)이며 PostgreSQL 10 이상의 경우 1MB입니다.

No
old_snapshot_threshold integer
0 ... 86400분 또는 -1이면 사용 중지
기본값은 -1입니다.
Yes
parallel_setup_cost float
0.0 ... inf
기본값은 1000입니다.
No
parallel_tuple_cost float
0.0 ... inf
기본값은 0.1입니다.
No
password_encryption enumeration
md5 | scram-sha-256

기본값은 PostgreSQL 버전에 따라 다릅니다. PostgreSQL 버전 10~13의 경우 기본값은 md5입니다. PostgreSQL 14 이상에서는 기본값이 scram-sha-256입니다.

No
pg_bigm.enable_recheck boolean
on | off
No
pg_bigm.gin_key_limit integer
0 ... 2147483647
No
pg_bigm.similarity_limit float
0.0 ... 1.0
No
pg_hint_plan.enable_hint boolean
on | off
기본값은 사용입니다.
No
pg_hint_plan.debug_print String
off|on|detailed|verbose|0|1||2|3|no|yes|false|true
기본값은 사용 안함입니다.
No
pg_hint_plan.parse_messages String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log
기본값은 정보입니다.
No
pg_hint_plan.message_level String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log
기본값은 로그입니다.
No
pg_hint_plan.enable_hint_table boolean
on | off
기본값은 사용 안함입니다.
No
pglogical.batch_inserts boolean
on | off
기본값은 off입니다.
Yes
pglogical.conflict_log_level String
기본값은 LOG입니다.
이 플래그는 log_min_messages와 동일한 값을 허용합니다.
No
pglogical.conflict_resolution String
error|apply_remote|keep_local|last_update_wins|first_update_wins 기본값은 apply_remote입니다.
No
pglogical.extra_connection_options String
PostgreSQL 키워드/값 연결 문자열을 허용합니다.
기본값은 빈 문자열입니다.
No
pglogical.synchronous_commit boolean
on | off
기본값은 on입니다.
Yes
pglogical.use_spi boolean
on | off
기본값은 off입니다.
Yes
pg_stat_statements.max integer
100 ... 2147483647
기본값은 5000입니다.
Yes
pg_stat_statements.save boolean
on | off
기본값은 사용입니다.
No
pg_stat_statements.track enumeration
none | top | all
기본값은 상위입니다.
No
pg_stat_statements.track_utility boolean
on | off
기본값은 사용입니다.
No
pgaudit.log enumeration
read | write | function | role | ddl | misc | misc_set | all|none

쉼표로 구분된 목록을 사용하여 여러 클래스를 제공할 수 있으며 클래스를 - 기호로 묶어 클래스를 삭제할 수 있습니다. 기본값은 none입니다.

No
pgaudit.log_catalog boolean
on | off
기본값은 on입니다.
No
pgaudit.log_client boolean
on | off
기본값은 off입니다.
No
pgaudit.log_level enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log
기본값은 log입니다. 또한 pgaudit.log_client가 사용 설정된 경우에만 pgaudit.log_level이 사용 설정됩니다.
No
pgaudit.log_parameter boolean
on | off
기본값은 off입니다.
No
pgaudit.log_relation boolean
on | off
기본값은 off입니다.
No
pgaudit.log_statement_once boolean
on | off
기본값은 off입니다.
No
pgaudit.role string
기본값은 없습니다.
No
pgtt.enabled boolean
on | off
기본값은 사용입니다.
No
pg_wait_sampling.history_period integer
1 ... 2147483647
No
pg_wait_sampling.history_size integer
1 ... 2147483647
No
pg_wait_sampling.profile_period integer
1 ... 2147483647
No
pg_wait_sampling.profile_pid boolean
on | off
No
pg_wait_sampling.profile_queries boolean
on | off
No
random_page_cost float
0.0 ... inf
기본값은 4입니다.
No
rdkit.agent_FP_bit_ratio float
0 ... 3
No
rdkit.avalon_fp_size integer
64 ... 9192
No
rdkit.dice_threshold float
0 ... 1
No
rdkit.difference_FP_weight_agents integer
-10 ... 10
No
rdkit.difference_FP_weight_nonagents integer
1 ... 20
No
rdkit.do_chiral_sss boolean
on | off
No
rdkit.do_enhanced_stereo_sss boolean
on | off
No
rdkit.featmorgan_fp_size integer
64 ... 9192
No
rdkit.hashed_atompair_fp_size integer
64 ... 9192
No
rdkit.hashed_torsion_fp_size integer
64 ... 9192
No
rdkit.ignore_reaction_agents boolean
on | off
No
rdkit.init_reaction boolean
on | off
No
rdkit.layered_fp_size integer
64 ... 9192
No
rdkit.morgan_fp_size integer
64 ... 9192
No
rdkit.move_unmmapped_reactants_to_agents boolean
on | off
No
rdkit.rdkit_fp_size integer
64 ... 9192
No
rdkit.reaction_difference_fp_size integer
64 ... 9192
No
rdkit.reaction_difference_fp_type integer
1 ... 3
No
rdkit.reaction_sss_fp_size integer
64 ... 9192
No
rdkit.reaction_sss_fp_type integer
1 ... 5
No
rdkit.sss_fp_size integer
64 ... 4096
No
rdkit.tanimoto_threshold float
0 ... 1
No
rdkit.threshold_unmapped_reactant_atoms float
0 ... 1
No
replacement_sort_tuples integer
0 ... 2147483647
No
session_replication_role enumeration
origin | replica | local
현재 세션에서만 설정할 수 있습니다.
-
shared_buffers integer
크기 범위는 인스턴스 메모리의 10%~60%입니다.
단위는 8KB입니다.
기본값은 인스턴스의 총 VM 메모리의 1/3(MB 단위)입니다. 예를 들어 인스턴스 메모리 45GB의 기본값은 15085MB입니다.
squeeze.max_xlock_time integer
1 ... 2147483647
아니요
squeeze.worker_autostart string
아니요
squeeze.worker_role string
아니요
ssl_max_protocol_version enumeration
Postgres 14: 사용할 최대 SSL/TLS 프로토콜 버전을 설정합니다. 유효한 값은 ssl_min_protocol_version의 경우와 같으며 모든 프로토콜 버전을 지정할 수 있는 빈 문자열이 추가됩니다.
PostgreSQL 12 이상에서 지원됩니다.
No
ssl_min_protocol_version enumeration
Postgres 14: 사용할 최소 SSL/TLS 프로토콜 버전을 설정합니다. 유효한 값은 현재 TLSv1, TLSv1.1, TLSv1.2, TLSv1.3입니다.
기본값은 TLSv1입니다.
PostgreSQL 12 이상에서 지원됩니다.
No
standard_conforming_strings boolean
on | off
기본값은 사용입니다.
No
synchronize_seqscans boolean
on | off
기본값은 사용입니다.
No
tcp_keepalives_count integer
0 ... 2147483647
기본값은 5입니다.
No
tcp_keepalives_idle integer
0 ... 2147483647
기본값은 60입니다.
No
tcp_keepalives_interval integer
0 ... 2147483647
기본값은 60입니다.
No
temp_buffers integer
100 ... 1,073,741,823
단위는 8KB
No
temp_file_limit integer
1048576 ... 2147483647KB
기본값은 초기 디스크 크기의 10%입니다. 예를 들어 100GB 디스크의 경우 기본값은 10262623KB입니다.
No
TimeZone string
이 플래그는 PostgreSQL용 Cloud SQL 사용자에게 타임스탬프를 표시하고 분석할 시간대를 설정하는 방법을 제공합니다.

이름별로 시간대를 지정합니다. 예를 들어 Europe/London은 런던의 시간대 이름입니다.

이를 반영하려면 기본 인스턴스와 모든 읽기 복제본에서 이 플래그를 수동으로 업데이트해야 합니다.

시간대 이름은 대소문자를 구분하지 않습니다. 어떠한 경우에도 시간대 이름을 제공할 수 있습니다.

이 플래그의 올바른 형식으로 UTC+X가 지원됩니다. 여기서 X+/-HH입니다.

Yes
trace_notify boolean
on | off
기본값은 사용 안함입니다.
No
trace_recovery_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | log | notice | warning | error
기본값은 로그입니다.
No
trace_sort boolean
on | off
기본값은 사용 안함입니다.
No
track_activities boolean
on | off
기본값은 사용입니다.
No
track_activity_query_size integer
100 ... 102400
기본값은 1KB입니다.
Yes
track_commit_timestamp boolean
on | off
기본값은 사용 안함입니다.
Yes
track_counts boolean
on | off
기본값은 사용입니다.
No
track_functions enumeration
none | pl | all
기본값은 없음입니다.
No
track_io_timing boolean
on | off
기본값은 사용 안함입니다.
No
vacuum_cost_delay integer
0 ... 100밀리초
기본값은 0입니다.
No
vacuum_cost_limit integer
1 ... 10000
기본값은 200입니다.
No
vacuum_failsafe_age integer
0 ... 2100000000
기본값은 1600000000입니다.
No
vacuum_freeze_min_age integer
0 ... 1000000000
기본값은 50000000입니다.
No
vacuum_freeze_table_age integer
0 ... 2000000000
기본값은 150000000입니다.
No
vacuum_multixact_failsafe_age integer
0 ... 2100000000
기본값은 1600000000입니다.
No
vacuum_multixact_freeze_min_age integer
0 ... 1000000000
기본값은 5000000입니다.
No
vacuum_multixact_freeze_table_age integer
0 ... 2000000000
기본값은 150000000입니다.
No
wal_buffers integer
크기 범위는 인스턴스 메모리의 -1%~5%입니다.
단위는 8KB입니다.
기본값은 16MB입니다.
Yes
wal_compression enumeration
off | on | pglz | lz4 | zstd
기본값은 사용 안함입니다.
No
wal_receiver_timeout integer
0 ... 2147483647
기본값은 60초입니다.

이 플래그는 WAL 발신자 및 수신자에 영향을 미칩니다. 이 플래그가 적절하게 설정되지 않으면 논리 복제와 물리적 복제에 영향을 미칩니다. 이 플래그는 복제 성능 및 지연 시간에도 영향을 미칩니다. 값이 0이면 제한 시간 메커니즘이 사용 중지됩니다. 단위는 밀리초입니다.

No
wal_sender_timeout integer
0 ... 2147483647
기본값은 60초입니다.

이 플래그는 WAL 발신자 및 수신자에 영향을 미칩니다. 이 플래그가 적절하게 설정되지 않으면 논리 복제와 물리적 복제에 영향을 미칩니다. 이 플래그는 복제 성능 및 지연 시간에도 영향을 미칩니다. 값이 0이면 제한 시간 메커니즘이 사용 중지됩니다. 단위는 밀리초입니다.

No
work_mem integer
64 ... 2147483647KB
기본값은 4MB입니다.
No

특수 플래그

bgwriter

PostgreSQL에는 백그라운드 작성기(bgwriter) 플래그가 있습니다. 이 플래그는 신규 또는 수정된 공유 버퍼 쓰기를 수행합니다. 이러한 공유 버퍼를 더티 버퍼라고 부릅니다. 클린 공유 버퍼 수가 부족하면 백그라운드 작성기가 더티 버퍼를 파일 시스템에 기록하고 이를 클린으로 표시합니다.

bgwriter 플래그와 연관된 2개의 플래그는 bgwriter_delaybgwriter_lru_maxpages입니다. bgwriter_delay는 백그라운드 작성기의 활동 라운드 간 지연 시간을 밀리초(ms)로 지정하고 bgwriter_lru_maxpages는 백그라운드 작성기가 기록하는 버퍼 수를 지정합니다.

bgwriter 플래그의 기본값은 200 ms입니다. 하지만 500GB보다 큰 솔리드 스테이트 드라이브(SSD)를 선택하면 bgwriter_delay 플래그 값이 50으로 설정되고 bgwriter_lru_maxpages 플래그 값이 200으로 설정됩니다.

백그라운드 작성기에 대한 자세한 내용은 PostgreSQL 문서를 참조하세요.

session_replication_role

PostgreSQL에는 논리 복제에 사용할 수 있도록 설계되었으며 개별 세션에서 제약조건 트리거를 사용 중지할 수 있는 session_replication_role 플래그가 있습니다.

경우에 따라 이 플래그를 사용하여 일부 유지보수 작업에서 제약조건(대부분의 경우 외래 키) 검사를 우회할 수도 있습니다.

REPLICATION 속성이 설정된 모든 사용자가 세션에서 이 플래그를 설정할 수 있습니다. cloudsql.enable_pglogical 또는 cloudsql.logical_decoding 플래그 중 하나가 인스턴스에 설정되면 cloudsqlsuperuser에서 모든 사용자의 REPLICATION 속성을 설정할 수 있습니다.

전체 인스턴스에 이 플래그를 설정할 수 없습니다.

문제 해결

문제 문제 해결
세션의 시간대를 설정했지만 로그아웃하면 만료됩니다.

데이터베이스에 연결하고 데이터베이스 시간대를 사용자 또는 데이터베이스별로 원하는 시간대로 설정합니다.

PostgreSQL용 Cloud SQL에서는 다음을 지정할 수 있습니다. 이러한 설정은 세션이 닫혀도 .conf 구성을 모방하여 유지됩니다.


ALTER DATABASE dbname SET TIMEZONE TO 'timezone';
ALTER USER username SET TIMEZONE TO 'timezone';

이 설정은 데이터베이스에 대한 새 연결에만 적용됩니다. 시간대 변경사항을 보려면 인스턴스에서 연결을 해제한 후 다시 연결합니다.

다음 단계