Cloud SQL 特性

本页面介绍 Cloud SQL 的主要特性和功能。Cloud SQL 适用于 MySQLPostgreSQLSQL Server

Cloud SQL for MySQL

特点

  • 云端全托管式 MySQL 社区版数据库。
  • 第二代实例支持 MySQL 5.6 或 5.7,可提供最高 416 GB 的 RAM 和 30 TB 的数据存储空间,并可根据需要自动增加存储空间大小。
  • 第一代实例支持 MySQL 5.5 或 5.6,可提供最高 16 GB 的 RAM 和 500 GB 的数据存储空间。

  • Google Cloud Console 中创建和管理实例。
  • 实例可在美国、欧盟、亚洲或澳大利亚使用。
  • 无论客户数据是存储在 Google 内部网络、数据库表、临时文件还是备份中,数据均处于加密状态。
  • 支持使用 Cloud SQL 代理或 SSL/TLS 协议建立安全的外部连接。
  • 支持专用 IP 地址(专用服务访问通道)。
  • 数据在多个地区之间复制,具备自动故障转移。
  • 使用 mysqldump 导入和导出数据库,或者导入和导出 CSV 文件。
  • 支持 MySQL 连接协议和标准 MySQL 连接器。
  • 自动和按需备份,以及时间点恢复。
  • 实例克隆。
  • 与 Stackdriver Logging 和 Stackdriver Monitoring 集成。
  • 符合 ISO/IEC 27001

支持的语言

您可以将 Cloud SQL for MySQL 与采用 Java、Python、PHP、Node.js、Go、Ruby 编写的 App Engine 应用搭配使用,还可以将 Cloud SQL for MySQL 与采用标准 MySQL 协议的外部应用搭配使用。

如何连接到 Cloud SQL for MySQL 实例

您可以从以下各类应用连接到 MySQL 的 Cloud SQL 实例:

不支持使用专用 Google 访问通道连接到 Cloud SQL。支持使用专用服务访问通道进行连接。如需了解详情,请参阅服务的专用访问通道选项

Cloud SQL 与标准 MySQL 功能之间的差异

总的来说,Cloud SQL 实例提供的 MySQL 功能与本地托管的 MySQL 实例提供的功能相同。但是,标准 MySQL 实例与 Cloud SQL for MySQL 实例之间存在一些差异。

不受支持的特性

不受支持的语句

发送以下任何类型的 SQL 语句将产生错误,并显示消息“Error 1290: The MySQL server is running with the google option so it cannot execute this statement”(错误 1290:MySQL 服务器正在使用 Google 选项运行,因此无法执行此语句):

  • LOAD DATA INFILE

    请注意,系统支持 LOAD DATA LOCALINFILE 语句。

  • SELECT ... INTO OUTFILE

  • SELECT ... INTO DUMPFILE

  • INSTALL PLUGIN ...

  • UNINSTALL PLUGIN

  • CREATE FUNCTION ... SONAME ...

第二代实例不支持的语句

以下语句不受支持,因为第二代实例使用 GTID 复制:

  • CREATE TABLE ... SELECT 语句
  • 事务内的 CREATE TEMPORARY TABLE 语句
  • 同时更新事务表和非事务表的事务或语句

如需了解详情,请参阅 MySQL 文档

不受支持的函数

  • LOAD_FILE()

不受支持的客户端程序特性

  • mysqlimport(不使用 --local 选项时)。这是因为存在 LOAD DATA INFILE 限制。如果您需要远程加载数据,请使用 Cloud SQL 导入功能

  • mysqldump(使用 --tab 选项或带有 --tab 的选项时)。这是因为没有为实例用户授予 FILE 权限。所有其他 mysqldump 选项均受支持。

  • 如果您要将包含二进制数据的数据库导入 Cloud SQL for MySQL 实例中,必须将 --hex-blob 选项与 mysqldump 搭配使用。

    虽然在使用本地 MySQL 服务器实例和 mysql 客户端时,hex-blob 不是必需的标志,但如果您要将任何包含二进制数据的数据库导入 Cloud SQL 实例中,则需要使用该标志。如需详细了解如何导入数据,请参阅导入数据

  • 并非所有 MySQL 选项和参数都可作为 Cloud SQL 标志进行修改。

    如需申请添加可配置的 Cloud SQL 标志,请使用 Cloud SQL 论坛

  • 第二代实例支持的存储引擎仅有 InnoDB。 如需有关将表从 MyISAM 转换为 InnoDB 方面的帮助,请参阅 MySQL 文档

值得注意的 MySQL 选项

Cloud SQL 使用一组特定的选项运行 MySQL。如果某个选项可能影响应用的工作方式,我们会在此处相应注明,以供您参考。

skip-name-resolve

此标志会影响系统如何解析主机名以进行客户端连接。了解详情

Cloud SQL for PostgreSQL

特性

  • 基于 Cloud SQL 第二代平台的云端全托管式 PostgreSQL 数据库。
  • 可提供高达 416 GB RAM 和 64 个 CPU 的自定义机器类型。
  • 可提供高达 30 TB 的存储空间,并可根据需要自动增加存储空间大小。
  • Google Cloud Console 中创建和管理实例。
  • 实例可在美国、欧盟、亚洲或澳大利亚使用。
  • 无论客户数据是存储在 Google 内部网络、数据库表、临时文件还是备份中,数据均处于加密状态。
  • 支持使用 Cloud SQL 代理或 SSL/TLS 协议建立安全的外部连接。
  • 通过自动故障转移在多个地区之间进行数据复制。
  • 使用 SQL 转储文件导入和导出数据库。
  • 支持 PostgreSQL 客户端服务器协议和标准 PostgreSQL 连接器。
  • 自动备份和按需备份。
  • 实例克隆。
  • 与 Stackdriver Logging 和 Stackdriver Monitoring 集成。
  • 支持多个 PostgreSQL 版本

