Manage retained backups

MySQL  |  PostgreSQL  |  SQL Server

This page describes how to enable, disable, and manage retained backups foryour Cloud SQL instances.

Retained backups are backups that are retained after an instance is deleted.These backups include on-demand and automated backups that are created when aninstance was live. For more information on how retained backups work, seeRetained backups.

You can enable retained backups at any time for an instance byediting the instance. You can alsorestore a retained backup to a new or existing instance.

Before you begin

To manage retained backups in a Google Cloud project, you need the followingpermissions:

TaskRequired permissions
List backupscloudsql.backupRuns.list
Describe a backupcloudsql.backupRuns.get
Update a backupcloudsql.backupRuns.update
Delete a backupcloudsql.backupRuns.delete

gcloud CLI

To manage retained backups in a Google Cloud project, you need the following permissions:

ActionCommandRequired permissions
List backupsgcloud sql backups listcloudsql.backupRuns.list
Describe a backupgcloud sql backups describecloudsql.backupRuns.get
Update a backupgcloud sql backups patchcloudsql.backupRuns.update
Delete a backupgcloud sql backups deletecloudsql.backupRuns.delete

REST

To manage retained backups in a Google Cloud project, you need the following permissions:

ActionMethodRequired permissions
List backupsbackups.listBackupcloudsql.backupRuns.list
Describe a backupbackups.getBackupcloudsql.backupRuns.get
Update a backupbackups.updateBackupcloudsql.backupRuns.update
Delete a backupbackups.deleteBackupcloudsql.backupRuns.delete

Enable retained backups for an instance

You can enable retained backups in theData Protection configurationoptions for an instance when youcreate an instance or when youedit an existing instance.

View a list of all retained backups

You can see a list of all retained backups for your Google Cloud project usingGoogle Cloud console,gcloud CLI, or the Cloud SQL API.Backups will include details such as the name of the backup, the instance itbelongs to, the type of backup, and the time the instance was deleted. Since thename of a deleted instance can be reused, we recommend using theinstance deletion time field to differentiate which instance a particularbackup belongs to. For a live instance, this field is blank.

Console

  1. In the Google Cloud console, go to theCloud SQL Backups page.

    Go to Cloud SQL Backups

  2. Click the name of the deleted instance you want to view backups for.

    You will see a list of all retained and final backups, and theirdetails for the deleted instance.

gcloud

  1. To get a list of all backups that are associated with a Google Cloud project,use thegcloud sql backups listcommand:

    gcloud sql backups list--project=PROJECT_ID

    Replace the following:

    • PROJECT_ID: the ID of your Google Cloud project.
  2. To view details about a specific retained backup, use thegcloud sql backups describecommand:

    gcloud sql backups describeBACKUP_NAME--project=PROJECT_ID

    Replace the following:

    • BACKUP_NAME: the name of your retained backup.
    • PROJECT_ID: the ID of your Google Cloud project.

REST v1

Get a list of all retained backs

Use this example to get a list of all retained backups associated with aGoogle Cloud project. For a complete list of parameters for this call, seethebackups.listBackupspage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID

HTTP method and URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$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/backups" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{      "name": "projects/PROJECT_ID/backups/BACKUP_ID",      "kind": "sql#backup",      "state": "SUCCESSFUL",      "backupInterval": {            "startTime": "2020-01-21T11:25:33.858Z",            "endTime": "2020-01-21T11:26:18.663Z",       }      "type": "FINAL",      "instance": "INSTANCE_ID",      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID",      "location": "us"      "description": "This is a final backup.",      "backupKind": "SNAPSHOT",      "dataDiskSizeGB": "10",      "expiryTime": "2020-01-30T11:26:18.663Z",      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",      "satisfies_pzs": false,      "satisfies_pzi": false}

View details for a retained backup

Use this example to view the details of a retained backup. For a completelist of parameters for this call, see thebackup.getBackuppage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID.
  • BACKUP_ID: the backup ID. You obtain this ID from the output of running the previous call.

HTTP method and URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$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/backups/BACKUP_ID" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{      "name": "projects/PROJECT_ID/backups/BACKUP_ID",      "kind": "sql#backup",      "status": "SUCCESSFUL",      "backupInterval": {            "startTime": "2020-01-21T11:25:33.858Z",            "endTime": "2020-01-21T11:26:18.663Z",         }      "type": "FINAL",      "instance": "INSTANCE_ID",      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID",      "location": "us"      "description": "final backup",      "backupKind": "SNAPSHOT",      "dataDiskSizeGB": "10",      "expiryTime": "2020-01-30T11:26:18.663Z",      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",      "satisfies_pzs": false,      "satisfies_pzi": false    }

REST v1beta4

Get a list of all retained backs

Use this example to get a list of all retained backups associated with aGoogle Cloud project. For a complete list of parameters for this call, seethebackups.listBackupspage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID

