用途
GCP Cloud SQL 技能用于在 Google Cloud 上部署和管理全托管关系型数据库,支持 PostgreSQL、MySQL 和 SQL Server。它适合以下场景:运行生产级关系型数据库而无需自行管理复制、补丁和备份;将本地 PostgreSQL 或 MySQL 工作负载迁移到托管服务;需要 ACID 事务、关系型模式和 SQL 查询支持的应用;以及需要带区域故障转移的自动化高可用工作负载。
前置条件
使用前需要安装并认证 Google Cloud SDK(gcloud),启用 Cloud SQL Admin API 和 Service Networking API,并具备 roles/cloudsql.admin IAM 角色以进行完整管理。启用命令为:
gcloud services enable sqladmin.googleapis.com servicenetworking.googleapis.com
主要能力
实例层级
技能提供实例层级参考,包括 db-f1-micro(共享 vCPU、0.6 GB 内存,仅用于开发/测试)、db-g1-small(共享 vCPU、1.7 GB,低流量预发布)、db-custom-2-8192(2 vCPU、8 GB,小型生产)、db-custom-4-16384(4 vCPU、16 GB,中型生产)、db-custom-8-32768(8 vCPU、32 GB,高流量生产)。
创建 PostgreSQL 实例
可通过 gcloud 命令创建 PostgreSQL 实例,指定数据库版本、层级、区域、可用性类型、存储类型与大小、自动扩容、备份时间、时间点恢复、备份保留数量、维护窗口、数据库标志、root 密码和标签。随后可创建数据库和用户。
创建 MySQL 实例
类似地可创建 MySQL 实例,支持 bin log、慢查询日志等数据库标志配置。
私有 IP 配置
技能说明如何分配 IP 范围并创建私有连接,然后创建仅使用私有 IP 的实例(--no-assign-ip)。
只读副本
支持创建同区域副本和跨区域副本用于灾难恢复,并可将副本提升为独立实例。
备份与恢复
支持创建备份、列出备份、时间点恢复(通过克隆)、导出和导入 SQL 文件到 Cloud Storage。
Cloud SQL Auth Proxy
提供下载和运行 Cloud SQL Auth Proxy 的命令,支持 TCP 端口和 Unix socket(用于 Kubernetes sidecar 模式),并支持自动 IAM 认证。
连接方式
技能总结四种连接方式:公共 IP + SSL(开发/测试,需配置授权网络)、Cloud SQL Auth Proxy(GCE/GKE 生产,需 roles/cloudsql.client 的服务账号)、私有 IP(VPC 原生应用,需配置 VPC 对等互连)、Cloud SQL Connector 库(应用层集成,需服务账号凭据)。
Terraform 配置
提供 Terraform 资源示例,包括数据库实例、数据库、用户、只读副本、私有 IP 地址和 VPC 对等连接,涵盖备份配置、IP 配置、维护窗口、数据库标志和删除保护。
常用操作
包括列出实例、描述实例、修改存储大小、修改数据库标志、重启实例等。
使用方式
通过 gcloud 命令行或 Terraform 进行实例的创建、配置和管理。创建实例时需指定数据库版本、层级、区域、可用性类型、存储、备份、维护窗口等参数。连接时根据场景选择公共 IP、Auth Proxy、私有 IP 或 Connector 库。
适用场景
生产关系型数据库托管、本地数据库迁移、需要 ACID 事务和 SQL 查询的应用、需要区域故障转移的高可用工作负载。
限制与故障排查
技能提供常见问题排查表,包括:公共 IP 连接被拒(IP 不在授权网络)、SSL 必需错误(客户端未使用 SSL)、复制延迟高(副本层级过小或主库写入过重)、实例运行但缓慢(CPU/内存不足)、代理返回 ECONNREFUSED(连接名称错误或缺少 IAM 角色)、无法创建私有 IP 实例(VPC 对等未建立)、备份恢复失败(版本不兼容)。
相关技能
包括 gcp-networking(VPC 和私有服务连接)、terraform-gcp(基础设施即代码)、gcp-gke(通过 sidecar 代理连接 Kubernetes 工作负载)、gcp-compute(在 Compute Engine 上运行连接 Cloud SQL 的应用)。