This page describes how to restore your instance from a backup and perform
a point-in-time recovery of an instance.
For information, best practices, and requirements for restore operations or
point-in-time recovery, see Overview of restoring an instance .
Restore from an on-demand or automated backup 
You can use an on-demand or automated backup for the following scenarios:
Restore to a different instance in the same project 
Restore to the same instance from where the backup is taken 
Restore to a different instance in a different project or region 
 
If you have point-in-time recovery (PITR)  enabled, then you can recover your instance to a specific point in time, based on the log retention settings for your instance.
Note:  Point-in-time recovery is supported only for a new instance within the same project and region. Restore to a different instance 
When you restore data from a backup to a different instance, you update the data on
the target instance to the state of the source instance when you
took the backup. For more information, see
General tips about performing a restore  and
Tips and requirements for restoring to a different instance .
If you need a list of backups for the project and can't view them on the
instance overview page due to an outage, you can use the backupRuns.list-). The wildcard option retrieves a list of all backups
across all instances in the project. For more information, see
Viewing backups during an outage .
Warning : The restore process overwrites all of the
current data on the instance, including previous point-in-time recovery (PITR)
logs. Previous on-demand and automatic backups on the instance are retained.
  
  Console 
  
    
In the Google Cloud console, go to the Cloud SQL Instances  page.
Go to Cloud SQL Instances 
 
    
      If the target instance has any read replicas, then
      use the more actions menu  
    
To open the Overview  page of an instance, click the instance name.
 
    From the SQL navigation menu, select Backups . 
    Find the backup that you want to restore from, and then click Restore . 
    In the Restore an instance from a backup  page, confirm that you selected the correct backup in Review backup details . 
   In Choose restore destination , select Overwrite an
       existing instance . 
   From the Instance to be overwritten  menu, select the instance you want
       to use for the restore. The instance that you select and all of its data are overwritten. 
  To confirm your selection, enter the name of the instance to be overwritten in the Destination instance ID  field. 
    To start the restore process, click Restore . 
    To check the status of the restore operation, go to the
    Operations  page for the instance. 
    After the restore operation completes, recreate any replicas that you deleted
    in this procedure. 
   
   
  
  gcloud 
   
   
   To determine if the target  instance has any read replicas, use the gcloud sql instances describe
gcloud  sql  instances  describe  TARGET_INSTANCE_NAME  
  Note any instances that are listed in the replicaNames column.
  
   To delete all replicas, use the gcloud sql instances delete
gcloud  sql  instances  delete  REPLICA_NAME  Repeat for each replica.
   
  
   To list the backups for the source instance, use the gcloud sql backups list
gcloud  sql  backups  list  \ 
--instance  SOURCE_INSTANCE_NAME   
   
   Find the backup that you want to use and record its ID value.
   Note:  Select a backup that has a status of
     SUCCESSFUL.
    
    To restore the target instance from the backup, use the gcloud sql backups restore
gcloud  sql  backups  restore  BACKUP_ID   \ 
--restore-instance= TARGET_INSTANCE_NAME   \ 
--backup-instance= SOURCE_INSTANCE_NAME   
    
    After the restore operation completes, recreate any replicas that you deleted in this procedure.
     
    
   
REST v1 
    
    To determine if the instance has any read replicas and to get the IDs of these replicas, list all replicas for the target  instance.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
  "replicaNames": [
    "REPLICA_NAME "
  ]
}
  
    
    Delete all replicas.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDREPLICA_ID : the replica ID 
  HTTP method and URL:
  
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/REPLICA_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X DELETE \PROJECT_ID /instances/REPLICA_ID "  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/REPLICA_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 /instances/REPLICA_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "REPLICA_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 
       Repeat for each replica.
       
      
     To get the ID of the
         backup that you want to use, list the backups for the source  instance.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  project-id : The project IDinstance-id : The instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \project-id /instances/instance-id /backupRuns"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenproject-id /instances/instance-id /backupRuns" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
      "kind": "sql#backupRun",
      "status": "SUCCESSFUL",
      "enqueuedTime": "2020-01-21T11:25:33.818Z",
      "id": "backup-id ",
      "startTime": "2020-01-21T11:25:33.858Z",
      "endTime": "2020-01-21T11:26:18.663Z",
      "type": "AUTOMATED",
      "windowStartTime": "2020-01-21T10:00:00.479Z",
      "instance": "instance-id ",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
      "location": "us"
    }
 -OR-
       If your instance is in a region that's having an outage, then list all of the
       backups in a project
        
        
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID, or - for a list of all backups in the
  project 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/-/backupRuns  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /instances/-/backupRuns"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/-/backupRuns" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
      "kind": "sql#backupRun",
      "status": "SUCCESSFUL",
      "enqueuedTime": "2020-01-21T11:25:33.818Z",
      "id": "BACKUP_ID ",
      "startTime": "2020-01-21T11:25:33.858Z",
      "endTime": "2020-01-21T11:26:18.663Z",
      "type": "AUTOMATED",
      "windowStartTime": "2020-01-21T10:00:00.479Z",
      "instance": "INSTANCE_ID ",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /backupRuns/BACKUP_ID ",
      "location": "us"
      "backupKind": "SNAPSHOT"
    }
  
     
     Restore the target instance from the backup.
    
    
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  project-id : The project IDtarget-instance-id : The target instance IDsource-instance-id : The source instance IDbackup-id  The backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/target-instance-id /restoreBackup  
  Request JSON body:
  
