工具:clone_instance
建立 Cloud SQL 執行個體,做為來源執行個體的副本。
- 這項工具會傳回長時間執行的作業。使用
get_operation工具輪詢狀態,直到作業完成為止。 - 複製作業可能需要幾分鐘才能完成。使用指令列工具暫停 30 秒,然後重新檢查狀態。
以下範例示範如何使用 curl 叫用 clone_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": "clone_instance", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
輸入內容的結構定義
執行個體複製要求。
SqlInstancesCloneRequest
| JSON 表示法 |
|---|
{
"instance": string,
"project": string,
"body": {
object ( |
| 欄位 | |
|---|---|
instance |
這是必要旗標,要複製的 Cloud SQL 執行個體 (來源) ID。這不包括專案 ID。 |
project |
這是必要旗標,來源和複製的 Cloud SQL 執行個體專案 ID。 |
body |
|
InstancesCloneRequest
| JSON 表示法 |
|---|
{
"cloneContext": {
object ( |
| 欄位 | |
|---|---|
cloneContext |
這是必要旗標,包含複製作業的詳細資料。 |
CloneContext
| JSON 表示法 |
|---|
{ "kind": string, "pitrTimestampMs": string, "destinationInstanceName": string, "binLogCoordinates": { object ( |
| 欄位 | |
|---|---|
kind |
這個值一律為 |
pitrTimestampMs |
保留欄位,供日後使用。 |
destinationInstanceName |
這是必要旗標,要建立為副本的 Cloud SQL 執行個體名稱。 |
binLogCoordinates |
如果指定二進位記錄座標,則會識別複製來源執行個體的位置。如未指定,系統會複製來源執行個體,直到最新的二進位記錄座標為止。 |
pointInTime |
如果指定時間戳記,則會指出要複製來源執行個體的時間。 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
allocatedIpRange |
指派給私人 IP Cloud SQL 執行個體的 IP 範圍名稱。例如「google-managed-services-default」。如果設定此參數,系統會在已分配的範圍內建立複製的執行個體 IP。範圍名稱必須符合 RFC 1035。具體來說,名稱長度必須介於 1 至 63 個字元之間,且符合規則運算式 a-z?。保留欄位,供日後使用。 |
databaseNames[] |
(僅限 SQL Server) 只複製來源執行個體中指定的資料庫。如果留空,則複製所有資料庫。 |
聯集欄位
|
|
preferredZone |
選用。將執行個體的副本和時間點復原副本複製到指定區域。如未指定區域,系統會將副本複製到與來源執行個體相同的主要區域。這個欄位適用於所有資料庫類型。 |
聯集欄位
|
|
preferredSecondaryZone |
選用。在指定可用區中複製區域執行個體的副本和時間點復原副本。如未指定,則會複製到與來源執行個體相同的次要區域。這個值不能與 preferred_zone 欄位相同。這個欄位適用於所有資料庫類型。 |
聯集欄位
|
|
sourceInstanceDeletionTime |
用於識別來源執行個體刪除時間的時間戳記。如果刪除這個執行個體,則必須設定時間戳記。 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
聯集欄位
|
|
destinationProject |
選用。要建立複製執行個體的目的地專案 ID。如要執行跨專案複製作業,這個欄位為必填。如未指定,系統會在來源執行個體所在的專案中建立副本。 |
聯集欄位
|
|
destinationNetwork |
選用。虛擬私有雲網路的完整 URI,複製的執行個體會透過私人服務存取權連線至該網路,以取得私人 IP。例如: |
BinLogCoordinates
| JSON 表示法 |
|---|
{ "binLogFileName": string, "binLogPosition": string, "kind": string } |
| 欄位 | |
|---|---|
binLogFileName |
Cloud SQL 執行個體的二進位記錄檔名稱。 |
binLogPosition |
二進位記錄檔中的位置 (位移)。 |
kind |
這個值一律為 |
時間戳記
| 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 之間 (含)。 |
輸出內容的結構定義
作業資源。如果作業成功並傳回 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 |
要在執行個體上執行的維護作業類型。 |
工具註解
破壞性提示:❌ | 等冪提示:❌ | 唯讀提示:❌ | 開放世界提示:❌