데이터베이스 클러스터 속성 업데이트

GDC 콘솔 또는 gdcloud CLI를 사용하여 다음 데이터베이스 클러스터 속성을 변경할 수 있습니다.

  • 관리자 사용자의 데이터베이스 비밀번호
  • 외부 연결 (사용 설정됨/사용 중지됨)
  • 가용성 수준
  • 백업 사용 설정 및 백업 보관 일수
  • 데이터베이스 플래그
  • 데이터베이스 클러스터에 할당된 CPU, 메모리 또는 스토리지

속성을 수정하는 방법에 대한 자세한 내용은 업데이트하려는 속성 유형에 해당하는 워크플로를 참조하세요.

콘솔

고가용성

동일 영역 고가용성을 사용 설정 또는 사용 중지합니다. 자세한 내용은 고가용성 구성 섹션을 참조하세요.

데이터 보호

모든 데이터베이스 클러스터 유형에서 데이터 보호를 사용 설정하거나 사용 중지할 수 있습니다.

  1. 데이터 보호로 이동하고 수정 수정을 클릭하여 데이터 보호 설정 양식에 액세스합니다. 자동 백업이 사용 설정된 경우 백업 보관 기간을 구성할 수도 있습니다.
  2. 변경한 후 저장을 클릭하여 데이터베이스 클러스터에 업데이트를 적용합니다.

연결

모든 데이터베이스 클러스터 유형에서 데이터베이스 클러스터에 GDC 프로젝트 내부에서만 액세스할 수 있는지 또는 프로젝트 외부에서도 액세스할 수 있는지 선택할 수 있습니다.

  1. 연결으로 이동하여 수정 수정을 클릭합니다.
  2. 연결 구성을 업데이트합니다.
  3. 저장을 클릭하여 변경사항을 적용합니다.

인스턴스

모든 데이터베이스 클러스터 유형에서 기본 인스턴스 속성을 수정할 수 있습니다.

  1. 기본 인스턴스로 이동하여 수정 수정을 클릭합니다.
  2. 고성능, 표준, 최소, 커스텀 구성 중에서 선택합니다. 커스텀 옵션을 사용하면 기본 인스턴스의 CPU, 메모리, 스토리지 수를 선택할 수 있습니다.

  3. 기본 인스턴스의 CPU, 메모리 또는 스토리지를 업데이트하려면 다시 시작해야 합니다. 저장 및 다시 시작을 선택하여 변경사항을 적용합니다.

모든 데이터베이스 클러스터 유형에서 이 양식을 사용하여 데이터베이스 플래그를 추가, 수정 또는 삭제할 수도 있습니다. 사용 가능한 플래그 집합은 GDC에서 미리 결정합니다. 자세한 내용은 데이터베이스 플래그 구성 섹션을 참조하세요.

gdcloud

다음 명령어를 사용하여 데이터베이스 클러스터를 업데이트합니다.

gdcloud database clusters update CLUSTER_NAME [options]

CLUSTER_NAME을 업데이트할 데이터베이스 클러스터의 이름으로 바꿉니다.

전체 옵션 목록을 보려면 명령어 참조를 확인하거나 다음을 실행하세요.

gdcloud database clusters update --help

API

데이터 보호

모든 데이터베이스 클러스터 유형에서 해당 데이터베이스 클러스터의 BackupPlan 리소스를 만들어 데이터 보호 기능을 사용 설정할 수 있습니다.

apiVersion: postgresql.dbadmin.gdc.goog/v1
kind: BackupPlan
metadata:
  name: DBCLUSTER_NAME-backupplan
  namespace: USER_PROJECT
spec:
  dbclusterRef: DBCLUSTER_NAME
  backupRetainDays: RETENTION_DAYS

다음 변수를 바꿉니다.

  • DBCLUSTER_NAME: 데이터 보호를 사용 설정할 데이터베이스 클러스터의 이름입니다.
  • USER_PROJECT: 데이터베이스 클러스터가 생성될 사용자 프로젝트의 이름입니다.
  • RETENTION_DAYS: 연산자가 이 백업을 보관하는 기간(일 수)입니다. 1에서 90 사이의 정수여야 합니다.

해당 BackupPlan 리소스를 수정하여 보관 일수와 같은 데이터 보호 설정을 구성할 수도 있습니다.

데이터베이스 클러스터의 데이터 보호를 사용 중지하려면 이전에 만든 해당 BackupPlan 리소스를 삭제합니다.

관리자 사용자 비밀번호 재설정