{
  "restoreBackupContext":
  {
    "backupRunId": backup-id ,
    "instanceId": "source-instance-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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \project-id /instances/target-instance-id /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenproject-id /instances/target-instance-id /restoreBackup" | 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 /instances/instance-id ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "operation-id ",
  "targetId": "instance-id ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
  "targetProject": "project-id "
}
 
    After the restore operation completes, recreate any replicas that you deleted in this procedure.
     
   
 
REST v1beta4 
    To determine if the instance has any read replicas and to get the IDs of these replicas, list all replicas for the target  instance.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
  "replicaNames": [
    "REPLICA_NAME "
  ]
}
  
    
    Delete all replicas.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDREPLICA_ID : the replica ID 
  HTTP method and URL:
  
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/REPLICA_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X DELETE \PROJECT_ID /instances/REPLICA_ID "  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/REPLICA_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 /instances/REPLICA_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "REPLICA_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 
       Repeat for each replica.
       
      
       To get the ID of the
         backup that you want to use, list the backups for the source  instance.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  project-id : The project IDinstance-id : The instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \project-id /instances/instance-id /backupRuns"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenproject-id /instances/instance-id /backupRuns" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
      "kind": "sql#backupRun",
      "status": "SUCCESSFUL",
      "enqueuedTime": "2020-01-21T11:25:33.818Z",
      "id": "backup-id ",
      "startTime": "2020-01-21T11:25:33.858Z",
      "endTime": "2020-01-21T11:26:18.663Z",
      "type": "AUTOMATED",
      "windowStartTime": "2020-01-21T10:00:00.479Z",
      "instance": "instance-id ",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
      "location": "us"
    }
  
     
     Restore the target instance from the backup.
    
    
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  project-id : The project IDtarget-instance-id : The target instance IDsource-instance-id : The source instance IDbackup-id  The backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/target-instance-id /restoreBackup  
  Request JSON body:
  
{
  "restoreBackupContext":
  {
    "backupRunId": backup-id ,
    "instanceId": "source-instance-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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \project-id /instances/target-instance-id /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenproject-id /instances/target-instance-id /restoreBackup" | 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 /instances/instance-id ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "operation-id ",
  "targetId": "instance-id ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
  "targetProject": "project-id "
}
  
    
    After the restore operation completes, recreate any replicas that you deleted in this procedure.
     
   
 
 
Restore to the same instance 
When you restore data from a backup to the same instance, you return the data on that
instance to the state of when you took the backup. For information about
restoring an instance, see
General tips about performing a restore .
Warning : The restore process overwrites all of the
current data on the instance, including previous point-in-time recovery (PITR)
logs. Previous on-demand and automatic backups on the instance are retained.
  
  Console 
  
    
In the Google Cloud console, go to the Cloud SQL Instances  page.
Go to Cloud SQL Instances 
 
    
      If the target instance has any read replicas, then
      use the more actions menu  
    
To open the Overview  page of an instance, click the instance name.
 
    From the SQL navigation menu, select Backups . 
    Find the backup that you want to use, and then click Restore . 
    In the Restore an instance from a backup  page, confirm that you selected the correct backup in Review backup details . 
    In Choose restore destination , select Overwrite the
        source instance .
    Check that the name of the source instance
        is specified in
        parentheses.
 
    To confirm your selection, enter the instance name in the Destination instance ID  field. 
    To start the restore process, click Restore . 
    To check the status of the restore operation, go to the
    Operations  page for the instance. 
    After the restore operation completes, recreate any replicas that you deleted
    in this procedure. 
   
   
  
  gcloud 
   
   
   To determine if the instance has any read replicas, use the gcloud sql instances describe
gcloud  sql  instances  describe  INSTANCE_NAME  
  Note any instances that are listed in the replicaNames column.
  
   To delete all replicas, use the gcloud sql instances delete
gcloud  sql  instances  delete  REPLICA_NAME  Repeat for each replica.
   
   
   To list the backups for the instance, use the gcloud sql backups list
gcloud  sql  backups  list  --instance  INSTANCE_NAME   
   
   Find the backup that you want to use and record its ID value.
   Note:  Select a backup that has a status of
     SUCCESSFUL. 
    To restore the instance from the specified backup, use the gcloud sql backups restore
gcloud  sql  backups  restore  BACKUP_ID   \ 
--restore-instance= INSTANCE_NAME   
    
    After the restore operation completes, recreate any replicas that you deleted in this procedure.
     
    
   
  
  REST v1 
  
  
  
  To determine if the instance has any read replicas and to get the IDs of these replicas, list all replicas for the instance.
  
  
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
  "replicaNames": [
    "REPLICA_NAME "
  ]
}
  
   
    Delete all replicas.
  
  
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDREPLICA_ID : the replica ID 
  HTTP method and URL:
  
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/REPLICA_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X DELETE \PROJECT_ID /instances/REPLICA_ID "  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/REPLICA_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 /instances/REPLICA_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "REPLICA_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 
 Repeat for each replica.
 
  
  
  To get the ID of the backup that you want to use, list the backups for the instance.
  
  
  
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  project-id : The project IDinstance-id : The instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \project-id /instances/instance-id /backupRuns"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenproject-id /instances/instance-id /backupRuns" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
      "kind": "sql#backupRun",
      "status": "SUCCESSFUL",
      "enqueuedTime": "2020-01-21T11:25:33.818Z",
      "id": "backup-id ",
      "startTime": "2020-01-21T11:25:33.858Z",
      "endTime": "2020-01-21T11:26:18.663Z",
      "type": "AUTOMATED",
      "windowStartTime": "2020-01-21T10:00:00.479Z",
      "instance": "instance-id ",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
      "location": "us"
    }
  
