工具:import_data
将数据导入 Cloud SQL 实例。
如果文件不是以 gs:// 开头,则假定该文件存储在本地。如果文件是本地文件,则必须先将文件上传到 Cloud Storage,然后才能进行实际的 import_data 调用。如需将文件上传到 Cloud Storage,您可以使用 gcloud 或 gsutil 命令。
在将文件上传到 Cloud Storage 之前,请考虑是要使用现有存储桶,还是在提供的项目中创建新存储桶。
将文件上传到 Cloud Storage 后,实例服务账号必须具有足够的权限才能从 Cloud Storage 存储桶中读取上传的文件。
这可以通过以下方式实现:
- 使用
get_instance工具获取实例服务账号的电子邮件地址。从工具的输出中获取serviceAccountEmailAddress字段的值。 - 向实例服务账号授予所提供 Cloud Storage 存储桶的
storage.objectAdmin角色。使用gcloud storage buckets add-iam-policy-binding等命令或向 Cloud Storage API 发出请求。角色授予和权限传播到 Cloud Storage 中的服务账号可能需要 2 到 7 分钟或更长时间。如果您在更新 IAM 政策后遇到权限错误,请等待几分钟,然后重试。
获得授权后,您就可以导入数据了。我们建议您将可选参数留空,并使用系统默认值。文件类型通常可以通过文件扩展名来确定。例如,如果文件是 SQL 文件,则为 .sql;如果文件是 CSV 文件,则为 .csv。
以下是适用于 MySQL 的 SQL importContext 示例。
{
"uri": "gs://sample-gcs-bucket/sample-file.sql",
"kind": "sql#importContext",
"fileType": "SQL"
}
MySQL 没有 database 参数,因为数据库名称应存在于 SQL 文件中。只能指定一个 URI。除 importContext 之外,无需填写其他字段。
对于 PostgreSQL,database 字段是必填字段。以下是指定了 database 字段的 PostgreSQL importContext 示例。
{
"uri": "gs://sample-gcs-bucket/sample-file.sql",
"kind": "sql#importContext",
"fileType": "SQL",
"database": "sample-db"
}
import_data 工具会返回一个长时间运行的操作。使用 get_operation 工具轮询其状态,直到操作完成。
以下代码示例展示了如何使用 curl 调用 import_data 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": "import_data", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
输入架构
实例导入请求。
SqlInstancesImportRequest
| JSON 表示法 |
|---|
{
"instance": string,
"project": string,
"body": {
object ( |
| 字段 | |
|---|---|
instance |
Cloud SQL 实例 ID。不包括项目 ID。 |
project |
实例所属项目的项目 ID。 |
body |
|
location |
可选。Cloud SQL 实例的区域。 |
InstancesImportRequest
| JSON 表示法 |
|---|
{
"importContext": {
object ( |
| 字段 | |
|---|---|
importContext |
包含导入操作的详情。 |
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 |
Bool 值。 |
时间戳
| 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 之间(含边界值)。 |
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 实例。 |
SqlFileType
| 枚举 | |
|---|---|
SQL_FILE_TYPE_UNSPECIFIED |
文件类型未知。 |
SQL |
包含 SQL 语句的文件。 |
CSV |
CSV 格式的文件。 |
BAK |
|
TDE |
TDE 证书。 |
BakType
| 枚举 | |
|---|---|
BAK_TYPE_UNSPECIFIED |
默认类型。 |
FULL |
完整备份。 |
DIFF |
差分备份。 |
TLOG |
事务日志备份 |
输出架构
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 |
相应操作完成的时间,采用 RFC 3339 格式,以世界协调时间 (UTC) 时区表示,例如 采用 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 消息本身包含该预检查的详细信息,例如升级的目标数据库版本和检查结果(包括发现的任何警告或错误)。 |
startWorkloadCaptureContext |
|
stopWorkloadCaptureContext |
|
startWorkloadReplayContext |
|
stopWorkloadReplayContext |
|
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 |
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 文件的类型将为导出、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 |
可选。始终为 |
联合字段
|
|
maxRuntime |
可选。预检查操作允许的最长运行时。 该时长以秒为单位,最多包含九个小数位,以“ |
PreCheckResponse
| JSON 表示法 |
|---|
{ "actionsRequired": [ string ], // Union field |
| 字段 | |
|---|---|
actionsRequired[] |
用户需要采取的操作。使用 repeated 处理多项操作。 |
联合字段
|
|
message |
要向用户显示的消息。 |
联合字段
|
|
messageType |
消息类型,是信息、警告还是错误。 |
时长
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 字段 | |
|---|---|
seconds |
时间段的带符号秒数。必须介于 -315,576,000,000 到 +315,576,000,000 之间(含边界值)。注意:这些边界的计算公式为:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年 |
nanos |
时间跨度的有符号秒数小数部分(以纳秒为单位)。小于 1 秒的时长用 0 |
StartWorkloadCaptureContext
| JSON 表示法 |
|---|
{ "enableLiveReplay": boolean, // Union field |
| 字段 | |
|---|---|
enableLiveReplay |
可选。如果为 true,则捕获的工作负载会同时在单独的临时 Cloud SQL 实例上执行。此“直播回放”实例会自动预配,并从源实例克隆而来。如果为 false(默认值),则系统只会存储工作负载,而不会进行直播回放。稍后可以使用单独的 |
联合字段
|
|
replayInstance |
可选。如果 |
StopWorkloadCaptureContext
| JSON 表示法 |
|---|
{ "abortLiveReplay": boolean } |
| 字段 | |
|---|---|
abortLiveReplay |
可选。如果为 true,则立即中止并发实时重放,并舍弃所有未重放的流量,同时停止捕获。如果为 false(默认值),则捕获会停止记录新流量,但实时重放会继续执行,直到捕获的流量的整个积压工作都已重放。 |
StartWorkloadReplayContext
| JSON 表示法 |
|---|
{ "replayInstance": string, "workloadId": string } |
| 字段 | |
|---|---|
replayInstance |
必需。执行捕获的工作负载(SQL 查询)的 Cloud SQL 实例的名称,不包括项目 ID(例如 |
workloadId |
仅限输出。要在重放实例上开始执行的工作负载的 ID。每次工作负载捕获都会生成一个格式为 |
AcquireSsrsLeaseContext
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段
|
|
setupLogin |
用作设置登录名以连接到数据库服务器进行 SSRS 设置的用户名。 |
联合字段
|
|
serviceLogin |
要用作服务登录名以连接到报告数据库进行 SSRS 设置的用户名。 |
联合字段
|
|
reportDatabase |
要用于 SSRS 设置的报告数据库。 |
联合字段
|
|
duration |
SSRS 设置所需的租约时长。 该时长以秒为单位,最多包含九个小数位,以“ |
SqlSubOperationType
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 sub_operation_details。与操作类型对应的子操作详细信息。sub_operation_details 只能是下列其中一项: |
|
maintenanceType |
要对实例执行的维护类型。 |
SqlOperationStatus
操作的状态。
| 枚举 | |
|---|---|
SQL_OPERATION_STATUS_UNSPECIFIED |
操作的状态未知。 |
PENDING |
操作已加入队列,但尚未开始。 |
RUNNING |
操作正在运行。 |
DONE |
操作已完成。 |
SqlApiWarningCode
| 枚举 | |
|---|---|
SQL_API_WARNING_CODE_UNSPECIFIED |
来自 Cloud SQL API 的未知或未设置警告类型。 |
REGION_UNREACHABLE |
一个或多个区域无法访问时发出警告。返回的结果集可能不完整。 |
MAX_RESULTS_EXCEEDS_LIMIT |
当用户提供的 maxResults 参数超出限制时发出警告。返回的结果集可能不完整。 |
COMPROMISED_CREDENTIALS |
当用户尝试创建/更新具有之前因公开数据泄露而遭泄露的凭据的用户时,系统会发出警告。 |
INTERNAL_STATE_FAILURE |
操作成功但某些非关键工作流状态失败时发出警告。 |
SqlOperationType
Cloud SQL 操作的类型。
| 枚举 | |
|---|---|
SQL_OPERATION_TYPE_UNSPECIFIED |
操作类型未知。 |
IMPORT |
将数据导入 Cloud SQL 实例。 |
EXPORT |
将数据从 Cloud SQL 实例导出到 Cloud Storage 存储桶。 |
CREATE |
创建新的 Cloud SQL 实例。 |
UPDATE |
更新 Cloud SQL 实例的设置。 |
DELETE |
删除 Cloud SQL 实例。 |
RESTART |
重启 Cloud SQL 实例。 |
BACKUP |
|
SNAPSHOT |
|
BACKUP_VOLUME |
执行实例备份。 |
DELETE_VOLUME |
删除实例备份。 |
RESTORE_VOLUME |
恢复实例备份。 |
INJECT_USER |
在 MySQL 中为 MOB 实例注入特权用户。 |
CLONE |
克隆 Cloud SQL 实例。 |
STOP_REPLICA |
停止 Cloud SQL 读取副本实例上的复制。 |
START_REPLICA |
启动 Cloud SQL 读取副本实例上的复制。 |
PROMOTE_REPLICA |
升级 Cloud SQL 副本实例。 |
CREATE_REPLICA |
创建 Cloud SQL 副本实例。 |
CREATE_USER |
在 Cloud SQL 实例中创建新用户。 |
DELETE_USER |
从 Cloud SQL 实例中删除用户。 |
UPDATE_USER |
更新 Cloud SQL 实例中的现有用户。如果不存在具有指定用户名的用户,则系统会创建新用户。 |
CREATE_DATABASE |
在 Cloud SQL 实例中创建数据库。 |
DELETE_DATABASE |
删除 Cloud SQL 实例中的数据库。 |
UPDATE_DATABASE |
更新 Cloud SQL 实例中的数据库。 |
FAILOVER |
对启用高可用性的 Cloud SQL 故障切换副本执行故障切换。 |
DELETE_BACKUP |
删除通过备份作业运行的备份。 |
RECREATE_REPLICA |
|
TRUNCATE_LOG |
截断 MySQL 中的常规或慢日志表。 |
DEMOTE_MASTER |
将独立实例降级为外部数据库服务器的 Cloud SQL 读取副本。 |
MAINTENANCE |
表示实例当前正在维护中。维护通常会导致实例无法使用 1-3 分钟。 |
ENABLE_PRIVATE_IP |
此字段已弃用,并将在未来版本的 API 中移除。 |
DEFER_MAINTENANCE |
|
CREATE_CLONE |
创建克隆实例。 |
RESCHEDULE_MAINTENANCE |
将维护重新安排到其他时间。 |
START_EXTERNAL_SYNC |
启动 Cloud SQL EM 副本与外部主实例之间的外部同步。 |
LOG_CLEANUP |
从实例的旧数据磁盘中恢复日志。 |
AUTO_RESTART |
自动重启已启用高可用性的 Cloud SQL 数据库以进行自动恢复。 |
REENCRYPT |
使用最新密钥版本重新加密 CMEK 实例。 |
SWITCHOVER |
切换主实例和副本对的角色。目标实例应为副本。 |
UPDATE_BACKUP |
更新备份。 |
ACQUIRE_SSRS_LEASE |
获取用于设置 SQL Server Reporting Services (SSRS) 的租约。 |
RELEASE_SSRS_LEASE |
释放用于设置 SQL Server Reporting Services (SSRS) 的租约。 |
RECONFIGURE_OLD_PRIMARY |
在提升副本操作后重新配置旧的主实例。此操作会执行对旧主实例的提升操作的效果,该操作与对副本执行的提升副本操作异步执行。 |
CLUSTER_MAINTENANCE |
表示实例、其只读副本及其级联副本正在维护中。维护通常先在副本组上启动,然后再在主实例上启动。对于每个实例,维护通常会导致实例无法使用的时长为 1-3 分钟。 |
SELF_SERVICE_MAINTENANCE |
表示实例(及其任何副本)当前正在维护中。此操作通过 SSM 作为自助服务请求发起。维护通常会导致实例无法使用 1-3 分钟。 |
SWITCHOVER_TO_REPLICA |
将主实例切换为副本。此操作作为切换到原始主实例的操作的一部分运行。 |
MAJOR_VERSION_UPGRADE |
更新 Cloud SQL 实例的主要版本。 |
ADVANCED_BACKUP |
已弃用:ADVANCED_BACKUP 已弃用。请改用 ENHANCED_BACKUP。 |
MANAGE_BACKUP |
更改 Cloud SQL 实例的 BackupTier。 |
ENHANCED_BACKUP |
为增强型备份层级 Cloud SQL 实例创建备份。 |
REPAIR_READ_POOL |
修复整个读取池或读取池中的指定读取池节点。 |
CREATE_READ_POOL |
创建 Cloud SQL 读取池实例。 |
PRE_CHECK_MAJOR_VERSION_UPGRADE |
预检主要版本升级操作。 |
SETUP_MIGRATION |
此操作类型表示多步骤设置迁移工作流中的各个步骤:包括配置、复制、切换/回退和数据重新播种,具体取决于操作的意图。 |
CREATE_BLUE_GREEN_DEPLOYMENT |
创建新的蓝绿部署。 |
SWITCHOVER_BLUE_GREEN_DEPLOYMENT |
切换蓝绿部署。 |
DELETE_BLUE_GREEN_DEPLOYMENT |
删除蓝绿部署。 |
SqlFileType
| 枚举 | |
|---|---|
SQL_FILE_TYPE_UNSPECIFIED |
文件类型未知。 |
SQL |
包含 SQL 语句的文件。 |
CSV |
CSV 格式的文件。 |
BAK |
|
TDE |
TDE 证书。 |
BakType
| 枚举 | |
|---|---|
BAK_TYPE_UNSPECIFIED |
默认类型。 |
FULL |
完整备份。 |
DIFF |
差分备份。 |
TLOG |
事务日志备份 |
SqlDatabaseVersion
数据库引擎类型和版本。
| 枚举 | |
|---|---|
SQL_DATABASE_VERSION_UNSPECIFIED |
这是一个未知的数据库版本。 |
MYSQL_5_1 |
数据库版本为 MySQL 5.1。 |
MYSQL_5_5 |
数据库版本为 MySQL 5.5。 |
MYSQL_5_6 |
数据库版本为 MySQL 5.6。 |
MYSQL_5_7 |
数据库版本为 MySQL 5.7。 |
MYSQL_8_0 |
数据库版本为 MySQL 8。 |
MYSQL_8_0_18 |
数据库主要版本为 MySQL 8.0,次要版本为 18。 |
MYSQL_8_0_26 |
数据库主要版本为 MySQL 8.0,次要版本为 26。 |
MYSQL_8_0_27 |
数据库主要版本为 MySQL 8.0,次要版本为 27。 |
MYSQL_8_0_28 |
数据库主要版本为 MySQL 8.0,次要版本为 28。 |
MYSQL_8_0_29 |
数据库主要版本为 MySQL 8.0,次要版本为 29。 |
MYSQL_8_0_30 |
数据库主要版本为 MySQL 8.0,次要版本为 30。 |
MYSQL_8_0_31 |
数据库主要版本为 MySQL 8.0,次要版本为 31。 |
MYSQL_8_0_32 |
数据库主要版本为 MySQL 8.0,次要版本为 32。 |
MYSQL_8_0_33 |
数据库主要版本为 MySQL 8.0,次要版本为 33。 |
MYSQL_8_0_34 |
数据库主要版本为 MySQL 8.0,次要版本为 34。 |
MYSQL_8_0_35 |
数据库主要版本为 MySQL 8.0,次要版本为 35。 |
MYSQL_8_0_36 |
数据库主要版本为 MySQL 8.0,次要版本为 36。 |
MYSQL_8_0_37 |
数据库主要版本为 MySQL 8.0,次要版本为 37。 |
MYSQL_8_0_39 |
数据库主要版本为 MySQL 8.0,次要版本为 39。 |
MYSQL_8_0_40 |
数据库主要版本为 MySQL 8.0,次要版本为 40。 |
MYSQL_8_0_41 |
数据库主要版本为 MySQL 8.0,次要版本为 41。 |
MYSQL_8_0_42 |
数据库主要版本为 MySQL 8.0,次要版本为 42。 |
MYSQL_8_0_43 |
数据库主要版本为 MySQL 8.0,次要版本为 43。 |
MYSQL_8_0_44 |
数据库主要版本为 MySQL 8.0,次要版本为 44。 |
MYSQL_8_0_45 |
数据库主要版本为 MySQL 8.0,次要版本为 45。 |
MYSQL_8_0_46 |
数据库主要版本为 MySQL 8.0,次要版本为 46。 |
MYSQL_8_4 |
数据库版本为 MySQL 8.4。 |
MYSQL_9_7 |
数据库版本为 MySQL 9.7。 |
SQLSERVER_2017_STANDARD |
数据库版本为 SQL Server 2017 Standard。 |
SQLSERVER_2017_ENTERPRISE |
数据库版本为 SQL Server 2017 Enterprise。 |
SQLSERVER_2017_EXPRESS |
数据库版本为 SQL Server 2017 Express。 |
SQLSERVER_2017_WEB |
数据库版本为 SQL Server 2017 Web。 |
POSTGRES_9_6 |
数据库版本为 PostgreSQL 9.6。 |
POSTGRES_10 |
数据库版本为 PostgreSQL 10。 |
POSTGRES_11 |
数据库版本为 PostgreSQL 11。 |
POSTGRES_12 |
数据库版本为 PostgreSQL 12。 |
POSTGRES_13 |
数据库版本为 PostgreSQL 13。 |
POSTGRES_14 |
数据库版本为 PostgreSQL 14。 |
POSTGRES_15 |
数据库版本为 PostgreSQL 15。 |
POSTGRES_16 |
数据库版本为 PostgreSQL 16。 |
POSTGRES_17 |
数据库版本为 PostgreSQL 17。 |
POSTGRES_18 |
数据库版本为 PostgreSQL 18。 |
POSTGRES_19 |
数据库版本为 PostgreSQL 19。 |
POSTGRES_20 |
数据库版本为 PostgreSQL 20。 |
SQLSERVER_2019_STANDARD |
数据库版本为 SQL Server 2019 Standard。 |
SQLSERVER_2019_ENTERPRISE |
数据库版本为 SQL Server 2019 Enterprise。 |
SQLSERVER_2019_EXPRESS |
数据库版本为 SQL Server 2019 Express。 |
SQLSERVER_2019_WEB |
数据库版本为 SQL Server 2019 Web。 |
SQLSERVER_2022_STANDARD |
数据库版本为 SQL Server 2022 Standard。 |
SQLSERVER_2022_ENTERPRISE |
数据库版本为 SQL Server 2022 Enterprise。 |
SQLSERVER_2022_EXPRESS |
数据库版本为 SQL Server 2022 Express。 |
SQLSERVER_2022_WEB |
数据库版本为 SQL Server 2022 Web。 |
SQLSERVER_2025_STANDARD |
数据库版本为 SQL Server 2025 Standard。 |
SQLSERVER_2025_ENTERPRISE |
数据库版本为 SQL Server 2025 Enterprise。 |
SQLSERVER_2025_EXPRESS |
数据库版本为 SQL Server 2025 Express。 |
MessageType
消息类型,可以是信息、警告或需要用户干预的错误。
| 枚举 | |
|---|---|
MESSAGE_TYPE_UNSPECIFIED |
默认未指定的值,可防止出现意外的行为变化。 |
INFO |
无需采取行动的一般信息性消息。 |
WARNING |
可能会影响升级但不会阻碍升级的警告。 |
ERROR |
用户必须先解决这些错误,然后才能继续升级。 |
SqlMaintenanceType
要对实例执行的维护类型。
| 枚举 | |
|---|---|
SQL_MAINTENANCE_TYPE_UNSPECIFIED |
未指定维护类型。 |
INSTANCE_MAINTENANCE |
表示独立实例正在进行维护。该实例可以是主实例,也可以是副本。 |
REPLICA_INCLUDED_MAINTENANCE |
表示主实例及其所有副本(包括级联副本)正在进行维护。系统会先对副本组执行维护,然后再对主实例执行维护。 |
INSTANCE_SELF_SERVICE_MAINTENANCE |
表示独立实例正在进行维护,由自助服务发起。该实例可以是主实例,也可以是副本。 |
REPLICA_INCLUDED_SELF_SERVICE_MAINTENANCE |
表示主实例及其所有副本正在进行维护,由自助服务发起。系统会先对副本组执行维护,然后再对主实例执行维护。 |
工具注释
工具注释会发送给 MCP 客户端,用于描述指定工具的基本风险。大多数客户端会将这些提示视为不可信,但它们可用于决定何时向用户发送确认提示。
除了标题字符串之外,还定义了以下布尔值提示:
readOnlyHint:如果为 true,则该工具不会修改其环境。默认值:false。destructiveHint:如果为 true,则该工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。idempotentHint:如果为 true,则使用相同实参重复调用该工具不会对其环境产生任何额外影响。默认值:false。openWorldHint:如果为 true,则该工具可以与外部实体的“开放世界”进行交互。如果为 false,则该工具只能与内部实体互动。例如,网页搜索工具是开放世界工具,而内存工具不是开放世界工具。
破坏性提示:❌ | 等幂性提示:❌ | 只读提示:❌ | 开放世界提示:❌