This page describes how to schedule and turn off automatic backups, create and manage on-demand backups, and view backups for your Cloud SQL instance.
For more information about how backups work, see Overview of backups.
Creating an on-demand backup
To create an on-demand backup:
Console
- Go to the Cloud SQL Instances page in the Google Cloud Console.
- Click the instance to open its Overview page.
- Select the Backups tab.
- Click Create backup.
- On the Create backup page, add a description, if needed, and click Create.
gcloud
Create the backup:
gcloud sql backups create --async --instance [INSTANCE_NAME]
You can provide a description of the backup using the --description
parameter.
To create a backup in a custom location:
gcloud sql backups create --async --instance [INSTANCE_NAME] --location [BACKUP_LOCATION]
REST v1beta4
Before using any of the request data below, make the following replacements:
- project-id: The project ID
- instance-id: The instance ID
HTTP method and URL:
POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns
To send your request, expand one of these options:
You should receive a JSON response similar to the following:
Scheduling automated backups
To schedule automated backups for an instance:
Console
- Go to the Cloud SQL Instances page in the Google Cloud Console.
- Click the instance to open its Overview page.
- Select the Backups tab.
- Click Edit, next to Settings.
- Choose a window of time for your data to be automatically backed up.
- Click Save.
gcloud
- Edit the instance to specify a backup start time:
gcloud sql instances patch [INSTANCE_NAME] --backup-start-time [HH:MM]
The `backup-start-time` parameter is specified in 24-hour time, in the UTC±00 time zone, and specifies the start of a 4-hour backup window. Backups can start any time during the backup window. - Confirm your changes:
gcloud sql instances describe [INSTANCE_NAME]
UnderbackupConfiguration
confirm that you seeenabled: true
and the time that you specified.
REST v1beta4
You can enable pointInTimeRecovery at the same time by setting
pointInTimeRecoveryEnabled
to true
within the
backupConfiguration
object.
Before using any of the request data below, make the following replacements:
- project-id: The project ID
- instance-id: The instance ID
- start-time The time in the format "HH:MM"
HTTP method and URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Request JSON body:
{ "settings": { "backupConfiguration": { "startTime": "start-time", "enabled": true, "pointInTimeRecoveryEnabled": true } } }
To send your request, expand one of these options:
You should receive a JSON response similar to the following:
Setting a custom location for backups
Only use a custom backup location if required by regulation. If not required, use the default multi-region backup location.
You can use a custom location for on-demand and automatic backups. For a complete list of valid location values, see the Instance locations.
To update an instance with a custom location:
Console
- Go to the Cloud SQL Instances page in the Google Cloud Console.
- Click the instance to open its Overview page.
- Click EDIT.
- Under Configuration options, expand Backups.
- Expand Location options.
- Click Multi-region (default) or Region.
- Select the location from the Location drop-down menu.
- Click Save.
gcloud
For reference information, see gcloud sql instances patch.
gcloud sql instances patch [INSTANCE_NAME] --backup-location=[BACKUP_LOCATION]
REST v1beta4
Use the instance's
settings.backupConfiguration.location
parameter for the
backup location.
Before using any of the request data below, make the following replacements:
- region: The project region
- backup-region: The backup region
- project-id: The project ID
- instance-id: The instance ID
HTTP method and URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Request JSON body:
{ "region": "region" "settings": { "backupConfiguration": { "location": "backup-region", "enabled": true, } } }
To send your request, expand one of these options:
You should receive a JSON response similar to the following:
Viewing backups
The Cloud Console does not show skipped or failed backups in the backup history. To see skipped backups, use the gcloud command line tool or the API.
Console
- Go to the Cloud SQL Instances page in the Google Cloud Console.
- Click the instance to open its Overview page.
- Select the Backups tab to view recent backups, along with creation time and type of backup.
gcloud
- List the backups of the instance:
gcloud sql backups list --instance [INSTANCE_NAME]
You can filter and control the results using the standard list parameters. For a complete list, see the gcloud sql backups list command reference page.
- To list the details of one backup, use the
ID
from the output of thebackups list
command.gcloud sql backups describe [BACKUP_ID] --instance [INSTANCE_NAME]
REST v1beta4
You can also use the APIs Explorer on the BackupRuns:list page to send the REST API request.Before using any of the request data below, make the following replacements:
- project-id: The project ID
- instance-id: The instance ID
HTTP method and URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns
To send your request, expand one of these options:
You should receive a JSON response similar to the following:
Viewing locations for backups
To see the locations of the backups taken for an instance, use backupRuns
:
Console
- Go to the Cloud SQL Instances page in the Google Cloud Console.
- Click the instance to open its Overview page.
- Click the Backups tab.
- In the backups list, the Location column lists the type of location (multi-region or region) and the specific multi-region or region for each backup.
gcloud
For reference information, see gcloud sql instances describe.
- List the backups of the instance:
gcloud sql backups list --instance [INSTANCE_NAME]
You can filter and control the results using the standard list parameters. For a complete list, see the gcloud sql backups list command reference page.
- To list the details of one backup, use the
ID
from the output of thebackups list
command.gcloud sql backups describe [BACKUP_ID] --instance [INSTANCE_NAME]
REST v1beta4
Before using any of the request data below, make the following replacements:
- project-id: The project ID
- instance-id: The instance ID
HTTP method and URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns
To send your request, expand one of these options:
You should receive a JSON response similar to the following:
In the previous examples:REGION
is the region for the original instance.BACKUP_LOCATION
is the location where you want Cloud SQL to store the backup.
Setting automated backup retention
To set the number of automated backups to retain:
Console
- Go to the Cloud SQL Instances page in the Google Cloud Console.
- Click the instance to open its Overview page.
- Select the Backups tab.
- Click Edit Settings.
- Expand Advanced options under Automate backups.
- Enter the Number of backups to store at a time.
- Click Save.
gcloud
Edit the instance to set the number of automated backups to retain:
gcloud sql instances patch instance-name --retained-backups-count num-to-retain
REST
Before using any of the request data below, make the following replacements:
- unit: Optional: The retention unit can either be an integer or a string. The currently supported (and default) values are 1 or "COUNT".
- num-to-retain: The number of automated backups to retain, from 1 to 365
- project-id: The project ID
- instance-id: The instance ID
HTTP method and URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Request JSON body:
{ "settings": { "backupConfiguration": { "backupRetentionSettings": { "retentionUnit": unit, "retainedBackups": "num-to-retain" } } } }
To send your request, expand one of these options:
You should receive a JSON response similar to the following:
Deleting a backup
You can delete automated and on-demand backups.
Deleting a backup might not free up as much space as the size of the backup. This is because backups are incremental, so deleting an older backup might transfer some of its contents to a more recent backup to preserve the integrity of the newer backup.Console
- Go to the Cloud SQL Instances page in the Google Cloud Console.
- Click the instance to open its Overview page.
- Select the Backups tab.
- Click more actions
for the backup you want to delete.
- Select Delete.
- In the Delete backup window, type
Delete
into the field and click Delete.
gcloud
Delete a backup of a Cloud SQL instance:
gcloud beta sql backups delete [BACKUP_ID] --instance [INSTANCE_NAME]
For a complete list of parameters, see the gcloud beta sql backups delete command reference page.
REST v1beta4
- List the backups to obtain the ID for the backup you want to delete:
Before using any of the request data below, make the following replacements:
- project-id: The project ID
- instance-id: The instance ID
HTTP method and URL:
GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns
To send your request, expand one of these options:
You should receive a JSON response similar to the following:
-
Delete the backup:
Before using any of the request data below, make the following replacements:
- project-id: The project ID
- instance-id: The instance ID
- backup-id: The backup ID
HTTP method and URL:
DELETE https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns/backup-id
To send your request, expand one of these options:
You should receive a JSON response similar to the following:
Disabling automated backups
To disable automated backups for an instance:
Console
- Go to the Cloud SQL Instances page in the Google Cloud Console.
- Click the instance to open its Overview page.
- Select the Backups tab.
- Click Manage automated backups
- Uncheck Automate backups.
- Click Save.
gcloud
Edit the instance to disable backups:
gcloud sql instances patch [INSTANCE_NAME] --no-backup
REST v1beta4
Before using any of the request data below, make the following replacements:
- project-id: The project ID
- instance-id: The instance ID
HTTP method and URL:
PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Request JSON body:
{ "settings": { "backupConfiguration": { "enabled": false, "pointInTimeRecoveryEnabled": false } } }
To send your request, expand one of these options:
You should receive a JSON response similar to the following:
Point-in-time recovery
Learn more about point-in-time recovery.
What's next
- Learn more about backing up your data.
- Learn more about restoring data.
- See how to restore your data from a backup.