Restore the instance from the specified backup.
  
  
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance IDBACKUP_ID  the backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  "restoreBackupContext":
  {
    "backupRunId": "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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/INSTANCE_ID /restoreBackup" | 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 /instances/INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  
    
    After the restore operation completes, recreate any replicas that you deleted in this procedure.
     
 
   
  
  REST v1beta4 
  
  
  
  To determine if the instance has any read replicas and to get the IDs of these replicas, list all replicas for the instance.
  
  
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
  "replicaNames": [
    "REPLICA_NAME "
  ]
}
  
   
    Delete all replicas.
  
  
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDREPLICA_ID : the replica ID 
  HTTP method and URL:
  
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/REPLICA_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X DELETE \PROJECT_ID /instances/REPLICA_ID "  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/REPLICA_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 /instances/REPLICA_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "REPLICA_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 
 Repeat for each replica.
 
  
  
  
  To get the ID of the backup that you want to use, list the backups for the instance.
  
  
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  project-id : The project IDinstance-id : The instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \project-id /instances/instance-id /backupRuns"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenproject-id /instances/instance-id /backupRuns" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
      "kind": "sql#backupRun",
      "status": "SUCCESSFUL",
      "enqueuedTime": "2020-01-21T11:25:33.818Z",
      "id": "backup-id ",
      "startTime": "2020-01-21T11:25:33.858Z",
      "endTime": "2020-01-21T11:26:18.663Z",
      "type": "AUTOMATED",
      "windowStartTime": "2020-01-21T10:00:00.479Z",
      "instance": "instance-id ",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
      "location": "us"
    }
  
Restore the instance from the specified backup.
  
  
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance IDBACKUP_RUN_ID : a date-and-time stamp of when Cloud SQL restores the instance from the backup 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  "restoreBackupContext":
  {
    "backupRunId": "BACKUP_RUN_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  
    
    After the restore operation completes, recreate any replicas that you deleted in this procedure.
     
 
   
 
Restore to an instance in another project 
You can use the project parameter to restore data to an instance in a
different project than the one where the backup was taken. When using the
project parameter, call restoreBackup in the project and on the instance you
want to restore data to. When you restore from a backup to a different instance,
you update the data on the target instance to the state of the source instance
when you took the backup.
Permissions 
The user restoring to a different project must have the
cloudsql.instances.restoreBackupcloudsql.backupRuns.getCloud SQL Admin role.
Warning : The restore process overwrites all of the
current data on the instance, including previous point-in-time recovery (PITR)
logs. Previous on-demand and automatic backups on the instance are retained.To restore data to an instance in a different project:
  
  gcloud 
  
     
   List the backups for the instance.
   
gcloud  sql  backups  list  --instance  INSTANCE_NAME  Replace INSTANCE_NAME  with the name of the instance.
    
   
   Find the backup you want to use and record its ID value.
   Note:  Select a backup that's marked
     SUCCESSFUL.
    
       
   Restore data to an instance in a different project.
   
gcloud  sql  backups  restore  BACKUP_ID   \ 
--restore-instance= TARGET_INSTANCE_NAME   \ 
--backup-instance= SOURCE_INSTANCE_NAME   \ 
--backup-project= SOURCE_INSTANCE_PROJECT  Make the following replacements:
BACKUP_ID : the ID of the backup. You obtained this ID earlier in
this procedure.TARGET_INSTANCE_NAME : the instance in the destination project to
which you're restoring data.SOURCE_INSTANCE_NAME : the instance in the source project that
contains the data that you want to restore to the instance in the destination
project.SOURCE_INSTANCE_PROJECT : the project that contains the source
instance. 
     
     
   
  
  REST v1 
    
    To obtain the backupId, run the following.
    
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  project-id : The project IDinstance-id : The instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \project-id /instances/instance-id /backupRuns"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenproject-id /instances/instance-id /backupRuns" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
      "kind": "sql#backupRun",
      "status": "SUCCESSFUL",
      "enqueuedTime": "2020-01-21T11:25:33.818Z",
      "id": "backup-id ",
      "startTime": "2020-01-21T11:25:33.858Z",
      "endTime": "2020-01-21T11:26:18.663Z",
      "type": "AUTOMATED",
      "windowStartTime": "2020-01-21T10:00:00.479Z",
      "instance": "instance-id ",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
      "location": "us"
    }
 
     Restore the backup to an instance in a different project:
    
   
   
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  source-project-id : The source project IDtarget-project-id : The target project IDtarget-instance-id : The target instance IDsource-instance-id : The source instance IDbackup-id  The backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id /restoreBackup  
  Request JSON body:
  