모든 데이터베이스 클러스터 유형에서 관리자 사용자의 데이터베이스 비밀번호를 재설정할 수 있습니다.

  1. 비밀번호 보안 비밀을 만듭니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DBCLUSTER_NAME
      namespace: USER_PROJECT
    type: Opaque
    data:
      DBCLUSTER_NAME: "BASE64_PASSWORD"
    
  2. DBCluster를 패치합니다.

    kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME -p '{"spec":{"primarySpec": {"adminUser": {"passwordRef": {"name": "db-pw-DBCLUSTER_NAME"}}}}}' --type=merge -n USER_PROJECT
    

다음 변수를 바꿉니다.

  • DBCLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.
  • USER_PROJECT: 데이터베이스 클러스터가 업데이트될 사용자 프로젝트의 이름입니다.
  • BASE64_PASSWORD: 데이터베이스 관리자 비밀번호의 base64 인코딩입니다.

새 비밀번호가 적용되는 데 약 1분이 걸립니다.

데이터베이스 플래그 구성

GDC와 함께 제공되는 데이터베이스 이미지에는 기본 설정이 포함되어 있습니다. 하지만 애플리케이션 요구사항을 충족하도록 기본 데이터베이스 엔진을 맞춤설정할 수 있습니다. 데이터베이스 클러스터는 GDC 콘솔 또는 gdcloud CLI를 사용하여 설정할 수 있는 사전 정의된 플래그를 제공합니다.

콘솔

  1. 탐색 메뉴에서 데이터베이스 서비스를 선택합니다.

  2. 데이터베이스 클러스터 목록에서 데이터베이스 플래그를 구성할 데이터베이스 클러스터를 클릭합니다.

  3. 데이터베이스 클러스터의 인스턴스 섹션에서 기본 인스턴스 수정을 클릭합니다.

    기본 데이터베이스 클러스터를 수정하여 플래그를 구성합니다.

  4. 플래그 섹션에서 데이터베이스 플래그 추가를 클릭합니다.

  5. 플래그를 선택하고 값을 입력합니다. 입력한 값이 유효하지 않으면 GDC 콘솔에서 필수 범위 또는 값 유형을 충족하는 방법에 대한 안내를 제공합니다.

  6. 완료를 클릭합니다.

  7. 구성을 설정하려면 저장을 클릭합니다. 일부 플래그를 적용하려면 데이터베이스 클러스터를 다시 시작해야 합니다. 이 경우 저장 및 다시 시작을 클릭합니다.

  8. 새 플래그가 설정되었는지 확인하려면 데이터베이스 클러스터의 데이터베이스 클러스터의 인스턴스 섹션으로 돌아가 새 플래그와 값이 표시되는지 확인합니다.

데이터베이스 플래그를 수정하려면 플래그 섹션으로 돌아가서 기존 플래그를 수정합니다. 플래그 구성요소 위로 마우스를 가져가고 삭제 아이콘을 클릭하여 데이터베이스 플래그를 삭제합니다.

gdcloud

클러스터에 새 데이터베이스 플래그를 구성하거나 모든 기존 플래그를 기본값으로 재설정할 수 있습니다.

  • 데이터베이스 클러스터의 데이터베이스 플래그를 구성하려면 다음을 실행합니다.

    gdcloud database clusters update CLUSTER_NAME \
        --database-flags DB_FLAGS
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.
    • DB_FLAGS: 데이터베이스 클러스터에서 실행 중인 데이터베이스에 설정할 데이터베이스 플래그의 쉼표로 구분된 목록입니다. 각 데이터베이스 플래그와 값은 키-값 쌍으로 설정됩니다. 값이 없는 플래그는 = 문자 뒤에 문자열 없이 정의할 수 있습니다.

    예를 들어 다음 명령어는 test-db-cluster에 대해 여러 데이터베이스 플래그를 설정합니다.

    gdcloud database clusters update test-db-cluster \
        --database-flags max_allowed_packet=55555,skip_grant_tables=,log_output=1
    

    사용 가능한 데이터베이스 플래그 목록은 사용 가능한 데이터베이스 플래그를 참조하세요.

  • 모든 데이터베이스 플래그를 기본 설정으로 재설정하려면 다음 명령어를 실행합니다.

    gdcloud database clusters update CLUSTER_NAME --clear-database-flags
    

    CLUSTER_NAME을 데이터베이스 클러스터 이름으로 바꿉니다.

