更新数据库集群属性

您可以使用 GDC 控制台或 gdcloud CLI 更改以下数据库集群属性:

  • 管理员用户的数据库密码
  • 外部连接(已启用/已停用)
  • 可用性级别
  • 已启用备份和备份保留天数
  • 数据库标志
  • 分配给数据库集群的 CPU、内存或存储空间

如需了解如何修改属性,请参阅与您要更新的属性类型对应的工作流:

控制台

高可用性

启用或停用同可用区高可用性。如需了解详情,请参阅配置高可用性部分。

数据保护

对于所有数据库集群类型,您都可以启用或停用数据保护:

  1. 前往数据保护,然后点击修改图标 修改,以访问数据保护设置表单。如果启用了自动备份,您还可以配置备份的保留期限。
  2. 完成更改后,点击保存,以便将更新应用到数据库集群。

连接

对于所有数据库集群类型,您可以选择数据库集群是否只能从 GDC 项目内部访问,或者是否也可以从项目外部访问:

  1. 前往连接,然后依次点击修改 修改
  2. 更新连接配置。
  3. 点击保存以应用更改。

实例

对于所有数据库集群类型,您都可以修改主实例属性:

  1. 前往主实例,然后点击修改图标 修改
  2. 您可以选择高性能标准最低自定义配置。借助自定义选项,您可以为主要实例选择 CPU 数量、内存和存储空间。

  3. 更新主实例的 CPU、内存或存储空间需要重启实例。选择保存并重启以应用所做的更改。

对于所有数据库集群类型,您还可以使用此表单添加、修改或移除数据库标志。可用的标志集由 GDC 预先确定。如需了解详情,请参阅配置数据库标志部分。

gdcloud CLI

使用以下命令更新数据库集群: sh gdcloud database clusters update CLUSTER_NAME [options]

替换以下内容:

  • CLUSTER_NAME 替换为要更新的数据库集群的名称。

如需查看完整的选项列表,请参阅命令参考文档或运行 sh 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. 创建密码 Secret。

    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 编码。

新密码大约需要一分钟才能生效。

配置数据库标志

随 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 开启、关闭 布尔值 TRUE
google_columnar_engine.memory_size_in_mb [128, 2147483647] 整数 TRUE
anon.algorithm 字符串 FALSE
anon.maskschema 字符串 FALSE
anon.restrict_to_trusted_schemas 开启、关闭 布尔值 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 开启、关闭 布尔值 FALSE
pg_bigm.gin_key_limit [0, 2147483647] 整数 FALSE
pg_bigm.similarity_limit [0, 1] 浮点数 FALSE
pg_hint_plan.debug_print 关闭、开启、详细、冗余、0、1、2、3、否、是、false、true 枚举 TRUE
pg_hint_plan.enable_hint 开启、关闭 布尔值 FALSE
pg_hint_plan.enable_hint_table 开启、关闭 布尔值 FALSE
pg_hint_plan.message_level debug5、debug4、debug3、debug2、debug1、debug、info、notice、warning、error、log 枚举 FALSE
pg_hint_plan.parse_messages debug5、debug4、debug3、debug2、debug1、debug、info、notice、warning、error、log 枚举 FALSE
pg_stat_statements.max [100, 2147483647] 整数 TRUE
pg_stat_statements.save 开启、关闭 布尔值 FALSE
pg_stat_statements.track none、top、all 枚举 FALSE
pg_stat_statements.track_utility 开启、关闭 布尔值 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 开启、关闭 布尔值 FALSE
pg_wait_sampling.profile_queries 开启、关闭 布尔值 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 开启、关闭 布尔值 FALSE
pgaudit.log_parameter 开启、关闭 布尔值 FALSE
pgaudit.log_level debug5、debug4、debug3、debug2、debug1、info、
notice、warning、error、log
枚举 FALSE
pgaudit.log_relation 开启、关闭 布尔值 FALSE
pgaudit.log_catalog 开启、关闭 布尔值 FALSE
pgaudit.role 字符串 FALSE
pgaudit.log_statement_once 开启、关闭 布尔值 FALSE
pglogical.batch_inserts 开启、关闭 布尔值 TRUE
pglogical.conflict_log_level debug5、debug4、debug3、debug2、debug1、info、notice、warning、error、log、fatal、panic 枚举 FALSE
pglogical.conflict_resolution error、apply_remote、keep_local、last_update_wins、first_update_wins 枚举 FALSE
pglogical.extra_connection_options 字符串 FALSE
pglogical.synchronous_commit 开启、关闭 布尔值 TRUE
pglogical.use_spi 开启、关闭 布尔值 TRUE
pgtt.enabled 开启、关闭 布尔值 FALSE
plv8.execution_timeout [1, 65536] 整数 FALSE
plv8.memory_limit [256, 3096] 整数 FALSE
plv8.start_proc 字符串 FALSE