{
  "restoreBackupContext":
  {
    "backupRunId": backup-id ,
    "project": "source-project-id ",
    "instanceId": "source-instance-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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \target-project-id /instances/target-instance-id /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokentarget-project-id /instances/target-instance-id /restoreBackup" | 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/target-project-id /instances/target-instance-id ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_VOLUME",
  "name": "operation-id ",
  "targetId": "target-instance-id ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/target-project-id /operations/operation-id ",
  "targetProject": "target-project-id "
}
 project property, see
restoreBackup 
   
  
  REST v1beta4 
    To obtain the backupId, run the following.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  project-id : The project IDinstance-id : The instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \project-id /instances/instance-id /backupRuns"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenproject-id /instances/instance-id /backupRuns" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
      "kind": "sql#backupRun",
      "status": "SUCCESSFUL",
      "enqueuedTime": "2020-01-21T11:25:33.818Z",
      "id": "backup-id ",
      "startTime": "2020-01-21T11:25:33.858Z",
      "endTime": "2020-01-21T11:26:18.663Z",
      "type": "AUTOMATED",
      "windowStartTime": "2020-01-21T10:00:00.479Z",
      "instance": "instance-id ",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
      "location": "us"
    }
 
     Restore the backup to an instance in a different project:
    
   
   
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  source-project-id : The source project IDtarget-project-id : The target project IDtarget-instance-id : The target instance IDsource-instance-id : The source instance IDbackup-id  The backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id /restoreBackup  
  Request JSON body:
  
{
  "restoreBackupContext":
  {
    "backupRunId": backup-id ,
    "project": "source-project-id ",
    "instanceId": "source-instance-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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \target-project-id /instances/target-instance-id /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokentarget-project-id /instances/target-instance-id /restoreBackup" | 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/target-project-id /instances/target-instance-id ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_VOLUME",
  "name": "operation-id ",
  "targetId": "target-instance-id ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /operations/operation-id ",
  "targetProject": "target-project-id "
}
 project property, see
restoreBackup 
   
 
Restore from a final backup 
You can use a final backup for the following scenarios:
Restore the final backup to a new instance 
Restore to a new instance in a different project or region 
 
Because you're using a final backup of a deleted instance to restore your instance, you can also use the backup to create an instance with the configuration of the deleted instance and recover your data.
Restore to a new instance 
When you create an instance from a final backup, Cloud SQL uses the configuration settings of the instance from where the final backup is taken. After the instance is created, Cloud SQL restores the data to the state of when the final
backup is taken.
  
  Console 
  
     
In the Google Cloud console, go to the Cloud SQL Backups  page.
Go to Cloud SQL Backups 
         This page lists all backups, including final backups, that are associated with a Google Cloud project.
Click the final backup which contains data that you want to restore to a new instance. 
     In the Final backup  dialog, click Restore . 
    In the Restore an instance from a backup  page, confirm that you selected the correct backup in Review backup details . 
   In Choose restore destination , select Restore to a new instance . 
   From the Region  menu, select the region for the new instance. 
   In the Instance ID  field, enter an ID for the new instance. 
    To start the restore process, click Restore . 
    To check the status of the restore operation, go to the
    Operations  page for the instance. 
   
   
  
  gcloud 
   
  
   To list the final backups for the source  instance, use the gcloud sql backups list
gcloud  sql  backups  list  \ 
--filter= 'type:FINAL instance: SOURCE_INSTANCE_NAME '   
   
   Find the backup that you want to use and record its NAME value.
     
    To restore a new instance from the specified final backup, use the gcloud sql backups restore
gcloud  sql  backups  restore  BACKUP_NAME   \ 
--restore-instance= TARGET_INSTANCE_NAME     
    
   
REST v1 
     To get the ID of the backup that you want to use, list the final backups for the source  instance.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_ID '"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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",
      "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
}
  
     
     Restore a new instance from the specified final backup.
    
    
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
Note:  The restore_instance_settings: {} line of code lets Cloud SQL restore data from the backup to the new instance.
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: projects/PROJECT_ID /backups/BACKUP_ID 
  restore_instance_settings: {}
}
  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  
   
 
REST v1beta4 
       To get the ID of the backup that you want to use, list the final backups for the source  instance.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_ID '"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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",
      "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
}
  
     
     Restore a new instance from the specified final backup.
    
    
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
Note:  The restore_instance_settings: {} line of code lets Cloud SQL restore data from the backup to the new instance.
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: projects/PROJECT_ID /backups/BACKUP_ID 
  restore_instance_settings: {}
}
  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  
   
 
 
Restore to an existing instance 
When you restore data from a final backup to an existing instance, you update the data on
the target instance to the state of the source instance when you
took the backup. For more information, see
General tips about performing a restore  and
Tips and requirements for restoring to a different instance .
If you need a list of backups for the project and can't view them on the
instance overview page because of an outage, you can use the backupRuns.list
Warning : The restore process overwrites all of the
current data on the instance, including previous point-in-time recovery (PITR)
logs. Previous on-demand and automatic backups on the instance are retained.
  
  Console 
  
      
In the Google Cloud console, go to the Cloud SQL Instances  page.
Go to Cloud SQL Instances 
 
    
      If the target instance has any read replicas, then
      use the more actions menu  
     
In the Google Cloud console, go to the Cloud SQL Backups  page.
Go to Cloud SQL Backups 
         This page lists all backups, including final backups, that are associated with a Google Cloud project.
Click the final backup which contains data that you want to restore to a different instance. 
     In the Final backup  dialog, click Restore . 
    In the Restore an instance from a backup  page, confirm that you selected the correct backup in Review backup details . 
   In Choose restore destination , select Overwrite an existing instance . 
