工具: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 |
選用。這個執行個體的層級 (或機器類型)。 如未指定:- 對於 ENTERPRISE_PLUS 版必須使用 N2 機器系列。ENTERPRISE 版可使用自訂機器類型名稱,格式如下:db-custom-{CPUs}-{Memory}。 |
dataDiskSizeGb |
選用。資料磁碟大小 (以 GB 為單位)。預設值為 100。 |
availabilityType |
選用。供應量類型。可能的值:* |
tags |
選用。僅限輸入。繫結至這個執行個體的標記鍵和標記值。您必須將地圖中的每個項目表示為: 舉例來說,單一資源可以有下列標記: 包含 |
dataCacheEnabled |
選用。執行個體是否已啟用資料快取。 |
enableGoogleMlIntegration |
選用。如果將此參數設為 true,Cloud SQL 執行個體就能連線至 Vertex AI,將即時預測和深入分析要求傳遞給 AI。預設值為 false。這項異動只會影響 MySQL 適用的 Cloud SQL 和 PostgreSQL 適用的 Cloud SQL 執行個體。 |
Int64Value
| JSON 表示法 |
|---|
{ "value": string } |
| 欄位 | |
|---|---|
value |
int64 值。 |
TagsEntry
| JSON 表示法 |
|---|
{ "key": string, "value": string } |
| 欄位 | |
|---|---|
key |
|
value |
|
BoolValue
| JSON 表示法 |
|---|
{ "value": boolean } |
| 欄位 | |
|---|---|
value |
布林值。 |
輸出內容的結構定義
作業資源。如果作業成功並傳回 Operation 資源,系統只會在資源中填入與作業相關的欄位。
作業
| JSON 表示法 |
|---|
{ "kind": string, "targetLink": string, "status": enum ( |
| 欄位 | |
|---|---|
kind |
這個值一律為 |
targetLink |
|
status |
作業狀態。 |
user |
啟動這項作業的使用者電子郵件地址。 |
insertTime |
這項作業在世界標準時間時區中加入佇列的時間,採用 RFC 3339 格式,例如 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
startTime |
這項作業實際開始的時間,採用 RFC 3339 格式 (時區為世界標準時間),例如 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
endTime |
這項作業完成的時間,採用 RFC 3339 格式 (世界標準時間時區),例如 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
error |
如果這項作業的處理過程中發生錯誤,系統會填入這個欄位。 |
apiWarning |
Admin API 警告訊息。 |
operationType |
作業類型。有效值包括:* |
importContext |
匯入作業的環境 (如適用)。 |
exportContext |
匯出作業的環境 (如適用)。 |
backupContext |
備份作業的背景資訊 (如適用)。 |
preCheckMajorVersionUpgradeContext |
只有在 operation_type 為 PRE_CHECK_MAJOR_VERSION_UPGRADE 時,才會填入這個欄位。PreCheckMajorVersionUpgradeContext 訊息本身包含前置檢查的詳細資料,例如升級的目標資料庫版本和檢查結果 (包括發現的任何警告或錯誤)。 |
name |
可明確識別作業的 ID。您可以使用這個 ID 擷取 Operations 資源,其中包含作業的相關資訊。 |
targetId |
這項作業執行的資源名稱。 |
selfLink |
這項資源的 URI。 |
targetProject |
與這項作業相關的目標執行個體專案 ID。 |
acquireSsrsLeaseContext |
取得 SSRS 租約作業的內容 (如適用)。 |
subOperationType |
選用。根據作業類型執行的子作業。 |
時間戳記
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 欄位 | |
|---|---|
seconds |
代表自 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 |
要還原的備份集是否為條紋。僅適用於 SQL Server 適用的 Cloud SQL。 |
noRecovery |
備份匯入作業是否會還原資料庫,並使用 NORECOVERY 選項。僅適用於 SQL Server 適用的 Cloud SQL。 |
recoveryOnly |
備份匯入要求是否只會將資料庫上線,而不下載 Bak 內容。只有「no_recovery」和「recovery_only」其中一個可以為 true,否則會傳回錯誤。僅適用於 SQL Server 適用的 Cloud SQL。 |
bakType |
備份內容類型,FULL 或 DIFF |
stopAt |
選用。匯入作業應停止的時間戳記。這個時間戳記採用 RFC 3339 格式 (例如 使用 RFC 3339,產生的輸出內容一律會經過 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 |
選用。從 PostgreSQL 適用的 Cloud SQL 執行個體匯入資料的選項。 |
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 |
選用。從 PostgreSQL 適用的 Cloud SQL 執行個體匯出的選項。 |
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 檔案的類型為匯出、FULL 或 DIFF,僅限 SQL Server |
copyOnly |
已淘汰:copy_only 已淘汰。請改用 differential_base |
differentialBase |
備份是否可用做差異備份的基準副本_only 備份無法做為差異備份的基準 |
exportLogStartTime |
選用。交易記錄納入匯出作業的開始時間戳記。世界標準時間的 RFC 3339 格式 (例如 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
exportLogEndTime |
選用。交易記錄納入匯出作業的結束時間戳記。世界標準時間的 RFC 3339 格式 (例如 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
SqlTdeExportOptions
| JSON 表示法 |
|---|
{ "certificatePath": string, "privateKeyPath": string, "privateKeyPassword": string, "name": string } |
| 欄位 | |
|---|---|
certificatePath |
這是必要旗標,TDE 憑證公開金鑰的路徑,格式為 gs://bucketName/fileName。執行個體必須具備 bucket 的寫入權限。僅適用於 SQL Server 執行個體。 |
privateKeyPath |
這是必要旗標,TDE 憑證私密金鑰的路徑,格式為 gs://bucketName/fileName。執行個體必須具備該位置的寫入權限。僅適用於 SQL Server 執行個體。 |
privateKeyPassword |
這是必要旗標,用於加密私密金鑰的密碼。 |
name |
這是必要旗標,憑證名稱。僅適用於 SQL Server 執行個體。 |
BackupContext
| JSON 表示法 |
|---|
{ "backupId": string, "kind": string, "name": string } |
| 欄位 | |
|---|---|
backupId |
備份的 ID。 |
kind |
這個值一律為 |
name |
備份名稱。格式:projects/{project}/backups/{backup} |
PreCheckMajorVersionUpgradeContext
| JSON 表示法 |
|---|
{ "targetDatabaseVersion": enum ( |
| 欄位 | |
|---|---|
targetDatabaseVersion |
這是必要旗標,要升級的目標資料庫版本。 |
preCheckResponse[] |
僅供輸出。預檢作業的回應。 |
kind |
選用。這個值一律為 |
PreCheckResponse
| JSON 表示法 |
|---|
{ "actionsRequired": [ string ], // Union field |
| 欄位 | |
|---|---|
actionsRequired[] |
使用者需要採取的動作。重複使用可復原或重做連續動作。 |
聯集欄位
|
|
message |
要向使用者顯示的訊息。 |
聯集欄位
|
|
messageType |
訊息類型,包括資訊、警告或錯誤。 |
AcquireSsrsLeaseContext
| JSON 表示法 |
|---|
{ // Union field |
| 欄位 | |
|---|---|
聯集欄位
|
|
setupLogin |
用於設定登入的使用者名稱,可連線至資料庫伺服器以進行 SSRS 設定。 |
聯集欄位
|
|
serviceLogin |
用於服務登入的使用者名稱,可連線至 SSRS 設定的報表資料庫。 |
聯集欄位
|
|
reportDatabase |
用於 SSRS 設定的報表資料庫。 |
聯集欄位
|
|
duration |
設定 SSRS 時需要租約期限。 時間長度以秒為單位,最多可有 9 個小數位數,並應以「 |
時間長度
| JSON 表示法 |
|---|
{ "seconds": string, "nanos": integer } |
| 欄位 | |
|---|---|
seconds |
時間範圍的簽署秒數。必須介於 -315,576,000,000 至 +315,576,000,000 之間 (含這兩個值)。注意:這些界限是根據以下計算得出:60 秒/分鐘 * 60 分鐘/小時 * 24 小時/天 * 365.25 天/年 * 10000 年 |
nanos |
時間跨度的小數部分 (以奈秒為單位),可為正數或負數。如果時間長度不到一秒,系統會以 0 |
SqlSubOperationType
| JSON 表示法 |
|---|
{ // Union field |
| 欄位 | |
|---|---|
聯集欄位 sub_operation_details。與作業類型對應的子作業詳細資料。sub_operation_details 只能是下列其中一個設定: |
|
maintenanceType |
要在執行個體上執行的維護作業類型。 |
工具註解
破壞性提示:❌ | 等冪提示:❌ | 唯讀提示:❌ | 開放世界提示:❌