このページでは、Cloud SQL インスタンスへのデータのインポートとエクスポートをキャンセルする方法について説明します。このデータは SQL ダンプファイル または CSV ファイル に含まれています。
準備
データのインポートとエクスポートをキャンセルするには、インポートまたはエクスポート オペレーションの ID が必要です。キャンセルするオペレーションを Cloud SQL が認識できるように、この ID を gcloud
または REST API コマンドで指定する必要があります。
オペレーション ID はレスポンスの name
フィールドに返されます。この ID を取得するには、SQL ダンプファイルを使用してエクスポートとインポートを行う をご覧ください。
オペレーション ID は、Cloud SQL インスタンスに対して operations.list
呼び出しを行って確認することもできます。
インポート オペレーションをキャンセルしても、MySQL は必ずしもデータを完全にロールバックするとは限りません。データベースに部分的にインポートされたデータが表示される可能性があります。
インポートまたはエクスポートのオペレーションをキャンセルする
インポートやエクスポートのオペレーションをキャンセルするには、gcloud
または REST API コマンドを使用します。
gcloud
gcloud sql operations cancel
コマンドを使用してオペレーションをキャンセルします。
gcloud sql operations cancel operation-ID
operation-ID 変数は、オペレーションの ID に置き換えます。詳細については、始める前に をご覧ください。
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
project-ID : プロジェクト ID。
operation-ID : インポートまたはエクスポートのオペレーションの ID。詳細については、始める前に をご覧ください。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/project-ID /operations/operation-ID /cancel
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/v1/projects/project-ID /operations/operation-ID /cancel"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-ID /operations/operation-ID /cancel" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
この REST API 呼び出しはレスポンスを返しません。インポート オペレーションやエクスポート オペレーションのキャンセル ステータスを確認する方法については、キャンセル ステータスを確認する をご覧ください。
REST v1beta4
リクエストのデータを使用する前に、次のように置き換えます。
project-ID : プロジェクト ID。
operation-ID : インポートまたはエクスポートのオペレーションの ID。詳細については、始める前に をご覧ください。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/project-ID /operations/operation-ID /cancel
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/v1beta4/projects/project-ID /operations/operation-ID /cancel"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1beta4/projects/project-ID /operations/operation-ID /cancel" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
この REST API 呼び出しはレスポンスを返しません。インポート オペレーションやエクスポート オペレーションのキャンセル ステータスを確認する方法については、キャンセル ステータスを確認する をご覧ください。
キャンセル ステータスを確認する
キャンセルされたインポートまたはエクスポートのオペレーションのステータスを確認するために、gcloud
または REST API コマンドを使用できます。
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
project-ID : プロジェクト ID。
operation-ID : インポートまたはエクスポートのオペレーションの ID。詳細については、始める前に をご覧ください。
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/project-ID /operations/operation-ID
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-ID /operations/operation-ID "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-ID /operations/operation-ID " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-ID ",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2022-11-08T22:12:58.199Z",
"startTime": "2022-11-08T22:13:04.798Z",
"endTime": "2022-11-08T22:13:45.862Z",
"error": {
"kind": "sql#operationErrors",
"errors": [
{
"kind": "sql#operationError",
"code": "CANCEL_SUCCESSFUL",
"message": "Operation successfully cancelled"
}
]
},
"operationType": "EXPORT",
"exportContext": {
"uri": "gs://replica-bucket/source-database.sql",
"kind": "sql#exportContext",
"sqlExportOptions": {
"schemaOnly": false,
"mysqlExportOptions": {
"masterData": 0
}
},
"fileType": "SQL"
},
"name": "operation-ID ",
"targetId": "cloud-sql-instance-display-name ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-ID /operations/operation-ID ",
"targetProject": "project-ID ",
"instanceUid": "cloud-sql-instance-ID "
}
REST v1beta4
リクエストのデータを使用する前に、次のように置き換えます。
project-ID : プロジェクト ID。
operation-ID : インポートまたはエクスポートのオペレーションの ID。詳細については、始める前に をご覧ください。
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1beta4/projects/project-ID /operations/operation-ID
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1beta4/projects/project-ID /operations/operation-ID "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1beta4/projects/project-ID /operations/operation-ID " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
イベントに
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/project-ID ",
"status": "DONE",
"user": "user@example.com",
"insertTime": "2022-11-08T22:12:58.199Z",
"startTime": "2022-11-08T22:13:04.798Z",
"endTime": "2022-11-08T22:13:45.862Z",
"error": {
"kind": "sql#operationErrors",
"errors": [
{
"kind": "sql#operationError",
"code": "CANCEL_SUCCESSFUL",
"message": "Operation successfully cancelled"
}
]
},
"operationType": "EXPORT",
"exportContext": {
"uri": "gs://replica-bucket/source-database.sql",
"kind": "sql#exportContext",
"sqlExportOptions": {
"schemaOnly": false,
"mysqlExportOptions": {
"masterData": 0
}
},
"fileType": "SQL"
},
"name": "operation-ID ",
"targetId": "cloud-sql-instance-display-name ",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/project-ID /operations/operation-ID ",
"targetProject": "project-ID ",
"instanceUid": "cloud-sql-instance-ID "
}
トラブルシューティング
問題
トラブルシューティング
エラー メッセージ: You can't cancel operation [operation-ID] because
this operation isn't in progress.
完了した、失敗した、またはキャンセルされたインポートまたはエクスポートのオペレーションをキャンセルしようとしています。実行中のオペレーションはキャンセルできます。
エラー メッセージ: You can't cancel operation [operation-ID] because
Cloud SQL doesn't support the cancellation of an [operation-type]
operation.
Cloud SQL には、IMPORT
または EXPORT
以外のオペレーション タイプ があるため、オペレーションのキャンセルをサポートしていません。
エラー メッセージ: The [operation-type] operation isn't cancelled. Wait
and retry in a few seconds.
現時点では、Cloud SQL はインポート オペレーションやエクスポート オペレーションをキャンセルできません。しばらくしてから、もう一度お試しください。問題が解決されない場合は、Google Cloud のサポート までご連絡ください。
次のステップ