From the Instance to be overwritten  menu, select the instance that you want
       to use for the restore. The instance that you select and all of its data are overwritten.
       Note:  You can select only those instances that have the same database type as the instance that you used to create the final backup  (source instance). In addition, the selected instance must have the same or higher version than the source instance.To confirm your selection, in the Destination instance ID  field, enter the name of the instance to be overwritten. 
    To start the restore process, click Restore . 
    To check the status of the restore operation, go to the
    Operations  page for the instance. 
        After the restore operation completes, recreate any replicas that you deleted
    in this procedure. 
   
   
  
  gcloud 
   
   
   To determine if the target  instance has any read replicas, use the gcloud sql instances describe
gcloud  sql  instances  describe  TARGET_INSTANCE_NAME  
  Note any instances that are listed in the replicaNames column.
  
 
  To delete all replicas, use the gcloud sql instances delete
gcloud  sql  instances  delete  REPLICA_NAME  Repeat for each replica.
   
  
   To list the final backups for the source instance, use the gcloud sql backups list
gcloud  sql  backups  list  \ 
--filter= 'type:FINAL instance: SOURCE_INSTANCE_NAME '   
   
   Find the backup that you want to use and record its NAME value.
   Note:  Select a backup that has a status of
     SUCCESSFUL.
    
    To restore the target instance from the backup, use the gcloud sql backups restore
gcloud  sql  backups  restore  BACKUP_NAME   \ 
--restore-instance= TARGET_INSTANCE_NAME   
    
    After the restore operation completes, recreate any replicas that you deleted in this procedure.
     
    
   
REST v1 
    
    To determine if the instance has any read replicas and to get the IDs of these replicas, list all replicas for the target  instance.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
  "replicaNames": [
    "REPLICA_NAME "
  ]
}
  
    
    Delete all replicas.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDREPLICA_ID : the replica ID 
  HTTP method and URL:
  
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/REPLICA_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X DELETE \PROJECT_ID /instances/REPLICA_ID "  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/REPLICA_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 /instances/REPLICA_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "REPLICA_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 
       Repeat for each replica.
       
      
     To get the ID of the final
         backup that you want to use, list the backups for the source  instance.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_ID '"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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",
      "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
}
  
     
     Restore the target instance from the backup.
    
    
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: 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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 
    After the restore operation completes, recreate any replicas that you deleted in this procedure.
     
   
 
REST v1beta4 
    To determine if the instance has any read replicas and to get the IDs of these replicas, list all replicas for the target  instance.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
  "replicaNames": [
    "REPLICA_NAME "
  ]
}
  
    
    Delete all replicas.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDREPLICA_ID : the replica ID 
  HTTP method and URL:
  
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/REPLICA_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X DELETE \PROJECT_ID /instances/REPLICA_ID "  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/REPLICA_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 /instances/REPLICA_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "REPLICA_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 
       Repeat for each replica.
       
      
       To get the ID of the final
         backup that you want to use, list the backups for the source  instance.
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_ID '"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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",
      "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
}
  
     
     Restore the target instance from the backup.
    
    
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: 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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  
    
    After the restore operation completes, recreate any replicas that you deleted in this procedure.
     
   
 
 
Restore to an instance in another project 
The user restoring data to an instance in a different project must have the
cloudsql.instances.restoreBackupcloudsql.instances.createcloudsql.backupRuns.getCloud SQL Admin role.
Warning : The restore process overwrites all of the
current data on the instance, including previous point-in-time recovery (PITR)
logs. Previous on-demand and automatic backups on the instance are retained.To restore data to an instance in a different project:
  
  REST v1 
    
    To obtain the backupId for the final backup, run the following:
    
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_ID '"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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",
      "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
}
 
     Restore the backup to an instance in a different project:
    
   
   
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: 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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 project property, see
restoreBackup 
   
  
  REST v1beta4 
  
    To obtain the backupId for the final backup, run the following:
    
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_ID '"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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",
      "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
}
 
     Restore the backup to an instance in a different project:
    
   
   
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: 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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 project property, see
restoreBackup 
   
 
Restore to a new instance in another region 
The user restoring data to a new instance in a different region must have the
cloudsql.instances.restoreBackupcloudsql.backupRuns.getCloud SQL Admin role.
Also, to create an instance in a different region, you must meet the criteria of the organization policies  for that region.
To restore data to a new instance in a different region:
  
  gcloud 
   
  
   To list the final backups for the source  instance, use the gcloud sql backups list
gcloud  sql  backups  list  \ 
--filter= 'type:FINAL instance: SOURCE_INSTANCE_NAME '   
   
   Find the backup that you want to use and record its NAME value.
     
    To use the final backup to restore data to a new instance in a different region, use the gcloud sql backups restore
gcloud  sql  backups  restore  BACKUP_NAME   \ 
--restore-instance= TARGET_INSTANCE_NAME   \ 
--region= TARGET_REGION     
    
   
  
  REST v1 
    
    To obtain the backupId for the final backup, run the following:
    
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_ID '"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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",
      "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
}
 
     Restore the backup to a new instance in a different region:
    
   
   
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup IDREGION : the region for the target instance (for example, us-central1) 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: projects/PROJECT_ID /backups/BACKUP_ID 
  restore_instance_settings: {
    region: REGION 
  }
}
  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 project property, see