HTTP method and URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{      "name": "projects/PROJECT_ID/backups/BACKUP_ID",      "kind": "sql#backup",      "state": "SUCCESSFUL",      "backupInterval": {            "startTime": "2020-01-21T11:25:33.858Z",            "endTime": "2020-01-21T11:26:18.663Z",       }      "type": "FINAL",      "instance": "INSTANCE_ID",      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID",      "location": "us"      "description": "This is a final backup.",      "backupKind": "SNAPSHOT",      "dataDiskSizeGB": "10",      "expiryTime": "2020-01-30T11:26:18.663Z",      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",      "satisfies_pzs": false,      "satisfies_pzi": false}

View details for a retained backup

Use this example to view the details of a retained backup. For a completelist of parameters for this call, see thebackups.getBackuppage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID.
  • BACKUP_ID: the backup ID. You obtain this ID from the output of running the previous call.

HTTP method and URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{      "name": "projects/PROJECT_ID/backups/BACKUP_ID",      "kind": "sql#backup",      "status": "SUCCESSFUL",      "backupInterval": {            "startTime": "2020-01-21T11:25:33.858Z",            "endTime": "2020-01-21T11:26:18.663Z",         }      "type": "FINAL",      "instance": "INSTANCE_ID",      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID",      "location": "us"      "description": "final backup",      "backupKind": "SNAPSHOT",      "dataDiskSizeGB": "10",      "expiryTime": "2020-01-30T11:26:18.663Z",      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",      "satisfies_pzs": false,      "satisfies_pzi": false    }

Update the description of a retained backup

You can update the description of a retained backup at any timeto make it easier to identify your backups.

Console

  1. In the Google Cloud console, go to theCloud SQL Backups page.

    Go to Cloud SQL Backups

  2. Click the name of the deleted instance you want to view backups for.

    You will see a list of all retained and final backups, and theirdetails for the deleted instance.

  3. For the retained backup you want to update, click more actionsMore actions icon.,and then selectEdit description.

  4. In theEdit Backup Description window, update the description foryour backup.

  5. ClickUpdate.

gcloud

To update the description of your retained backup, use thegcloud sql backups patch command:

gcloud sql backups patchBACKUP_NAME--description=BACKUP_DESCRIPTION

Replace the following:

  • BACKUP_NAME: the name of your retained backup.
  • BACKUP_DESCRIPTION: the new description you want toadd to your retained backup.

REST v1

Get a list of all retained backs

Use this example to get a list of all retained backups associated with aGoogle Cloud project. For a complete list of parameters for this call, seethebackups.listBackupspage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID

HTTP method and URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$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/backups" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{      "name": "projects/PROJECT_ID/backups/BACKUP_ID",      "kind": "sql#backup",      "state": "SUCCESSFUL",      "backupInterval": {            "startTime": "2020-01-21T11:25:33.858Z",            "endTime": "2020-01-21T11:26:18.663Z",       }      "type": "FINAL",      "instance": "INSTANCE_ID",      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID",      "location": "us"      "description": "This is a final backup.",      "backupKind": "SNAPSHOT",      "dataDiskSizeGB": "10",      "expiryTime": "2020-01-30T11:26:18.663Z",      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",      "satisfies_pzs": false,      "satisfies_pzi": false}

Update the description

Use this example to update the description of the retained backup. For acomplete list of parameters for this call, see thebackups.updateBackuppage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID.
  • BACKUP_ID: the backup ID. You obtain this ID from the output of running the previous call.
  • DESCRIPTION: the updated description for the final backup.

HTTP method and URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID?update_mask=description

Request JSON body:

{        "backup": {            "description":DESCRIPTION,         },}

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Save the request body in a file namedrequest.json, and execute the following command:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID?update_mask=description"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Save the request body in a file namedrequest.json, and execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID?update_mask=description" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{      "kind": "sql#operation",      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID",      "status": "DONE",      "user": "user@example.com",      "insertTime": "2024-02-15T00:10:22.078Z",      "operationType": "UPDATE_BACKUP",      "name": "OPERATION_ID",      "targetId": "BACKUP_ID",      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",      "targetProject": "PROJECT_ID"}

REST v1beta4

Get a list of all retained backs

Use this example to get a list of all retained backups associated with aGoogle Cloud project. For a complete list of parameters for this call, seethebackups.listBackupspage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID

HTTP method and URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{      "name": "projects/PROJECT_ID/backups/BACKUP_ID",      "kind": "sql#backup",      "state": "SUCCESSFUL",      "backupInterval": {            "startTime": "2020-01-21T11:25:33.858Z",            "endTime": "2020-01-21T11:26:18.663Z",       }      "type": "FINAL",      "instance": "INSTANCE_ID",      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID",      "location": "us"      "description": "This is a final backup.",      "backupKind": "SNAPSHOT",      "dataDiskSizeGB": "10",      "expiryTime": "2020-01-30T11:26:18.663Z",      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",      "satisfies_pzs": false,      "satisfies_pzi": false}

Update the description

