Manage backups for deleted instances Stay organized with collections Save and categorize content based on your preferences.
You can manage backups after an instance is deleted if you elected toretain backups after instance deletion,ortook a final backupprior to deleting your instance. Retained backups include automated andon-demand backups that were taken when the instance was live. When you deleteyour instance, these backups become independent of your instance and are storedat the project level. For more information about how backups work and whichbackups are retained, seeCloud SQL backups overview.
You can use these backups torestore an instanceafter your instance is deleted.
Before you begin
To manage retained backups in a Google Cloud project, you need the followingpermissions:
Console
| Task | Required permissions |
|---|---|
| List backups | cloudsql.backupRuns.list |
| Describe a backup | cloudsql.backupRuns.get |
| Update a backup | cloudsql.backupRuns.update |
| Delete a backup | cloudsql.backupRuns.delete |
gcloud
| Action | Command | Required permissions |
|---|---|---|
| List backups | gcloud sql backups list | cloudsql.backupRuns.list |
| Describe a backup | gcloud sql backups describe | cloudsql.backupRuns.get |
| Update a backup | gcloud sql backups patch | cloudsql.backupRuns.update |
| Delete a backup | gcloud sql backups delete | cloudsql.backupRuns.delete |
REST
| Action | Method | Required permissions |
|---|---|---|
| List backups | backups.listBackup | cloudsql.backupRuns.list |
| Describe a backup | backups.getBackup | cloudsql.backupRuns.get |
| Update a backup | backups.updateBackup | cloudsql.backupRuns.update |
| Delete a backup | backups.deleteBackup | cloudsql.backupRuns.delete |
List all backups for a deleted instance
You can see a list of all retained and final backups for a deleted instancefor your Google Cloud console project. Backups include details such as the name ofthe backup, the instance it belonged to, the type of backup, and the timethe instance was deleted. Since the name of a deleted instance can be reusedafter its been deleted, we recommend using theinstance deletion time field to differentiate which instance a particularbackup belongs to. For a live instance, this field is blank.
Console
In the Google Cloud console, go to theCloud SQL Backups page.
Select your instance'sbackup option:standard tier orenhanced tier.
ClickFilter, thenInstance status, and selectDeleted instance.
This page lists all deleted instances in yourGoogle Cloud console project.
Click the name of the deleted instance you want to view backups for.
This page lists all retained automed and on-demand backups, and thefinal backup, if available, for your deleted instance.
gcloud
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_IDReplace the following:
PROJECT_ID: the ID of your Google Cloud project.
To view details about a specific retained backup, use thegcloud sql backups describecommand:
gcloud sql backups describeBACKUP_NAME--project=PROJECT_IDReplace 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 backups
Use this example to get a list of all retained and final backups associatedwith a Google 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 backup
Use this example to view the details of a retained or final backup. Fora complete list 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 and final backups associatedGoogle 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 or final backup. Fora complete list 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 a retained or final backup after instance deletion
After you delete an instance, you can update the settings for any retained or final backupsassociated with that instance that are stored at the project level. Dependingon the type of backup, the details you can update might be different.
You can update the description and the retention settings of a final backuptaken prior to deleting your instance. However, for on-demand or automatedbackups that are retained after instance deletion, you can only update thedescription of for these backups. For retained backups, the retention settingsare set based on the retention settings of the backups when the instancewas live. For more information, seeRetain backups after instance deletion.
Update a final backup
You can update the retention settings and the description of a final backuptaken before an instance is deleted. To update the backup, do the following:
Console
In the Google Cloud console, go to theCloud SQL Backups page.
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.
For the final backup you want to update, click more actions
, and then do the following:If you want to edit the description of the final backup, clickEdit description.
Enter the description in theDescribe this backup field, thenclickUpdate.
If you want to edit the retention period for the final backup,clickEdit retention period.
Select the date in theRetain backup until field. The retentionperiod can range from 1 to 365 days after instance deletion. Onceyou select the date to retain the backup until, clickUpdate.
gcloud
You'll need thebackup-name of the final backup you want to update.To get thebackup-name, seeList backups for a deleted instance.
To update the retention period or the description of a final backup, usethegcloud sql backups patchcommand and specify either theexpiry-time or thettl-days forthe backup:
gcloud sql backups patchBACKUP_NAME--description=BACKUP_DESCRIPTION--expiry-time=EXPIRY_TIME | --ttl-days=TTL_DAYSReplace the following:
BACKUP_NAME: the name of the final backup.BACKUP_DESCRIPTION: the new description you want toadd to final backup.One of the following:
EXPIRY_TIME: the new date and time for when youwant the final backup to be deleted. The maximum time is 365 daysfrom instance deletion.TTL_DAYS: the number of days you want to retain yourfinal backup. This can range from 1 to 365 days, where the default is30 days.
REST v1
You'll need thebackup-name of the final backup you want to update.To get thebackup-name, seeList backups for a deleted instance.
You can update the description and the retention settings for the finalbackup. The retention setting can be updated using one of the followingmethods:
- Update the retention days for the final backup
- Update the expiration time for the final backup
Update the retention period using retention days
Use this example to update the retention setting of the final backupusing the retention days parameter:
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.
- TTL_DAYS: the retention period of the final backup (from 1 to 365 days). This is known astime to live (TTL). The retention period starts from the current date and time, and the maximum retention period that Cloud SQL allows is 1 year (or 365 days).
HTTP method and URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID?update_mask=ttl_days
Request JSON body:
{ "backup": { expiration: { "ttl_days":TTL_DAYS, } },}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=ttl_days"
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=ttl_days" | 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"}Update the retention period using expiration time
Use this example to update the retention setting of the final backupusing the expiration time parameter:
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.
- DATE_AND_TIME_STAMP: a date-and-time stamp of when Cloud SQL deletes the final backup automatically.
HTTP method and URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups/BACKUP_ID?update_mask=expiry_time
Request JSON body:
{ "backup": { expiration: { "expiry_time":DATE_AND_TIME_STAMP, } },}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=expiry_time"
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=expiry_time" | 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"}Update the description
Use this example to update the description of the final 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
You'll need thebackup-name of the final backup you want to update.To get thebackup-name, seeList backups for a deleted instance.
You can update the description and the retention settings for the finalbackup. The retention setting can be updated using one of the followingmethods:
- Update the retention days for the final backup
- Update the expiration time for the final backup
Update the retention period using retention days
Use this example to update the retention setting of the final backupusing the retention days parameter:
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.
- TTL_DAYS: the retention period of the final backup (from 1 to 365 days). This is known astime to live (TTL). The retention period starts from the current date and time, and the maximum retention period that Cloud SQL allows is 1 year (or 365 days).
HTTP method and URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID?update_mask=ttl_days
Request JSON body:
{ "backup": { expiration: { "ttl_days":TTL_DAYS, } },}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=ttl_days"
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=ttl_days" | 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"}Update the retention period using expiration time
Use this example to update the retention setting of the final backupusing the expiration time parameter:
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.
- DATE_AND_TIME_STAMP: a date-and-time stamp of when Cloud SQL deletes the final backup automatically.
HTTP method and URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups/BACKUP_ID?update_mask=expiry_time
Request JSON body:
{ "backup": { expiration: { "expiry_time":DATE_AND_TIME_STAMP, } },}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=expiry_time"
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=expiry_time" | 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"}Update the description
Use this example to update the description of the final 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"}Update a retained backup
You can update the description of retained on-demand and automated backups.To update the backup, do the following:
Console
In the Google Cloud console, go to theCloud SQL Backups page.
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.
For the retained backup you want to update, click more actions
, and then selectEdit description.In theEdit Backup Description window, update the description foryour backup.
ClickUpdate.
gcloud
To update the description of your retained backup, use thegcloud sql backups patch command:
gcloud sql backups patchBACKUP_NAME--description=BACKUP_DESCRIPTIONReplace 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 backup associated with a deleted instance
You can delete a final or retained on-demand and automated backup for a deletedinstance at any time.
Note: Once you manually delete a retained or final backup, it can't berecovered.Console
In the Google Cloud console, go to theCloud SQL Backups page.
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.
For the backup you want to delete, click more actions
, and then selectDelete.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_NAMEReplace the following:
BACKUP_NAME: the name of your retained backup.
REST v1
Use this example to delete a final or 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
Use this example to delete a final or 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
- Learn more about backing up your data.
- Learn more about restoring data.
- See how to restore your data from a backup.
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-12-17 UTC.