restoreBackup 
   
  
  REST v1beta4 
  
    To obtain the backupId for the final backup, run the following:
    
    
    
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_ID '"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /backups?filter='type:FINAL AND instance:INSTANCE_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",
      "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
}
 
     Restore the backup to a new instance in a different region:
    
   
   
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup IDREGION : the region for the target instance (for example, us-central1) 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: projects/PROJECT_ID /backups/BACKUP_ID 
  restore_instance_settings: {
    region: REGION 
  }
}
  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 project property, see
restoreBackup 
   
 
Restore from a retained backup 
You can use a
retained backup 
for the following scenarios:
Restore the retained backup to a new instance 
Restore the retained backup to an existing instance 
Restore to a new or existing instance in a different project or region 
 
Because you're using a retained backup of a deleted instance to
restore your instance, you can also use the backup to create an instance with
the configuration of the deleted instance and recover your data.
Note:  The instance that you create from the retained backup has a different IP
address from the instance where the retained backup is taken. For information
about restoring an instance, see
General tips about performing a restore . Restore a retained backup to a new instance 
When you create a new instance from a retained backup, Cloud SQL uses the
configuration settings of the instance from where the retained backup was taken.
To restore data from a retained backup to a new
instance, you must have the cloudsql.instances.create
 Console  
In the Google Cloud console, go to the Cloud SQL Backups  page.
Go to Cloud SQL Backups 
Click on the name of the deleted instance that contains the backup
you want to restore.
Find the name of the backup you want to restore and then click
Restore .
On the Restore an instance from a backup  page, confirm that you
selected the correct backup in Review backup details .
In Choose restore destination , select Restore to a new instance .
From the Region  menu, select the region for the new instance.
In the Instance ID  field, enter an ID for the new instance.
Click Restore .
Cloud SQL will restore the backup to a new instance. To check
the status of the restore operation, go to the Operations  page
for the instance.
  gcloud  
Use gcloud sql backups list
gcloud sql backups list
--project=PROJECT_ID 
Replace the following:
PROJECT_ID  Find the backup you want to use and record its BACKUP_NAME value.
To restore to a new instance, use the
gcloud sql backups restore
gcloud sql backups restore BACKUP_NAME 
--restore-instance=TARGET_INSTANCE_NAME 
Replace the following:
  REST v1  Restore a new instance from the specified retained backup 
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
Note:  The restore_instance_settings: {} line of code lets Cloud SQL restore data from the backup to the new instance.
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: projects/PROJECT_ID /backups/BACKUP_ID 
  restore_instance_settings: {}
}
  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  REST v1beta4  Restore a new instance from the specified retained backup 
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
Note:  The restore_instance_settings: {} line of code lets Cloud SQL restore data from the backup to the new instance.
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: projects/PROJECT_ID /backups/BACKUP_ID 
  restore_instance_settings: {}
}
  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  
Restore a retained backup to an existing instance 
When you restore data from a retained backup to an existing instance, you update
the data on the target instance to the state of the source instance when you
took the backup.
Warning : The restore process overwrites all of the
current data on the instance, including previous point-in-time recovery (PITR)
logs. Previous on-demand and automatic backups on the instance are retained.
 Console  
In the Google Cloud console, go to the Cloud SQL Instances  page.
Go to Cloud SQL Instances 
If the target instance has any read replicas, then use the more
actions menu 
In the Google Cloud console, go to the Cloud SQL Backups  page.
Go to Cloud SQL Backups 
Click on the name of the deleted instance that contains the backup
you want to restore.
Find the name of the backup you want to restore and then click
Restore .
On the Restore an instance from a backup  page, confirm that you
selected the correct backup in Review backup details .
In Choose restore destination , select
Overwrite an existing instance .
From the Instance to be overwritten  menu, select the instance that
you want to use for the restore. The instance you select and all its
data will be overwritten.
To confirm your selection, in the Destination instance ID  field,
enter the name of the instance to be overwritten.
Click Restore .
Cloud SQL will restore the backup to the existing instance. To check
the status of the restore operation, go to the Operations  page
for the instance.
You can create any replicas once the restore operation completes.
  gcloud  
Determine if the target instance has any read replicas using the
gcloud sql instances describe
gcloud sql instance describe TARGET_INSTANCE_NAME 
Replace the following:
TARGET_INSTANCE_NAME  Delete all replicas for your target instance using the
gcloud sql instances delete
gcloud sql instance delete REPLICA_NAME 
Replace the following:
REPLICA_NAME  
All replicas must be deleted before you can restore to an existing
instance.
Use gcloud sql backups list
gcloud sql backups list
--project=PROJECT_ID 
Replace the following:
PROJECT_ID  Find the backup you want to use and record its BACKUP_NAME value.
To restore to an existing instance, use the
gcloud sql backups restore
gcloud sql backups restore BACKUP_NAME 
--restore-instance=TARGET_INSTANCE_NAME 
Replace the following:
Once the restore operation is complete, recreate any replicas that
were deleted.
  REST v1  
To determine if the instance has any read replicas and to get the IDs of
these replicas, list all replicas for the target instance.
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
  "replicaNames": [
    "REPLICA_NAME "
  ]
}
 Delete all replicas of the target instance.
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDREPLICA_ID : the replica ID 
  HTTP method and URL:
  
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/REPLICA_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X DELETE \PROJECT_ID /instances/REPLICA_ID "  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/REPLICA_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 /instances/REPLICA_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "REPLICA_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 Get the ID of the retained backup that you want to restore.
  
  
  
  
  
  
    
  
  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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_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
}
 Restore the target instance from the retained backup.
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: 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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
   REST v1beta4  
