GDC 沙盒提供数据库服务,用于测试和管理数据库集群。
创建数据库
如需创建和管理数据库集群,请参阅创建和管理数据库集群。
可用的数据库引擎
GDC 沙盒仅支持 PostgreSQL 和 AlloyDB。
使用 GDC 控制台或分布式 Cloud CLI 创建数据库集群:
控制台
- 在主菜单中,选择数据库服务。
- 点击创建数据库集群。
在选择数据库引擎对话框中,选择一个数据库引擎。
在配置集群对话框中,指定集群 ID、密码和数据库版本。您可以启用备份并配置备份保留期限。
在配置主实例对话框中,指定数据库集群主实例的 CPU、内存和存储空间容量。建议您选择足够大的内存来容纳最大的表。
点击创建。创建数据库集群可能需要几分钟的时间。 在集群概览页面中检查集群的状态。当集群准备就绪时,状态会从正在创建变为就绪。
gdcloud
运行以下命令以创建数据库集群:
gdcloud database clusters create CLUSTER_NAME \ --database-version DB_VERSION \ --admin-password ADMIN_PASSWORD
执行以下变量替换操作:
- 将
CLUSTER_NAME
替换为新集群的名称。 DB_VERSION
替换为新集群的版本字符串。例如,POSTGRESQL_13
或ALLOYDBOMNI_15
- 将
ADMIN_PASSWORD
替换为新集群的管理员密码。
- 将
如需详细了解如何为数据库集群配置 CPU、内存和存储空间资源、配置备份、启用高可用性以及其他可用选项,请运行以下命令:
gdcloud database clusters create --help
API
创建一个包含以下内容的文件
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
,数据库引擎的名称。此值是alloydbomni
或postgresql
中的一个。DB_VERSION
,数据库引擎的版本。DB_MEMORY
:分配给数据库集群的内存量,例如5Gi
。DB_CPU
:分配给数据库集群的 CPU 数量,例如2
。DB_DATA_DISK
:分配给数据库集群的空间量,例如10 Gi
。
kubectl --kubeconfig MANAGEMENT_API apply -f db-cluster-create.yaml
连接到数据库
默认情况下,数据库集群仅允许来自用户集群和同一项目的连接。
如需允许从其他项目连接到您项目中的所有数据库集群,请参阅启用跨项目连接。
如需从 GDC 沙盒组织外部的 IP 地址连接到数据库,请按照连接到数据库集群中的说明启用外部连接。
您可以使用 sshuttle
通过本地数据库客户端(例如 psql
)连接到数据库:
前往数据库集群的数据库服务页面的连接部分。本页包含:
- 管理员账号的密码(用户名为
dbsadmin
) - 数据库集群的主端点的主机名和端口号
- 用于连接到集群的
psql
命令(适用于 PostgreSQL 和 AlloyDB Omni 数据库集群) - 用于下载数据库集群的证书授权机构 (CA) 证书的链接
- 管理员账号的密码(用户名为
从 GDC 控制台的数据库服务页面中,在数据库集群的连接部分下载 CA 证书。
配置客户端以使用 CA 证书验证数据库。对于
psql
客户端,请将PGSSLROOTCERT
环境变量设置为证书文件的路径,并将PGSSLMODE
环境变量设置为您的偏好设置:export PGSSLROOTCERT=path/to/accounts_cert.pem export PGSSLMODE="verify-full"
启动安全隧道。如果您有正在运行的
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 沙盒环境的可用区。
在隧道处于活动状态时,在另一个终端中使用
psql
运行命令PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
执行以下变量替换操作:
DB_PASSWORD
:控制台界面中的密码。DB_HOSTNAME
:控制台中的数据库主机名。DB_PORT
:控制台中的数据库端口号。DB_USERNAME
:控制台中的数据库用户名。