API

  • 데이터베이스 클러스터의 데이터베이스 플래그를 구성하려면 다음을 실행합니다.

      kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME -p '{"spec":{"primarySpec": {"parameters": DB_FLAGS}}}' --type=merge -n USER_PROJECT
    

    다음 변수를 바꿉니다.

    • DBCLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.
    • USER_PROJECT: 데이터베이스 클러스터가 생성된 사용자 프로젝트의 이름입니다.
    • DB_FLAGS: 추가하거나 업데이트할 데이터베이스 구성 파라미터입니다. 이는 키-값 쌍의 JSON 형식 객체여야 합니다. 여기서 키는 데이터베이스 파라미터 이름이고 값은 각 설정입니다. 예를 들어 다음은 여러 데이터베이스 플래그를 설정합니다.
    "autovacuum": "on", "autovacuum_analyze_threshold": "2147483647", "dbs.enable_anon": "on"
    

    사용 가능한 데이터베이스 플래그 목록은 사용 가능한 데이터베이스 플래그를 참조하세요.

  • 모든 데이터베이스 플래그를 기본 설정으로 재설정하려면 다음 명령어를 실행합니다.

    kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME --type=json -p='[{"op": "remove", "path": "/spec/primarySpec/parameters"}]' -n USER_PROJECT
    

    다음 변수를 바꿉니다.

    • DBCLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.
    • USER_PROJECT: 데이터베이스 클러스터가 생성된 사용자 프로젝트의 이름입니다.

사용 가능한 데이터베이스 플래그

플래그 범위 유형 다시 시작 필요
google_columnar_engine.enabled on, off 불리언 TRUE
google_columnar_engine.memory_size_in_mb [128, 2147483647] 정수 TRUE
anon.algorithm 문자열 FALSE
anon.maskschema 문자열 FALSE
anon.restrict_to_trusted_schemas on, off 불리언 FALSE
anon.salt 문자열 FALSE
anon.sourceschema 문자열 FALSE
dbs.enable_anon on, off 불리언 TRUE
dbs.enable_pg_bigm on, off 불리언 TRUE
dbs.enable_pg_cron on, off 불리언 TRUE
dbs.enable_pg_hint_plan on, off 불리언 TRUE
dbs.enable_pg_squeeze on, off 불리언 TRUE
dbs.enable_pg_wait_sampling on, off 불리언 TRUE
pg_bigm.enable_recheck on, off 불리언 FALSE
pg_bigm.gin_key_limit [0, 2147483647] 정수 FALSE
pg_bigm.similarity_limit [0, 1] 부동 소수점 수 FALSE
pg_hint_plan.debug_print off, on, detailed, verbose, 0, 1, 2, 3, no, yes, false, true Enum TRUE
pg_hint_plan.enable_hint on, off 불리언 FALSE
pg_hint_plan.enable_hint_table on, off 불리언 FALSE
pg_hint_plan.message_level debug5, debug4, debug3, debug2, debug1, debug, info, notice, warning, error, log Enum FALSE
pg_hint_plan.parse_messages debug5, debug4, debug3, debug2, debug1, debug, info, notice, warning, error, log Enum FALSE
pg_stat_statements.max [100, 2147483647] 정수 TRUE
pg_stat_statements.save on, off 불리언 FALSE
pg_stat_statements.track none, top, all Enum FALSE
pg_stat_statements.track_utility on, off 불리언 FALSE
pg_wait_sampling.history_period [1, 2147483647] 정수 FALSE
pg_wait_sampling.history_size [1, 2147483647] 정수 FALSE
pg_wait_sampling.profile_period [1, 2147483647] 정수 FALSE
pg_wait_sampling.profile_pid on, off 불리언 FALSE
pg_wait_sampling.profile_queries on, off 불리언 FALSE
pgaudit.log read, write, function, role, ddl, misc, misc_set,
all, none , -read, -write, -function, -role, -ddl,
-misc, -misc_set, -all, -none
반복 문자열 FALSE
pgaudit.log_client on, off 불리언 FALSE
pgaudit.log_parameter on, off 불리언 FALSE
pgaudit.log_level debug5, debug4, debug3, debug2, debug1, info,
notice, warning, error, log
Enum FALSE
pgaudit.log_relation on, off 불리언 FALSE
pgaudit.log_catalog on, off 불리언 FALSE
pgaudit.role 문자열 FALSE
pgaudit.log_statement_once on, off 불리언 FALSE
pglogical.batch_inserts on, off 불리언 TRUE
pglogical.conflict_log_level debug5, debug4, debug3 , debug2, debug1 , info, notice , warning, error , log, fatal , panic Enum FALSE
pglogical.conflict_resolution error, apply_remote, keep_local, last_update_wins, first_update_wins Enum FALSE
pglogical.extra_connection_options 문자열 FALSE
pglogical.synchronous_commit on, off 불리언 TRUE
pglogical.use_spi on, off 불리언 TRUE
pgtt.enabled on, off 불리언 FALSE
plv8.execution_timeout [1, 65536] 정수 FALSE
plv8.memory_limit [256, 3096] 정수 FALSE
plv8.start_proc 문자열 FALSE