Use this example to update the description of the retained backup. For acomplete list of parameters for this call, see thebackups.updateBackuppage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID.
  • BACKUP_ID: the backup ID. You obtain this ID from the output of running the previous call.
  • DESCRIPTION: the updated description for the final backup.

HTTP method and URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID?update_mask=description

Request JSON body:

{        "backup": {            "description":DESCRIPTION,         },}

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Save the request body in a file namedrequest.json, and execute the following command:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID?update_mask=description"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Save the request body in a file namedrequest.json, and execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID?update_mask=description" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{      "kind": "sql#operation",      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID",      "status": "DONE",      "user": "user@example.com",      "insertTime": "2024-02-15T00:10:22.078Z",      "operationType": "UPDATE_BACKUP",      "name": "OPERATION_ID",      "targetId": "BACKUP_ID",      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",      "targetProject": "PROJECT_ID"}

Delete a retained backup

You can delete a retained backup using the Google Cloud console,gcloud CLI,or the Cloud SQL API.

Note: Once you manually delete a retained backup, it can't be recovered.

Console

  1. In the Google Cloud console, go to theCloud SQL Backups page.

    Go to Cloud SQL Backups

  2. Click the name of the deleted instance you want to view backups for.

    You will see a list of all retained and final backups, and theirdetails for the deleted instance.

  3. For the retained backup you want to delete, click more actionsMore actions icon.,and then selectDelete.

  4. In theDelete backup window, enter the name of deleted instance,and then clickDelete.

gcloud

To delete a retained backup, use thegcloud sql backups deletecommand:

gcloud sql backups deleteBACKUP_NAME

Replace the following:

  • BACKUP_NAME: the name of your retained backup.

REST v1

Get a list of all retained backs

Use this example to get a list of all retained backups associated with aGoogle Cloud project. For a complete list of parameters for this call, seethebackups.listBackupspage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID

HTTP method and URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$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/backups" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{      "name": "projects/PROJECT_ID/backups/BACKUP_ID",      "kind": "sql#backup",      "state": "SUCCESSFUL",      "backupInterval": {            "startTime": "2020-01-21T11:25:33.858Z",            "endTime": "2020-01-21T11:26:18.663Z",       }      "type": "FINAL",      "instance": "INSTANCE_ID",      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID",      "location": "us"      "description": "This is a final backup.",      "backupKind": "SNAPSHOT",      "dataDiskSizeGB": "10",      "expiryTime": "2020-01-30T11:26:18.663Z",      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",      "satisfies_pzs": false,      "satisfies_pzi": false}

Delete a retained backup

Use this example to delete a retained backup. For acomplete list of parameters for this call, see thebackups.deleteBackuppage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID.
  • BACKUP_ID: the backup ID. You obtain this ID from the output of running the previous call.

HTTP method and URL:

DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{  "kind": "sql#operation",  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID",  "status": "PENDING",  "user": "user@example.com",  "insertTime": "2020-01-21T22:43:37.981Z",  "operationType": "DELETE_BACKUP",  "name": "OPERATION_ID",  "targetId": "BACKUP_ID",  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",  "targetProject": "PROJECT_ID"}

REST v1beta4

Get a list of all retained backs

Use this example to get a list of all retained backups associated with aGoogle Cloud project. For a complete list of parameters for this call, seethebackups.listBackupspage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID

HTTP method and URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{      "name": "projects/PROJECT_ID/backups/BACKUP_ID",      "kind": "sql#backup",      "state": "SUCCESSFUL",      "backupInterval": {            "startTime": "2020-01-21T11:25:33.858Z",            "endTime": "2020-01-21T11:26:18.663Z",       }      "type": "FINAL",      "instance": "INSTANCE_ID",      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID",      "location": "us"      "description": "This is a final backup.",      "backupKind": "SNAPSHOT",      "dataDiskSizeGB": "10",      "expiryTime": "2020-01-30T11:26:18.663Z",      "backup_run": "projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns/BACKUP_RUN_ID",      "satisfies_pzs": false,      "satisfies_pzi": false}

Delete a retained backup

Use this example to delete a retained backup. For acomplete list of parameters for this call, see thebackups.deleteBackuppage.

Before using any of the request data, make the following replacements:

  • PROJECT_ID: the project ID.
  • BACKUP_ID: the backup ID. You obtain this ID from the output of running the previous call.

HTTP method and URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID

To send your request, expand one of these options:

curl (Linux, macOS, or Cloud Shell)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID"

PowerShell (Windows)

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID" | Select-Object -Expand Content

You should receive a JSON response similar to the following:

Response

{  "kind": "sql#operation",  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID",  "status": "PENDING",  "user": "user@example.com",  "insertTime": "2020-01-21T22:43:37.981Z",  "operationType": "DELETE_BACKUP",  "name": "OPERATION_ID",  "targetId": "BACKUP_ID",  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",  "targetProject": "PROJECT_ID"}

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-07-14 UTC.