工具:create_instance
启动 Cloud SQL 实例的创建。
- 该工具会返回一个长时间运行的操作。使用
get_operation工具轮询其状态,直到操作完成。 - 实例创建操作可能需要几分钟的时间。使用命令行工具暂停 30 秒,然后再重新检查状态。
- 使用
create_instance工具创建实例后,您可以使用create_user工具为当前登录到项目的用户创建 IAM 用户账号。 data_api_access的值默认设置为ALLOW_DATA_API。此设置可让您使用execute_sql工具和executeSqlAPI 执行 SQL 语句。
除非另有说明,否则新创建的实例会使用开发环境的默认实例配置。
以下是开发环境中实例的默认配置:
{
"tier": "db-perf-optimized-N-2",
"data_disk_size_gb": 100,
"region": "us-central1",
"database_version": "POSTGRES_18",
"edition": "ENTERPRISE_PLUS",
"availability_type": "ZONAL",
"tags": [{"environment": "dev"}]
}
建议在生产环境中为实例采用以下配置:
{
"tier": "db-perf-optimized-N-8",
"data_disk_size_gb": 250,
"region": "us-central1",
"database_version": "POSTGRES_18",
"edition": "ENTERPRISE_PLUS",
"availability_type": "REGIONAL",
"tags": [{"environment": "prod"}]
}
建议为 SQL Server 采用以下实例配置:
{
"tier": "db-perf-optimized-N-8",
"data_disk_size_gb": 250,
"region": "us-central1",
"database_version": "SQLSERVER_2022_STANDARD",
"edition": "ENTERPRISE_PLUS",
"availability_type": "REGIONAL",
"tags": [{"environment": "prod"}]
}
以下示例演示了如何使用 curl 调用 create_instance MCP 工具。
| Curl 请求 |
|---|
curl --location 'https://sqladmin.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_instance", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
针对 MCP 的实例插入请求。
SqlInstancesInsertMcpRequest
| JSON 表示法 |
|---|
{ "project": string, "name": string, "databaseVersion": string, "region": string, "edition": string, "tier": string, "dataDiskSizeGb": string, "availabilityType": string, "tags": { string: string, ... }, "dataCacheEnabled": boolean, "enableGoogleMlIntegration": boolean } |
| 字段 | |
|---|---|
project |
必需。新创建的 Cloud SQL 实例所属的项目的 ID。 |
name |
必需。Cloud SQL 实例的名称。不包括项目 ID。 |
databaseVersion |
可选。数据库引擎类型和版本。默认值为 对于 MySQL,可以是 |
region |
可选。Cloud SQL 实例的地理区域。例如, 如果未指定,则默认值为 |
edition |
可选。实例的版本,可以是 ENTERPRISE 或 ENTERPRISE_PLUS。如果未指定:- 对于 Postgres 和 Mysql,默认值为 ENTERPRISE_PLUS。- 对于 SQL Server,默认值为 ENTERPRISE。 |
tier |
可选。相应实例的层级(或机器类型)。 如果未指定:- 对于 企业 Plus 版需要使用 N2 机器系列。企业版可以使用自定义机器类型名称,格式如下:db-custom-{CPU}-{内存}。 |
dataDiskSizeGb |
可选。数据磁盘大小(以 GB 为单位)。默认值为 100。 |
availabilityType |
可选。可用性类型。可能的值:* |
tags |
可选。仅限输入。绑定到此实例的标记键和标记值。您必须将映射中的每个项表示为: 例如,单个资源可以具有以下标记: 包含一系列 |
dataCacheEnabled |
可选。实例是否已启用数据缓存。 |
enableGoogleMlIntegration |
可选。当此参数设置为 true 时,Cloud SQL 实例可以连接到 Vertex AI,将针对实时预测和数据洞见的请求传递给 AI。默认值为 false。此限制仅适用于 Cloud SQL for MySQL 和 Cloud SQL for PostgreSQL 实例。 |
Int64Value
| JSON 表示法 |
|---|
{ "value": string } |
| 字段 | |
|---|---|
value |
int64 值。 |
TagsEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 字段 | |
|---|---|
key |
|
value |
|
BoolValue
| JSON 表示法 |
|---|
{ "value": boolean } |
| 字段 | |
|---|---|
value |
布尔值。 |
输出架构
Operation 资源。对于返回 Operation 资源的成功操作,仅会在资源中填充与操作相关的字段。
操作
| JSON 表示法 |
|---|
{ "kind": string, "targetLink": string, "status": enum ( |
| 字段 | |
|---|---|
kind |
始终为 |
targetLink |
|
status |
操作的状态。 |
user |
启动此操作的用户的电子邮件地址。 |
insertTime |
此操作已加入队列的时间,采用 UTC 时区,采用 RFC 3339 格式,例如 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
startTime |
此操作真正开始的时间,采用 UTC 时区,采用 RFC 3339 格式,例如 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
endTime |
此操作完成的时间,采用 UTC 时区,采用 RFC 3339 格式,例如 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
error |
如果在处理此操作期间发生错误,系统将填充此字段。 |
apiWarning |
Admin API 警告消息。 |
operationType |
操作的类型。有效值为:* |
importContext |
导入操作的上下文(如果适用)。 |
exportContext |
导出操作的上下文(如果适用)。 |
backupContext |
备份操作的上下文(如果适用)。 |
preCheckMajorVersionUpgradeContext |
仅当 operation_type 为 PRE_CHECK_MAJOR_VERSION_UPGRADE 时,系统才会填充此字段。PreCheckMajorVersionUpgradeContext 消息本身包含相应预检查的详细信息,例如升级的目标数据库版本和检查结果(包括发现的任何警告或错误)。 |
name |
唯一标识操作的标识符。您可以使用此标识符检索包含操作相关信息的操作资源。 |
targetId |
运行相应操作的资源的名称。 |
selfLink |
此资源的 URI。 |
targetProject |
与此操作相关的目标实例的项目 ID。 |
acquireSsrsLeaseContext |
获取 SSRS 租约操作的上下文(如果适用)。 |
subOperationType |
可选。基于操作类型的子操作。 |
时间戳
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 到 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。 |
nanos |
秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。 |
OperationErrors
| JSON 表示法 |
|---|
{
"kind": string,
"errors": [
{
object ( |
| 字段 | |
|---|---|
kind |
始终为 |
errors[] |
处理此操作时遇到的错误的列表。 |
OperationError
| JSON 表示法 |
|---|
{ "kind": string, "code": string, "message": string } |
| 字段 | |
|---|---|
kind |
始终为 |
code |
确定发生的具体错误。 |
message |
有关遇到的错误的其他信息。 |
ApiWarning
| JSON 表示法 |
|---|
{
"code": enum ( |
| 字段 | |
|---|---|
code |
用于标识警告类型的唯一代码。 |
message |
警告消息。 |
region |
REGION_UNREACHABLE 警告的区域名称。 |
ImportContext
| JSON 表示法 |
|---|
{ "uri": string, "database": string, "kind": string, "fileType": enum ( |
| 字段 | |
|---|---|
uri |
Cloud Storage 中导入文件的路径,格式为 |
database |
导入的目标数据库。如果 |
kind |
始终为 |
fileType |
指定 URI 的文件类型。`SQL |
csvImportOptions |
用于以 CSV 格式导入数据的选项。 |
importUser |
此导入操作的 PostgreSQL 用户。仅 PostgreSQL 实例。 |
bakImportOptions |
特定于 SQL Server .BAK 文件的导入参数 |
sqlImportOptions |
可选。用于从 SQL 语句导入数据的选项。 |
tdeImportOptions |
可选。特定于 SQL Server TDE 证书的导入参数 |
SqlCsvImportOptions
| JSON 表示法 |
|---|
{ "table": string, "columns": [ string ], "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| 字段 | |
|---|---|
table |
将导入 CSV 数据的表格。 |
columns[] |
将导入 CSV 数据的列。如果未指定,则数据库表的所有列都将加载 CSV 数据。 |
escapeCharacter |
指定应出现在需要转义的数据字符之前的字符。 |
quoteCharacter |
指定在引用数据值时要使用的引用字符。 |
fieldsTerminatedBy |
指定用于在文件的每行中分隔列的字符。 |
linesTerminatedBy |
用于分隔行。如果某行不包含所有字段,则其余列会设置为默认值。 |
SqlBakImportOptions
| JSON 表示法 |
|---|
{ "encryptionOptions": { object ( |
| 字段 | |
|---|---|
encryptionOptions |
|
striped |
正在恢复的备份集是否为条带化备份集。仅适用于 Cloud SQL for SQL Server。 |
noRecovery |
备份导入是否会使用 NORECOVERY 选项恢复数据库。仅适用于 Cloud SQL for SQL Server。 |
recoveryOnly |
备份导入请求是否只会使数据库联机,而不会下载 Bak 内容。只能将“no_recovery”和“recovery_only”中的一个设置为 true,否则将返回错误。仅适用于 Cloud SQL for SQL Server。 |
bakType |
bak 内容的类型,FULL 或 DIFF |
stopAt |
可选。导入应停止的时间戳。此时间戳采用 RFC 3339 格式(例如, 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
stopAtMark |
可选。导入应停止的标记交易。此字段等同于 STOPATMARK 关键字,仅适用于 Cloud SQL for SQL Server。 |
EncryptionOptions
| JSON 表示法 |
|---|
{ "certPath": string, "pvkPath": string, "pvkPassword": string, "keepEncrypted": boolean } |
| 字段 | |
|---|---|
certPath |
Cloud Storage 中证书 (.cer) 的路径,格式为 |
pvkPath |
Cloud Storage 中证书私钥 (.pvk) 的路径,格式为 |
pvkPassword |
加密私钥的密码 |
keepEncrypted |
可选。导入的文件是否保持加密状态。 |
BoolValue
| JSON 表示法 |
|---|
{ "value": boolean } |
| 字段 | |
|---|---|
value |
布尔值。 |
SqlImportOptions
| JSON 表示法 |
|---|
{
"threads": integer,
"parallel": boolean,
"postgresImportOptions": {
object ( |
| 字段 | |
|---|---|
threads |
可选。用于并行导入的线程数。 |
parallel |
可选。导入是否应并行进行。 |
postgresImportOptions |
可选。用于从 Cloud SQL for PostgreSQL 实例导入数据的选项。 |
Int32Value
| JSON 表示法 |
|---|
{ "value": integer } |
| 字段 | |
|---|---|
value |
int32 值。 |
PostgresImportOptions
| JSON 表示法 |
|---|
{ "clean": boolean, "ifExists": boolean } |
| 字段 | |
|---|---|
clean |
可选。pg_restore 实用程序的 --clean 标志。此标志仅在您启用 Cloud SQL 并行导入文件时适用。 |
ifExists |
可选。pg_restore 实用程序的 --if-exists 标志。此标志仅在您启用 Cloud SQL 并行导入文件时适用。 |
SqlTdeImportOptions
| JSON 表示法 |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| 字段 | |
|---|---|
certificatePath |
必需。TDE 证书公钥的路径,格式为 gs://bucketName/fileName。实例必须拥有文件的读取权限。仅适用于 SQL Server 实例。 |
privateKeyPath |
必需。TDE 证书私钥的路径,格式为 gs://bucketName/fileName。实例必须拥有文件的读取权限。仅适用于 SQL Server 实例。 |
privateKeyPassword |
必需。加密私钥的密码。 |
name |
必需。证书名称。仅适用于 SQL Server 实例。 |
ExportContext
| JSON 表示法 |
|---|
{ "uri": string, "databases": [ string ], "kind": string, "sqlExportOptions": { object ( |
| 字段 | |
|---|---|
uri |
Google Cloud Storage 中将存储导出的文件的路径。URI 的格式为 |
databases[] |
要导出的数据库。 |
kind |
始终为 |
sqlExportOptions |
用于将数据导出为 SQL 语句的选项。 |
csvExportOptions |
用于将数据导出为 CSV 的选项。仅限 |
fileType |
指定 URI 的文件类型。 |
offload |
是否执行无服务器导出。 |
bakExportOptions |
用于将数据导出为 BAK 文件的选项。 |
tdeExportOptions |
可选。特定于 SQL Server TDE 证书的导出参数 |
SqlExportOptions
| JSON 表示法 |
|---|
{ "tables": [ string ], "schemaOnly": boolean, "mysqlExportOptions": { object ( |
| 字段 | |
|---|---|
tables[] |
要从指定数据库导出或已导出的表。如果指定表,请指定一个且仅指定一个数据库。对于 PostgreSQL 实例,您只能指定一个表。 |
schemaOnly |
仅导出架构。 |
mysqlExportOptions |
|
threads |
可选。用于并行导出的线程数。 |
parallel |
可选。导出是否应并行进行。 |
postgresExportOptions |
可选。从 Cloud SQL for PostgreSQL 实例导出数据的选项。 |
MysqlExportOptions
| JSON 表示法 |
|---|
{ "masterData": integer } |
| 字段 | |
|---|---|
masterData |
包含设置复制所需的 SQL 语句的选项。如果设置为 |
PostgresExportOptions
| JSON 表示法 |
|---|
{ "clean": boolean, "ifExists": boolean } |
| 字段 | |
|---|---|
clean |
可选。使用此选项可包含 DROP
SQL 语句。在运行导入操作之前,请使用以下语句删除数据库对象。 |
ifExists |
可选。用于在 clean 生成的每个 DROP 语句中添加 IF EXISTS SQL 语句的选项。 |
SqlCsvExportOptions
| JSON 表示法 |
|---|
{ "selectQuery": string, "escapeCharacter": string, "quoteCharacter": string, "fieldsTerminatedBy": string, "linesTerminatedBy": string } |
| 字段 | |
|---|---|
selectQuery |
用于提取数据的 select 查询。 |
escapeCharacter |
指定应出现在需要转义的数据字符之前的字符。 |
quoteCharacter |
指定在引用数据值时要使用的引用字符。 |
fieldsTerminatedBy |
指定用于在文件的每行中分隔列的字符。 |
linesTerminatedBy |
用于分隔行。如果某行不包含所有字段,则其余列会设置为默认值。 |
SqlBakExportOptions
| JSON 表示法 |
|---|
{
"striped": boolean,
"stripeCount": integer,
"bakType": enum ( |
| 字段 | |
|---|---|
striped |
导出是否应条带化。 |
stripeCount |
用于指定导出时要使用的条带数量的选项。如果留空,且条带化字段的值为 true,则系统会自动选择条带数。 |
bakType |
相应 BAK 文件的类型,可以是 export、FULL 或 DIFF,仅限 SQL Server |
copyOnly |
已弃用:copy_only 已弃用。请改用 differential_base |
differentialBase |
备份是否可用作差分库 copy_only 备份不能用作差分库 |
exportLogStartTime |
可选。导出操作中将包含交易日志的开始时间戳。采用 RFC 3339 格式(例如 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
exportLogEndTime |
可选。导出操作中将包含交易日志的结束时间戳。采用 RFC 3339 格式(例如 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
SqlTdeExportOptions
| JSON 表示法 |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| 字段 | |
|---|---|
certificatePath |
必需。TDE 证书公钥的路径,格式为 gs://bucketName/fileName。实例必须拥有存储桶的写入权限。仅适用于 SQL Server 实例。 |
privateKeyPath |
必需。TDE 证书私钥的路径,格式为 gs://bucketName/fileName。实例必须对该位置具有写入权限。仅适用于 SQL Server 实例。 |
privateKeyPassword |
必需。加密私钥的密码。 |
name |
必需。证书名称。仅适用于 SQL Server 实例。 |
BackupContext
| JSON 表示法 |
|---|
{ "backupId": string, "kind": string, "name": string } |
| 字段 | |
|---|---|
backupId |
备份的标识符。 |
kind |
始终为 |
name |
备份的名称。格式:projects/{project}/backups/{backup} |
PreCheckMajorVersionUpgradeContext
| JSON 表示法 |
|---|
{ "targetDatabaseVersion": enum ( |
| 字段 | |
|---|---|
targetDatabaseVersion |
必需。要升级到的目标数据库版本。 |
preCheckResponse[] |
仅限输出。预检操作的响应。 |
kind |
可选。始终为 |
PreCheckResponse
| JSON 表示法 |
|---|
{ "actionsRequired": [ string ], // Union field |
| 字段 | |
|---|---|
actionsRequired[] |
用户需要采取的操作。使用 repeated 属性表示多个操作。 |
联合字段
|
|
message |
要向用户显示的消息。 |
联合字段
|
|
messageType |
消息类型,是信息、警告还是错误。 |
AcquireSsrsLeaseContext
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段
|
|
setupLogin |
用作设置登录名以连接到数据库服务器进行 SSRS 设置的用户名。 |
联合字段
|
|
serviceLogin |
在 SSRS 设置期间用作服务登录名以连接到报告数据库的用户名。 |
联合字段
|
|
reportDatabase |
用于 SSRS 设置的报告数据库。 |
联合字段
|
|
duration |
设置 SSRS 所需的租约时长。 该时长以秒为单位,最多包含九个小数位,以“ |
时长
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
时间段的带符号秒数。必须介于 -315,576,000,000 到 +315,576,000,000 之间(含边界值)。注意:这些界限是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年 |
nanos |
时间跨度的有符号秒数小数部分(以纳秒为单位)。小于 1 秒的时长用 0 |
SqlSubOperationType
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 sub_operation_details。与操作类型对应的子操作详细信息。sub_operation_details 只能是下列其中一项: |
|
maintenanceType |
要对实例执行的维护类型。 |
工具注释
破坏性提示:❌ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:❌