尚不可用的特性

Cloud SQL 的某些 PostgreSQL 特性尚不可用:

  • 时间点恢复 (PITR)
  • 使用 Cloud Console 或 gcloud 命令行工具以 CSV 格式导入/导出内容。

Cloud SQL 尚不支持以下 Postgres 12 特性:

  • 低级虚拟机 (LLVM) 即时 (JIT) 编译
  • 逻辑复制

支持的扩展程序

Cloud SQL for PostgreSQL 支持许多 PostgreSQL 扩展程序。 如需完整列表,请参阅 PostgreSQL 扩展程序

支持的过程语言

Cloud SQL for PostgreSQL 支持 PL/pgSQL SQL 过程语言

支持的语言

Cloud SQL for PostgreSQL 可用于以 Java、Python、PHP、Node.js、Go 和 Ruby 编写且在柔性环境中运行的 App Engine 应用,以及采用标准 PostgreSQL 客户端-服务器协议的外部应用。

如何连接到 Cloud SQL for PostgreSQL 实例

您可以通过以下方式连接到 Cloud SQL for PostgreSQL 实例:

不支持使用专用 Google 访问权限连接到 Cloud SQL。

Cloud SQL 与标准 PostgreSQL 功能之间的差异

一般来说,Cloud SQL 实例提供的 PostgreSQL 功能与本地托管的 PostgreSQL 实例提供的功能相同。但是,标准 PostgreSQL 实例与 Cloud SQL for PostgreSQL 实例之间存在一些差异。

不受支持的特性

  • 任何需要 SUPERUSER 权限的特性

    此规则不适用于 CREATE EXTENSION 语句,但仅针对受支持的扩展程序

  • 自定义后台工作器

  • Cloud Shell 中的 psql 客户端不支持需要重新连接的操作,例如,使用 \c 命令连接到另一个数据库。

需注意的差异

Cloud SQL for SQL Server

特性

  • 云端全托管式 SQL Server 数据库。
  • 可提供高达 416 GB RAM 和 64 个 CPU 的自定义机器类型。
  • 可提供高达 30 TB 的存储空间,并可根据需要自动增加存储空间大小。
  • Google Cloud Console 中创建和管理实例。
  • 实例可在美国、欧盟、亚洲或澳大利亚使用。
  • 无论客户数据是存储在 Google 内部网络、数据库表、临时文件还是备份中,数据均处于加密状态。
  • 支持使用 Cloud SQL 代理或 SSL/TLS 协议建立安全的外部连接。
  • 使用原生 BAK 和 SQL 文件导入数据库。
  • 使用原生 BAK 文件导出数据库。
  • 自动备份和按需备份。
  • 与 Stackdriver Logging 和 Stackdriver Monitoring 集成。
  • 已启用 SQL Server Agent,以便于执行复制和其他作业。

Cloud SQL 尚不支持的 SQL Server 特性

Cloud SQL 尚不支持的一般特性

  • SQL Server Reporting Services (SSRS),但您可以使用 Compute Engine 或自行管理的环境(从中连接到 Cloud SQL)
  • SQL Server Analysis Services (SSAS),但您可以使用 Compute Engine 或自行管理的环境(从中连接到 Cloud SQL)
  • SQL Server Integration Services (SSIS),但您可以使用 Compute Engine 或自行管理的环境(从中连接到 Cloud SQL)
  • AD 身份验证
  • SP_Configure 设置(但请参阅配置数据库标志
  • Stretch 数据库
  • 向 Microsoft Azure Blob Storage 执行备份
  • 缓冲池扩展程序
  • BULK INSERT 和 OPENROWSET(BULK...) 特性
  • 数据质量服务
  • 数据库日志传送
  • Always On 可用性组
  • 数据库邮件
  • 分布式事务处理协调器 (MSDTC)
  • 文件表
  • FILESTREAM 支持
  • 维护计划
  • 性能数据收集器
  • 基于策略的管理
  • PolyBase
  • 机器学习和 R 服务(需要操作系统访问权限才能安装)
  • 资源调控器
  • SQL Server 审核
  • 服务器级触发器
  • Service Broker 端点
  • T-SQL 端点(所有使用 CREATE ENDPOINT 的操作均不受支持)
  • WCF Data Services

Cloud SQL 尚不支持的的其他操作

  • ADMINISTER BULK OPERATIONS
  • ALTER ANY CREDENTIAL
  • ALTER ANY EVENT NOTIFICATION
  • ALTER ANY EVENT SESSION
  • ALTER ANY SERVER AUDIT
  • ALTER RESOURCES
  • ALTER SETTINGS
  • AUTHENTICATE SERVER
  • CONTROL_SERVER
  • CREATE DDL EVENT NOTIFICATION
  • CREATE ENDPOINT
  • CREATE TRACE EVENT NOTIFICATION
  • EXTERNAL ACCESS ASSEMBLY
  • RESTORE
  • SHUTDOWN
  • CLR ASSEMBLIES

支持的语法

Cloud SQL for SQL Server 支持 Transact-SQL 语法

支持的语言

Cloud SQL for SQL Server 可用于以 Java、Python、PHP、Node.js、Go 和 Ruby 编写且在柔性环境中运行的 App Engine 应用。

如何连接到 Cloud SQL for SQL Server 实例

您可以通过以下方式连接到 Cloud SQL for SQL Server 实例:

不支持使用专用 Google 访问通道连接到 Cloud SQL。