管理数据库

GDC 沙盒提供数据库服务,用于测试和管理数据库集群。

创建数据库

如需创建和管理数据库集群,请参阅 创建和管理数据库集群

可用的数据库引擎

GDC 沙盒仅支持 PostgreSQL 和 AlloyDB。

您可以使用 GDC 控制台或 Distributed Cloud CLI 创建数据库集群:

控制台

  1. 在主菜单中,选择数据库服务
  2. 点击创建数据库集群
  3. 选择数据库引擎 对话框中,选择一个 数据库引擎

  4. 配置集群 对话框中,指定集群 ID、密码和数据库版本。您可以启用备份并配置备份保留期限。

  5. 配置主实例 对话框中,指定数据库集群的主实例的 CPU、内存和存储容量。我们建议您选择足够的内存来容纳最大的表。

  6. 点击创建 。创建数据库集群可能需要几分钟时间。 在集群概览 页面中检查集群的状态。当集群准备就绪时, 状态会从“正在创建”变为“就绪”。

gdcloud

  1. 在使用 Distributed Cloud CLI 之前, 请先安装并初始化它。 然后,使用您的 组织进行身份验证

  2. 运行以下命令以创建数据库集群:

    gdcloud database clusters create CLUSTER_NAME \
        --database-version DB_VERSION \
        --admin-password ADMIN_PASSWORD
    

    替换以下变量:

    • CLUSTER_NAME ,替换为新集群的名称。
    • DB_VERSION ,替换为新集群的版本字符串。例如,POSTGRESQL_13ALLOYDBOMNI_15
    • ADMIN_PASSWORD ,替换为新集群的管理员密码。
  3. 如需详细了解如何为数据库集群配置 CPU、内存和存储资源、配置备份、启用高可用性以及其他可用选项,请运行:

    gdcloud database clusters create --help
    

API

  1. 创建包含以下内容的 db-cluster-create.yaml 文件

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DBCLUSTER_NAME
      namespace: USER_PROJECT
    type: Opaque
    data:
      DBCLUSTER_NAME: "BASE64_PASSWORD"
    ---
    apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
    kind: DBCluster
    metadata:
      name: DBCLUSTER_NAME
      namespace: USER_PROJECT
    spec:
      primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DBCLUSTER_NAME
        version: "DB_VERSION"
        resources:
          memory: DB_MEMORY
          cpu: DB_CPU
          disks:
          - name: DataDisk
            size: DB_DATA_DISK
    

    替换以下变量:

    • DBCLUSTER_NAME,数据库集群的名称。
    • USER_PROJECT,要在其中创建数据库集群的用户项目的名称。
    • BASE64_PASSWORD,数据库管理员密码的 base64 编码。
    • DBENGINE_NAME,数据库引擎的名称。这是 alloydbomnipostgresql 之一。
    • DB_VERSION,数据库引擎的版本。
    • DB_MEMORY,分配给数据库集群的内存量,例如 5Gi
    • DB_CPU,分配给数据库集群的 CPU 数量,例如 2
    • DB_DATA_DISK,分配给数据库集群的空间量,例如 10 Gi
  2. kubectl --kubeconfig MANAGEMENT_API apply -f db-cluster-create.yaml
    

连接到数据库

默认情况下,数据库集群仅允许来自用户集群和同一项目的连接。

如需允许从其他 项目连接到项目中的所有数据库集群,请参阅 启用跨项目连接

如需从 GDC 沙盒 组织外部的 IP 地址连接到数据库,请按照 连接到数据库集群 中的说明启用外部连接。

您可以使用 sshuttle 通过本地数据库客户端(如 psql)连接到数据库:

  1. 前往数据库集群的数据库服务 页面的连接 部分。此页面包含:

    • 管理员账号的密码(用户名为 dbsadmin
    • 数据库集群的主端点的主机名和端口号
    • 用于连接到集群的 psql 命令(适用于 PostgreSQL 和 AlloyDB Omni 数据库集群)
    • 用于下载 数据库集群的证书授权机构 (CA) 证书的链接
  2. 在数据库集群的 数据库服务 页面的连接 部分,从 GDC 控制台下载 CA 证书。

  3. 将客户端配置为使用 CA 证书来验证数据库。对于 psql 客户端,请将 PGSSLROOTCERT 环境变量设置为 证书文件的路径,并将 PGSSLMODE 环境变量设置为您的偏好设置:

        export PGSSLROOTCERT=path/to/accounts_cert.pem
        export PGSSLMODE="verify-full"
    
  4. 启动安全隧道。如果您有一个正在运行的 sshuttle 实例(如 连接到实例 中所述),请终止该进程。

        sshuttle -r zone1-org-1-data@GDC_SANDBOX_INSTANCE_NAME --no-latency-control \
        --ssh-cmd 'gcloud compute ssh --project PROJECT_NAME --zone ZONE --tunnel-through-iap' \
        10.200.0.0/16 --dns
    

    将以下各项替换为 GDC 沙盒团队提供给您的值:

    • GDC_SANDBOX_INSTANCE_NAME:GDC 沙盒实例的名称。
    • PROJECT_NAME:包含 GDC 沙盒环境的项目。
    • ZONE:包含 GDC 沙盒环境的可用区。
  5. 在隧道处于活跃状态时,在另一个终端中使用 psql 运行该命令

        PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
    

    替换以下变量:

    • DB_PASSWORD:控制台界面中的密码。
    • DB_HOSTNAME:控制台中的数据库主机名。
    • DB_PORT:控制台中的数据库端口号。
    • DB_USERNAME:控制台中的数据库用户名。