To determine if the instance has any read replicas, and to get the IDs of
these replicas, list all replicas for the target instance.
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDINSTANCE_ID : the instance ID 
  HTTP method and URL:
  
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/INSTANCE_ID ?fields=replicaNames" | Select-Object -Expand Content  
    You should receive a JSON response similar to the following:
    
Response 
  
{
  "replicaNames": [
    "REPLICA_NAME "
  ]
}
 Delete all replicas of the target instance.
  
  
  
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDREPLICA_ID : the replica ID 
  HTTP method and URL:
  
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/REPLICA_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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X DELETE \PROJECT_ID /instances/REPLICA_ID "  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/REPLICA_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 /instances/REPLICA_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "REPLICA_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
 Get the ID of the retained backup that you want to restore.
  
  
  
  
  
  
    
  
  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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_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
}
 Restore the target instance from the retained backup.
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: 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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
   
Restore to an instance in another project 
To restore an instance using a retained backup in a different project,
you must have the following permissions:
You can restore to another project using gcloud CLI  or
the Cloud SQL API only.
 gcloud  
Use gcloud sql backups list
gcloud sql backups list
--project=PROJECT_ID 
Replace the following:
PROJECT_ID  Find the backup you want to use and record its BACKUP_NAME value.
To restore to a new instance, use the
gcloud sql backups restore
gcloud sql backups restore BACKUP_NAME 
--restore-instance=TARGET_INSTANCE_NAME 
Replace the following:
  REST v1  To get the backupID for the retained backup, run the following:
  
  
  
  
  
  
    
  
  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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_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
}
 Restore to a different project 
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: 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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  REST v1beta4  To get the backupID for the retained backup, run the following:
  
  
  
  
  
  
    
  
  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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_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
}
 Restore to a different project 
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup ID 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: 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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  
Restore to an instance in another region 
To restore an instance using a retained backup in a different region,
you must have the following permissions:
You can restore to another region using gcloud CLI  or
the Cloud SQL API only. Your target region must meet the
organization policies  for
the region.
 gcloud  
Use gcloud sql backups list
gcloud sql backups list
--project=PROJECT_ID 
Replace the following:
PROJECT_ID  Find the backup you want to use and record its NAME value.
To restore to a new instance, use the
gcloud sql backups restore
gcloud   sql   backups   restore   BACKUP_NAME -- restore - instance = TARGET_INSTANCE_NAME -- region = TARGET_REGION Replace the following:
BACKUP_NAME 
TARGET_INSTANCE_NAME 
TARGET_REGION 
   REST v1  To get the backupID for the retained backup, run the following:
  
  
  
  
  
  
    
  
  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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_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
}
 Restore to a different project 
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup IDREGION : the region for the target instance (for example, us-central1) 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: projects/PROJECT_ID /backups/BACKUP_ID 
  restore_instance_settings: {
    region: REGION 
  }
}
  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  REST v1beta4  To get the backupID for the retained backup, run the following:
  
  
  
  
  
  
    
  
  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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
curl -X GET \PROJECT_ID /backups"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
  
    Execute the following command:
  
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_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
}
 Restore to a different project 
  
  
  
    
    
  
  
  
    
  
  Before using any of the request data,
  make the following replacements:
  PROJECT_ID : the project IDTARGET_INSTANCE_ID : the target instance IDBACKUP_ID : the backup IDREGION : the region for the target instance (for example, us-central1) 
  HTTP method and URL:
  
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup  
  Request JSON body:
  
{
  backup: projects/PROJECT_ID /backups/BACKUP_ID 
  restore_instance_settings: {
    region: REGION 
  }
}
  
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
          the gcloud CLI with your user account by running
          gcloud initgcloud auth loginCloud Shell ,
            which automatically logs you into the gcloud CLI
            .
          You can check the currently active account by running
          gcloud auth list
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  
curl -X POST \PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup"  
  PowerShell (Windows) 
  
  
    
      
    
  
  
    
      Save the request body in a file named request.json,
      and execute the following command:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  
$cred = gcloud auth print-access-tokenPROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup" | 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 /instances/TARGET_INSTANCE_ID ",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "RESTORE_BACKUP",
  "name": "OPERATION_ID ",
  "targetId": "TARGET_INSTANCE_ID ",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
  "targetProject": "PROJECT_ID "
}
  
Restore from a backup in the backup vault 
  
    
      
      
        Preview
      
        — Enhanced backups 
     
    
    
      
      
        
          This feature is
        
        subject to the "Pre-GA Offerings Terms" in the General Service Terms section of the
        Service Specific
        Terms .
        
        You can process personal data for
        
          this feature
        
        as outlined in the
        Cloud Data Processing
        Addendum , subject to the obligations and restrictions described in the agreement under
        which you access Google Cloud.
        
        Pre-GA features are available "as is" and might have limited support.
      
      For more information, see the
      launch stage descriptions .
  
  
   
If your Cloud SQL instance is enabled to use
enhanced backups ,
then you can restore your instance from a backup in the backup vault.
You can restore your instance for the following scenarios:
Restore to a new instance 
Restore to an existing instance 
Restore to a new or existing instance in a different project 
 
Restore a backup from the backup vault to a new instance 
When you restore data from a backup to a new instance, you update
the data on the target instance to the state of the source instance when you
took the backup.
 Console  
