GCP Cloud SQL数据库部署指南
数据库是应用架构的核心组件,GCP Cloud SQL提供全托管的关系型数据库服务,支持MySQL、PostgreSQL和SQL Server。本文将详细讲解如何在GCP上部署生产级Cloud SQL实例。
一、Cloud SQL概述
1.1 引擎支持
| 数据库引擎 | 支持版本 | 适用场景 | |-----------|---------|---------| | MySQL | 5.7, 8.0, 8.4 | Web应用、电商、内容管理 | | PostgreSQL | 13, 14, 15, 16 | 地理信息、复杂查询、JSON处理 | | SQL Server | 2019, 2022 | 企业ERP、.NET应用迁移 |
1.2 与其他云厂商对比
| 特性 | GCP Cloud SQL | 阿里云 RDS | AWS RDS | |------|-------------|-----------|------| | MySQL版本 | 8.4 | 8.0 | 8.0 | | 最大存储 | 10TB | 6TB | 64TB | | 自动备份保留 | 365天 | 730天 | 35天 | | 私有服务连接 | 支持Private Service Connect | 支持VPC Endpoint | 支持PrivateLink | | 跨区域只读副本 | 支持 | 支持 | 支持 | | 免费层 | 有(有限额度) | 无 | 有(12个月) |
二、创建Cloud SQL实例
2.1 控制台创建
- 导航至 SQL → 创建实例
- 选择数据库引擎(以MySQL 8.0为例)
- 配置实例参数:
| 配置项 | 推荐设置(生产环境) | 说明 |
|-------|-------------------|------|
| 实例ID | prod-mysql-primary | 小写字母+连字符 |
| 密码 | 强密码+自动轮转 | 启用密码策略 |
| 数据库版本 | MySQL 8.0 | 最新稳定版 |
| 区域 | asia-east1 (台湾) | 离用户最近 |
| 机型 | db-custom-4-16384 | 4 vCPU, 16GB |
| 存储 | 100GB SSD | 自动扩容开启 |
| 高可用 | 区域级HA | 跨可用区故障切换 |
| 自动备份 | 开启,02:00 UTC | 保留30天 |
| 私有IP | 启用 | 通过VPC内网访问 |
2.2 gcloud CLI创建
gcloud sql instances create prod-mysql-primary \
--database-version=MYSQL_8_0 \
--tier=db-custom-4-16384 \
--region=asia-east1 \
--storage-type=SSD \
--storage-size=100GB \
--storage-auto-increase \
--availability-type=REGIONAL \
--backup-start-time=02:00 \
--enable-point-in-time-recovery \
--network=projects/my-project/global/networks/my-vpc \
--no-assign-ip
三、机型与定价
3.1 共享核心机型
| 机型 | vCPU | 内存 | 月费(asia-east1) | 适用场景 | |------|------|------|------------------|---------| | db-f1-micro | 1 (共享) | 0.6GB | ~$7 | 开发测试 | | db-g1-small | 1 (共享) | 1.7GB | ~$18 | 轻量应用 |
3.2 自定义机型(推荐)
自定义机型允许独立选择vCPU和内存,实现精准的资源匹配:
| 配置 | vCPU | 内存 | 月费(单可用区) | 月费(高可用) | |------|------|------|----------------|--------------| | db-custom-2-8192 | 2 | 8GB | ~$110 | ~$220 | | db-custom-4-16384 | 4 | 16GB | ~$210 | ~$420 | | db-custom-8-32768 | 8 | 32GB | ~$420 | ~$840 | | db-custom-16-65536 | 16 | 64GB | ~$840 | ~$1,680 |
与 腾讯云 的TDSQL相比,Cloud SQL自定义机型在内存配比上更灵活(1:2到1:8均可选),适合工作负载多样化的场景。
3.3 存储定价
| 存储类型 | 价格(/GB/月) | 性能 | 适用 | |---------|-------------|------|------| | SSD | $0.17 | 高IOPS | OLTP生产库 | | HDD | $0.11 | 低IOPS | 日志、归档 |
四、高可用架构
4.1 区域级高可用
Cloud SQL HA采用跨可用区的主从热备架构:
可用区a: 主实例 ←同步复制→ 可用区b: 备实例
↑
自动故障切换
- RPO(恢复点目标)≈ 0(同步复制)
- RTO(恢复时间目标)≈ 60-120秒
- 额外费用:计算费用翻倍,存储不翻倍
4.2 跨区域灾备
通过跨区域只读副本实现灾备:
gcloud sql instances create prod-mysql-dr \
--master-instance-name=prod-mysql-primary \
--region=asia-northeast1 \
--tier=db-custom-4-16384
跨区域复制为异步模式,延迟通常在1秒以内。费用包含跨区域网络流量($0.01/GB)。
4.3 只读副本
为读密集型应用添加只读副本:
gcloud sql instances create prod-mysql-replica1 \
--master-instance-name=prod-mysql-primary \
--region=asia-east1
| 指标 | 说明 | |------|------| | 最大副本数 | MySQL: 10个, PostgreSQL: 20个 | | 复制方式 | 异步 | | 可提升为主 | 是 | | 连接方式 | 需使用副本IP连接 |
五、网络与连接
5.1 私有IP连接(推荐)
通过VPC对等连接,Compute Engine和GKE可直接内网访问Cloud SQL,无需公网暴露:
- 在创建实例时指定VPC网络
- 为Cloud SQL分配私有IP段
- 使用Private Service Connect或VPC对等连接
5.2 Cloud SQL Auth Proxy
最安全的连接方式,无需管理SSL证书或IP白名单:
# 安装Auth Proxy
wget https://dl.google.com/cloudsql/linux/amd64/cloud_sql_proxy
chmod +x cloud_sql_proxy
# 启动代理
./cloud_sql_proxy -instances=my-project:asia-east1:prod-mysql-primary=tcp:3306
应用连接 localhost:3306 即可安全访问数据库。
5.3 连接池配置
| 参数 | 推荐值 | 说明 | |------|-------|------| | max_connections | 4000(4 vCPU实例) | 默认按vCPU1000 | | connect_timeout | 10秒 | 防止连接堆积 | | wait_timeout | 300秒 | 及时释放空闲连接 | | 连接池大小 | CPU核心数2+有效磁盘数 | HikariCP推荐公式 |
六、备份与恢复
6.1 自动备份
- 时间点恢复(PITR):开启binlog保留,支持恢复到任意秒级时间点
- 保留天数:7-365天可配
- 费用:备份存储$0.08/GB/月
6.2 手动备份与导出
# 创建按需备份
gcloud sql backups create --instance=prod-mysql-primary
# 导出SQL到Cloud Storage
gcloud sql export sql prod-mysql-primary gs://my-bucket/backup.sql \
--database=mydb
6.3 恢复操作
# 从备份恢复(创建新实例)
gcloud sql backups restore BACKUP_ID --restore-instance=prod-mysql-restored
# 时间点恢复
gcloud sql instances clone prod-mysql-primary prod-mysql-pitr \
--binlog-file-position=mysql-bin.000123,45678
七、性能优化
7.1 关键参数调优
| 参数 | 默认值 | 推荐值 | 说明 | |------|-------|--------|------| | innodb_buffer_pool_size | 128MB | 物理内存的60-70% | 最关键参数 | | innodb_log_file_size | 48MB | 1-4GB | 减少checkpoint频率 | | innodb_flush_method | fdatasync | O_DIRECT | 避免双缓冲 | | max_connections | 4000 | 按需调整 | 配合连接池 |
7.2 监控指标
在Cloud Monitoring中关注以下核心指标:
database/cpu/utilization— CPU利用率database/disk/utilization— 磁盘使用率database/memory/utilization— 内存使用率database/network/connections— 连接数database/mysql/innodb_buffer_pool_hit_ratio— 缓冲池命中率
八、安全加固
- 仅使用私有IP:禁止公网访问数据库
- Cloud IAM认证:MySQL 8.0+支持IAM数据库认证
- SSL/TLS加密:强制所有连接使用SSL
- 数据加密:默认使用Google管理的加密密钥,也可使用CMEK
- 审计日志:启用Cloud SQL Admin API审计日志
- 维护窗口:设置在业务低峰期
总结
GCP Cloud SQL以全托管、高可用和深度VPC集成,为企业提供了可靠的关系型数据库方案。合理选择机型和存储类型,配合Auth Proxy和安全配置,可以构建生产级的数据库架构。
多云(Duoyun Cloud) 为GCP官方合作伙伴,提供Cloud SQL等资源的专属渠道折扣。通过多云采购GCP资源,可获得比官网更低的价格、中文技术顾问和多云统一管理平台。访问 duoyun.io 了解优惠详情。