In the Google Cloud console, go to the Cloud SQL Backups  page.
Go to Cloud SQL Backups 
In the Backup tier  dropdown, select Enhanced tier , then
select the Backup vault  that contains the backup you want to use.
All backups available in the backup vault for your selected instance
are displayed.
Find the name of the backup you want to restore and then click
Restore .
On the Restore an instance from a backup  page, confirm that you
selected the correct backup in Review backup details .
In Choose restore destination , select
Restore to a new instance , then update the following:
Under Project , select the project for your new instance. The
project must be the same region as your backup vault
and you must have access to the project.
Under Region , confirm the region. The region should match
the new instance's region.
In the Instance ID  box, give your new instance a name. This
name is permanent and cannot be changed.
 Click Restore .
Cloud SQL restores the backup to a new instance. To check the
status of the restore operation, go to the Operations  page
for the instance.
The new instance defaults to the standard backups option. To update to
enhanced backups, see
Enable enhanced backups .
You can create any replicas once the restore operation completes.
  gcloud  To restore to a new instance, use the
gcloud sql backups restore
gcloud sql backups restore BACKUP_ID 
--restore-instance=TARGET_INSTANCE_NAME 
Replace the following:
BACKUP_ID List all the backups in the backup vault for an instance .
TARGET_INSTANCE_NAME 
  
Restore a backup from the backup vault to an existing instance 
When you restore data from a backup to an existing instance, you update
the data on the target instance to the state of the source instance when you
took the backup.
Warning : The restore process overwrites all of the
current data on the instance, including previous point-in-time recovery (PITR)
logs. Previous on-demand and automatic backups on the instance are retained.
 Console  
In the Google Cloud console, go to the Cloud SQL Instances  page.
Go to Cloud SQL Instances 
If the target instance has any read replicas, then use the more
actions menu 
In the Google Cloud console, go to the Cloud SQL Backups  page.
Go to Cloud SQL Backups 
In the Backup tier  dropdown, select Enhanced tier , then
select the Backup vault  that contains the backup you want to use.
All backups available in the backup vault for your selected instance
are displayed.
Find the name of the backup you want to restore and then click
Restore .
On the Restore an instance from a backup  page, confirm that you
selected the correct backup in Review backup details .
In Choose restore destination , select
Overwrite an existing instance .
From the Instance to be overwritten  menu, select the instance that
you want to use for the restore. The instance you select and all its
data will be overwritten.
To confirm your selection, in the Destination instance ID  field,
enter the name of the instance to be overwritten.
Click Restore .
Cloud SQL will restore the backup to the existing instance. To
check the status of the restore operation, go to the Operations 
page for the instance.
You can create any replicas once the restore operation completes.
  gcloud  To restore a backup from a backup vault to an existing instance, do the
following:
Determine if the target instance has any read replicas using the
gcloud sql instances describe
gcloud sql instance describe TARGET_INSTANCE_NAME 
Replace the following:
TARGET_INSTANCE_NAME  Delete all replicas for your target instance using the
gcloud sql instances delete
gcloud sql instance delete REPLICA_NAME 
Replace the following:
REPLICA_NAME  
All replicas must be deleted before you can restore to an existing
instance.
Find the backup you want to use using
list all the backups in the backup vault for an instance .
You'll need the full backup path address to restore.
To restore to a existing instance, use the
gcloud sql backups restore
gcloud sql backups restore BACKUP_ID 
--restore-instance=TARGET_INSTANCE_NAME 
Replace the following:
BACKUP_ID list all the backups in the backup vault for an instance .
TARGET_INSTANCE_NAME 
 
Once the restore operation is complete, recreate any replicas that
were deleted.
  
Restore a backup from the backup vault to a new or existing instance in a different project 
When you restore data from a backup to a new or existing instance in a
different project, you update the data on the target instance to
the state of the source instance when you took the backup. You can restore
to an instance in another project using gcloud CLI  or the
Cloud SQL API only.
Warning : The restore process overwrites all of the
current data on the instance, including previous point-in-time recovery (PITR)
logs. Previous on-demand and automatic backups on the instance are retained.
 gcloud  To restore a backup from a backup vault to an existing instance, do the
following:
If restoring to an existing instance, determine if the target instance
has any read replicas using the
gcloud sql instances describe
gcloud sql instance describe TARGET_INSTANCE_NAME 
Replace the following:
TARGET_INSTANCE_NAME  
Delete all replicas for your target instance using the
gcloud sql instances delete
gcloud sql instance delete REPLICA_NAME 
Replace the following:
REPLICA_NAME  
All replicas must be deleted before you can restore to an existing
instance.
Find the backup you want to restore using
list all the backups in the backup vault for an instance .
You'll need the full backup path address to restore.
To restore to a new or existing instance in a new project, use the
gcloud sql backups restore
gcloud sql backups restore BACKUP_ID 
--restore-instance=TARGET_INSTANCE_NAME 
--backup-instance=SOURCE_INSTANCE_NAME 
--backup-project=SOURCE_INSTANCE_PROJECT 
Replace the following:
BACKUP_ID 
TARGET_INSTANCE_NAME 
SOURCE_INSTANCE_NAME 
SOURCE_INSTANCE_PROJECT 
   
Perform a point-in-time recovery 
To perform a point-in-time recovery, see Point-in-time recovery .
Identify the recovery position 
Before you can perform a point-in-time recovery, you must have identified a
binary log file name and position that correspond to the point in time you want
to recover the instance to.
To accomplish this task, see Identifying the recovery position .
What's next