11 Backup, Restore and Recover Databases

Review backup, restore, and recovery operations for your databases.

About Database Backup and Recovery Options

Backup your databases in Oracle Database Appliance and use the restore and recover features to restore a database to the same or another system or to recover database files.

It is important to create a backup recovery strategy to protect the databases in Oracle Database Appliance from data loss due to a physical problem with a disk that causes a failure of a read from or write to a disk file that is required to run the database, or due to user error. The backup feature provides the ability to PITR restore the database, SCN recovery, and latest recovery. You can create a backup policy in the Browser User Interface or from the command-line interface.

The following backup options are available:

  • Backup to an Oracle Fast Recovery Area (FRA) disk (Internal FRA)

  • Backup to Oracle Cloud Infrastructure Object Storage (Oracle Object Storage)

  • Backup to a Network File System (NFS) location (External FRA)

You can use the backup, restore, and recovery features with databases that have backup policy attached to them in the system. You can choose to manage your backups, and set up your backup, restore, and recovery option.

The backup feature enables you to create a backup policy with your backup parameters, such as backup location, recovery window, enable and disable crosscheck, and ObjectStoreSwift Object details. For new and existing databases, you can create and attach a backup policy to a database to perform a daily backup. Once a backup policy is attached to a database, the dcs-agent schedules daily automatic backups for the database. It also schedules archivelog backups for the database. By default, the frequency of the archivelog backup is 30 minutes. The default schedule is a level 0 backup every Sunday and a level 1 backup Monday through Saturday. You can edit or disable the schedule.

The dcs-agent generates and saves a backup report for each backup. The backup report contains the metadata required to recover or restore a database.

Recovering a database in Oracle Database Appliance is a full or whole database recovery using RMAN. You can recover from a Backup Report, a point-in-time (PITR), a System Change Number (SCN), or from the latest backup. When a Backup Report is used for recovery, it performs an SCN recovery, by reading the SCN value from the backup report. For recovery of data block, tablespaces, data files, PDBs, see the Oracle Database Backup and Recovery Reference Guide.

Backup Policy

The backup policy defines the backup details. When you create a backup policy, you define the destination for the database backups, either Internal FRA (Disk) or External FRA (NFS location), or Cloud Object Storage, and you define the recovery window.

If you use the Oracle Object Storage for backup and recovery, you must have an ObjectStore Resource ID or Name.

You can assign the backup policy to the database when you create the database. You can attach a backup policy to an existing database or update a backup policy.

You can also specify compression algorithm when creating the backup policy. The supported compression algorithms are BASIC, LOW, MEDIUM, and HIGH. For Objectstore backup policy, you can specify any compression algorithm. By default, if you do not specify the compression algorithm while creating the Objectstore backup policy, then MEDIUM compression algorithm is used. By default, if you do not specify the compression algorithm while creating the Disk or NFS backup policy, then BASIC compression algorithm is used. To use LOW, MEDIUM, or HIGH compression algorithms for Disk or NFS backup policy, there are license considerations.

Backup Levels

Specify the backup level when you take a backup. The back levels are:

  • Level 0: The backup captures all blocks in the datafile. By default, level 0 backups occur every Sunday. You can customize your backup settings through the Browser User Interface or the command-line. A level 0 backup is a full backup and is used as the parent for a level 1 backup.

  • Level 1: The backup is an incremental backup that captures only those blocks that change between backups in each datafile. By default, a level 1 backup occurs daily, Monday through Saturday, and captures images of each block in a datafile that changed. Level 1 backups are differential backups. The backup includes blocks from the most recent previous level 1 or level 0 backup.

  • LongTerm: The backup is a long-term, or archival backup. Use LongTerm to create a backup that is all-inclusive and exempt from the backup retention policy. The backup is all-inclusive because every file needed to restore and recover the database is backed up to a single location. The backup is exempt from the retention policy that is defined in the recovery window. For long term backups, you must use External FRA (NFS location) or Objectstore backup policy.

  • Archivelog: This is a backup of all archivelog not yet backed up to the backup destination, such as Internal FRA, External FRA (NFS location), or Object Store.

The AutoScheduler creates a level 0 backup on Level 0 Backup Day, by default, on Sunday, and level 1 on the remaining days of the week. You can display a list of scheduled backups, edit your backup schedule, or disable a scheduled backup. It also creates archivelog backup for the database with a default frequency of 30 minutes.

Backup to Disk

When you backup to disk, you are using the Oracle Fast Recovery Area (FRA) of the disk. FRA is a storage directory that allows backup and recovery operations on Oracle databases. The directory contains archived redo logs, backup pieces and copies, and the control file.

Advantages to backing up to disk are as follows:

  • Quick recovery from backups stored on disk

  • Automate management of recovery related files (like archived logs)

Note:

  • When you backup to disk, the data for non-TDE database is not encrypted and passwords are not allowed. In addition, backup to disk requires a lot of disk space (up to two to three times the size of the database).
  • If the database is TDE-enabled, then the RMAN backup password is not required, irrespective of the backup destination.

The following is a high-level overview of the workflow for backup and recovery when using a disk:

  1. Create a backup policy to define the backup destination (disk) and recovery window for the disk destination.

  2. Create a database and attach the backup policy to the database. When the backup policy is associated with a database, archivelog backups and database backups are automatically created.

  3. Manage obsolete backups.

  4. Recover the database from a backup on the disk.

Backup to External FRA (Network File System)

Specifying a Network File System (NFS) location for backups, enables you to safely and securely store or retrieve a database backup at any time.

The advantages of using NFS backup location are:

  • With NFS, you can access remote files, locally, by mounting local file systems on a network.

  • Provides a centralized backup location, without requiring manual refresh.

  • Supports enhanced security options using firewalls and Kerberos.

  • Support for encrypted backups using passwords. You optionally, set the backup password, and provide the same during restore operation.

  • The RMAN Backup Encryption password is applicable for databases that do not have TDE enabled. If the database has TDE enabled, then the RMAN backup password is not required, irrespective of the backup destination.

The following is a high-level overview of the workflow for backup and recovery when using an NFS location:

  1. Create a mount point for the NFS location.

    The mount point must be accessible from both nodes. The oracle user must have read/write permissions to the NFS location. If the request is being made to a remote server, ensure that it is running. See Creating a Mount Point for NFS Backup Location for the procedure to create a mount point.

  2. Create a backup policy specifying the NFS location, and the recovery window for NFS destination.

  3. Associate the database with this backup policy, either during database creation, or by updating the backup policy for the database.

  4. Backups are automatically scheduled, and you can also run manual backups. You can specify manual backup options in the Browser User Interface or using ODACLI commands.

  5. Manage obsolete backups.

  6. Restore from backup. When you save your backups to NFS, you can restore the database to the same system or to a different system.

  7. Recover the database from a backup on NFS.

Backup to Oracle Object Storage

Oracle Object Storage is a highly secure, scalable storage platform that enables you to safely and securely store or retrieve a database backup at any time. Data and the associated metadata are stored as an object in a logical container (bucket). Oracle Database Appliance creates a Backup Report and a unique ID to identify each backup.

Oracle Object Storage is tightly integrated with Oracle Cloud Infrastructure Identity and Access Management. The data, user-defined metadata associated with the data, and encryption keys are automatically encrypted using 256-bit Advanced Encryption Standard (AES- 256). The encryption keys are rotated frequently and cannot be disabled. By default, only authenticated users that have explicitly been granted access to specific resources can access data stored in Oracle Object Storage. Data is uploaded and downloaded over SSL endpoints using the HTTPS protocol.

When you backup to Oracle Object Storage, you are using your backup policy and your Oracle ObjectStoreSwift credentials. The credentials are stored in an encrypted Oracle wallet. You can attach the credentials to one or more backup policies.

Note:

Credentials are validated when you create the backup policy that uses Oracle Object Storage. The credentials are not validated against the URL and tenancy.

Advantages to using Oracle Object Storage are as follows:

  • Backups are encrypted using the password for non-TDE databases. For TDE-enabled databases, backups are encrypted by default and do not require the RMAN backup encryption password to be specified separately.

    Caution:

    Save the password that you use during backups in a safe location, you must provide the password during recovery operations.
  • Quick recovery from backups. With the Oracle Object Storage, you can safely and securely use the Browser User Interface to store or retrieve data directly from within the cloud platform, at any time. 

  • Automate management of recovery related files (like archived logs)

  • Oracle Object Storage is not directly accessed by the operating system, instead it uses APIs to access the storage at the application level.

The following is a high-level overview of the workflow for backup and recovery when using Oracle Object Storage:

  1. Create an Object Store object with your credentials.

  2. Create a backup policy to define the backup location (Object Store), Object Store Credentials Name, the container (bucket) name where you want to store backups, and the recovery window.

  3. Create a database and attach the backup policy either as a part of creating the database, or update the database with backup policy after creating the database. When the backup policy is associated with a database, backups are automatically created.

  4. Manage obsolete backups.

  5. Restore from backup. When you save your backups to Oracle Object Storage, you can restore the database to the same system or to a different system.

  6. Recover the database from a backup on Oracle Object Storage.

Note:

Before you can use this backup option, you must create an Oracle Cloud Infrastructure Object Storage account. When you create the account, you define the account credentials, end point URL, and bucket. Go to the Oracle Store and sign up for Oracle Cloud Infrastructure Object Storage.

Backup Reports

A backup report is generated for each backup and is similar to, but does not replace, a recovery catalog. The report contains the Oracle Database Appliance information and metadata needed to restore or recover a database. The Backup Report is designed to keep track of all of the information required to restore or recover a database.

The following is an example of a level 1 backup report:

{
  "id" : "2d82460c-d648-4e75-8c7d-72cc90bc442a",
  "dbResId" : "b5fc646e-01a6-4c8b-8286-7633346c4329",
  "tag" : null,
  "dbId" : "2717054291",
  "dbName" : "HRDbO",
  "dbUniqueName" : "HRDbOu",
  "backupType" : "REGULAR-L1",
  "keepDays" : null,
  "backupLocation" : "https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/dbaasimage/backupbucket",
  "cfBackupHandle" : "c-2717054291-20171108-04",
  "spfBackupHandle" : "c-2717054291-20171108-04",
  "pitrTimeStamp" : "November 08, 2017 12:43:14 PM UTC",
  "pitrSCN" : "1175058",
  "resetLogsTimeStamp" : "November 08, 2017 09:55:34 AM UTC",
  "resetLogsSCN" : "1112268",
  "oraHomeVersion" : "12.2.0.1.170814 (26723265, 26609817)",
  "sqlPatches" : "25811364,26609817",
  "backupLogLoc" : "https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/dbaasimage/backupbucket/scaoda702c1n1/rmanlog/HRDbOu/2717054291/2017-11-08/rman_backup_2017-11-08_12-42-41.0545.log",
  "tdeWalletLoc" : null,
  "dbConfigLoc" : "https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/dbaasimage/backupbucket/scaoda702c1n1/dbconfig/HRDbOu/2717054291/2017-11-08/DBCONFIG_TAG20171108T124407_2017-11-08_12-44-07.0533.tar.gz",
  "name" : "Backup_Report_HRDbO",
  "createTime" : "November 08, 2017 12:42:08 PM UTC",
  "state" : {
    "status" : "CONFIGURED"
  },
  "updatedTime" : "November 08, 2017 12:44:12 PM UTC",
  "backupReportLogDetail" : "https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/dbaasimage/backupbucket/scaoda702c1n1/rmandetaillogreport/HRDbOu/2717054291/2017-11-08/rman_list_backup_detail_2017-11-08_12-44-04.0362.log",
  "dbInfo" : {
    "dbClass" : "OLTP",
    "dbType" : "RAC",
    "dbShape" : "odb1",
    "dbEdition" : "EE",
    "dbStorage" : "ASM"
  },
  "dbDataSize" : "1542M",
  "dbRedoSize" : "16403M"
}

About Recovery Options

The recovery in Oracle Database Appliance always performs a full database restore or recover. The recovery options are LATEST, PITR, SCN, and BackupReport.

The following types of recovery are available:

  • LATEST: Performs a complete recovery (valid backups and all required archived logs and online redo logs must be available)

  • PITR: Point-in-Time Recovery that performs a recovery to a specified timestamp within the current incarnation of database

  • SCN: SCN-based recovery that performs a recovery is an incomplete recovery to a specified SCN within the current incarnation of database.

  • BackupReport: Performs a recovery based on the Backup Report SCN. The BackupReport option is similar to SCN, except that the recovery uses the Backup Report SCN instead of a specified SCN.

Point-in-Time Database Recovery

Point-in-Time Recovery (PITR) recovers the database to a specific point-in-time. You must use specify the timestamp for this type of recovery.

A point-in-time recovery is often used for the following situations:

  • You want to recover the database to an SCN before a user or administrative error.

  • Complete database recovery failed because all necessary archived redo logs were not available.

  • A database upgrade fails.

  • You are creating a test database or a reporting database from production database backups.

System Change Number Recovery

A system change number (SCN) is a stamp that defines a committed version of a database at a point in time. Oracle assigns every committed transaction a unique SCN. You can recover a database to the latest time or to an SCN.

The database is restored from backups created before the target time, and then applies incremental backups and logs to re-create all changes between the time of the data file backups and the end point of recovery. When the end point is specified as an SCN, the database applies the redo logs and stops after each redo thread or the specified SCN, whichever occurs first. When the end point is specified as a time, the database internally determines a suitable SCN for the specified time and then recovers to this SCN.

SCN is a primary mechanism to maintain data consistency in Oracle database. With each execution, there is an increase in the count of the SCN. The following are some examples of areas that use SCN:

  1. Redo records. Every redo record has an SCN version of the redo record in the redo header (redo records can have non-unique SCN). Given redo records from two threads (as in the case of RAC), recovery will order them in SCN order, essentially maintaining a strict sequential order.

  2. Data block. Every data block has block SCN (block version). In addition to that, a change vector in a redo record also has expected block SCN. This means that a change vector can be applied to one and only version of the block. Code checks if the target SCN in a change vector is matching with the block SCN before applying the redo record. If there is a mismatch, corruption errors are thrown.

  3. Read consistency. Every query has query environment which includes an SCN at the start of the query. A session can see the transactional changes only if that transaction commit SCN is lower then the query environment SCN.

  4. Commit. Every commit generates an SCN (commit SCN) that marks a transaction boundary. Group commits are possible too.

Restoring Archivelog

The database auto backup policies - Regular-L0, and Regular-L1 delete archivelog, which could be essential in later process, such as in configuration or reinstate operations for Oracle Data Guard. Oracle Database Appliance supports restore of archivelog for a database. You can choose to restore archivelog from one SCN to another SCN, or from one timestamp to another timestamp.

Run the command odacli restore-archivelog specifying the SCN or timestamp period.

Obsolete Database Backups

It is important to remove older backups once they become obsolete. The type of backup and the recovery window that you define in the database backup policy determines when database backups become obsolete.

For level 0 and level 1 backups, run the command odacli delete-backup for a given Database Resource Identifier to delete obsolete backups based on the defined recovery window.

For Longterm backups, provide the corresponding backup report as an input and use the command odacli delete-backup to delete the backups from Oracle Object Storage.

Typically, older level 0 and level 1 database backups are considered obsolete based on the defined recovery window and those obsolete backups are deleted when you run the odacli delete-backup command. The defined recovery window is as follows:
  • Disk: 1-14 days

  • Object Storage: 1-30 days

Creating a Mount Point for NFS Backup Location

Create a mount point for the Network File System (NFS) location, to set up the NFS backup and recovery option.

Follow these steps to create a mount point for the NFS location:
  1. Follow these steps on the source machine:
    1. Create a sharable location on the source machine and give full permissions to this directory.
      # mkdir /tmp/nfs_test 
      chmod 774 /tmp/nfs_test 
    2. Add entries in the /etc/exports file in the format shared_location destination_IPs (permissions).
      For example:
      # cat /etc/exports
      /tmp/nfs_test 192.0.2.1(rw,sync)
      /tmp/nfs_test 192.0.2.2(rw,sync)
    3. Restart the NFS server on the host.
      # service nfs  restart
    4. Check the export list for the entries.
      # showmount -e
      Export list for oda1:
      /tmp/nfs_test 192.0.2.1,192.0.2.2
  2. Follow these steps on the client machine:
    1. Create a client location on the client machine as the oracle user.
      # sudo -E -u oracle mkdir /tmp/client_location
    2. Mount this location with the source location in the format mount_server:source_folder client_location.
      # mount -t nfs 192.0.2.3:/tmp/nfs_test /tmp/client_location -o noac,actimeo=0
    3. Check if the mount details are correct:
      # mount 
      192.0.2.3:/tmp/nfs_test on /tmp/client_location type nfs 
      (rw,vers=4,addr=192.0.2.3,clientaddr=192.0.2.2)
      
Specify this NFS location in the backup configuration, either through the Browser User Interface or CLI commands.

Configuring Agent Proxy Settings for Object Store Access

If the Object Store IP address is accessible only through proxy setup by the Oracle Database Appliance server, then define the proxy setting for the agent, so that the agent can access the Object Store.

To create a backup policy that uses Object Store location, the agent must be able to access the Object Store URL.
  1. Define the HttpProxyHost and HttpProxyPort settings in the update-agentconfig-parameters command.
     # odacli update-agentconfig-parameters -n HttpProxyHost -v www-proxy.test.com -n HttpProxyPort -v 80 -u
    
    Job details
    ----------------------------------------------------------------
    ID: 0b0cbf9b-b0ab-4523-a096-5da4e48fc825
    Description: Update agent configuration parameter values [HttpProxyHost, HttpProxyPort]
    Status: Created
    Created: October 23, 2018 4:56:53 PM IST
    Message:
    
    Task Name Start Time End Time Status
    ----------------------------------------

    For more information about the update-agentconfig-parameters command usage, see the Oracle Database Appliance Command-Line Interface.

  2. Verify that the update succeeded:
    # odacli describe-job -i 0b0cbf9b-b0ab-4523-a096-5da4e48fc825
    
    Job details
    ----------------------------------------------------------------
    ID: 0b0cbf9b-b0ab-4523-a096-5da4e48fc825
    Description: Update agent configuration parameter values [HttpProxyHost, HttpProxyPort]
    Status: Success
    Created: October 23, 2018 4:56:53 PM IST
    Message:
    
    Task Name Start Time End Time Status
  3. Run the list-agentconfigParameters command to view the changes in the proxy settings:
    # odacli list-agentConfigParameters
    
    Name Value Description Updated
    ------------------------------ ----------------------------------------
    HttpProxyHost www-proxy.test.com October 23, 2018 4:56:53 PM IST
    HttpProxyPort 80 October 23, 2018 4:56:53 PM IST
    HttpsProxyHost Https proxy server host October 23, 2018 12:23:21 AM IST
    HttpsProxyPort Https proxy server port October 23, 2018 12:23:21 AM IST
    OSPatchRepos Repo list for OS patching October 23, 2018 12:23:21 AM IST
You can now use the Browser User Interface or the command-line interface to create a backup policy to use the ObjectStore location for backup.

Creating a Database Backup Policy

Understand how to create a policy to backup a database to an internal or external Oracle Fast Recovery Area (FRA) location or to the Object Store using the Browser User Interface.

The backup policy defines the backup, including the location where you want to store the backups and the recovery window. Backup to disk requires a lot of disk space (up to two to three times the size of the database).

Follow these steps to create a backup policy from the Browser User Interface:

  1. Click the Database tab in the Browser User Interface.
  2. Click Backup Policy in the left navigation to display a list of backup policies.
  3. Click Create Backup Policy.
  4. Enter a name for the backup policy and select the number of days for the recovery window. Select Enable Crosscheck to determine if the files on the disk on in the media management catalog correspond to data in the RMAN repository. Select one of the following as the backup destination:
    • To backup to disk, select Internal FRA as the backup destination.
    • To backup to the cloud, select ObjectStore as the backup destination. If you have more than one Object Store, then select the Object Store Credential Name from the list. Enter a name in the Container Name field.
    • To backup to an NFS location, select External FRA as the backup destination, and specify the NFS mount point location.
    • To not define a destination, select None.
    The Backup Policy name must begin with an alpha character and contain only alphanumeric characters.
  5. You must specify the TDE Wallet Backup Location to associate the backup configuration to a TDE-enabled database.
  6. Click Create. Click Yes to confirm that you want to create the backup policy.
    A link to the job appears. When the job completes successfully, the backup configuration is ready.
Update an existing database to attach the backup configuration to the database using the ID or Name. When you attach the backup configuration to a database, the dcs-agent schedules daily automatic backups for the database.

Updating a Database with a Backup Policy

Attach a backup policy to a database to define the database backup attributes and destination.

  1. In the Browser User Interface, click the Database tab, then select a database from the list.
  2. In the Database Information page, click Apply Backup Policy.
    If the action is disabled, then you must create a backup policy.
  3. Select a backup policy from the list of available backup policies, and provide the Backup Encryption Password. For TDE-enabled databases, backups are encrypted by default and do not require the RMAN backup encryption password to be specified separately. Click Apply.
  4. Expand the Actions menu, then click View to display the Database Information page.
    The details include whether or not Auto Backup is enabled, the Backup Destination, and options to create a backup, enable or disable automatic backups, update the database, and archive log backup schedule.
  5. (Optional) Click Manual Backup to create a single backup. Click Update Database Backup Schedule to schedule automatic backups. Click Update Archive Log Backup Schedule to schedule archive log backups.
  6. Click the Activity tab to check the job status.
    When the job completes successfully, the backup policy is associated with the database.

Updating a Database Backup Policy

Use the Browser User Interface to update the recovery window, change the ObjectStore Credential, or change the crosscheck option for a database backup policy.

Crosscheck determines if the files on the disk on in the media management catalog correspond to data in the RMAN repository.
  1. Click the Database tab in the Browser User Interface.
  2. Click Backup Policy in the left navigation to display a list of backup policies.
  3. Expand the Actions menu for a backup policy, then click Update.
  4. To change the recovery window, use the up or down arrow to change the number of days.
  5. To enable or disable the crosscheck, select or deselect Enable Crosscheck.
  6. Click Update. Click Yes to confirm that you want to update the backup policy.
    A link to the job appears. When the job completes successfully, the backup configuration is ready.

Backing Up a Database Using the Browser User Interface

Apply a backup policy to a database, create a manual backup, update a database backup schedule, or update an archive log backup scheduler.

You can use the Browser User Interface or the command-line interface to create a database backup. In the command-line interface, use the command odacli create-backup for a specified Database.
Before creating a database backup, you must have a backup policy. The backup policy defines the recovery window and the backup destination. You must associate a backup policy with the database, otherwise you cannot create backups.

Follow these steps to backup a database from the Browser User Interface:

  1. In the Browser User Interface, click the Database tab.
  2. Click a database name to select a database from the list.
  3. Review the database information, including the backup policy name and destination details. To select a backup policy for the database, click Apply Backup Policy. Select a policy and specify the Backup Encryption Password. For TDE-enabled databases, backups are encrypted by default and do not require the RMAN backup encryption password to be specified separately. For databases that do not have TDE enabled, the Backup Encryption Password is mandatory for Objectstore backup destination, optional for NFS backup destination and not required for Disk backup destination.
  4. Click Manual Backup, Update Database Backup Schedule or Update Archive Log Backup Schedule.
    If the action is disabled, then apply a backup policy.
  5. Click Yes to confirm the job.
    A link to the job appears. When the job completes successfully, the backup is ready. A list of backups appears at the bottom of the page.

Viewing Backup Reports

Understand how you can use the Browser User Interface to view backup reports.

A report is generated when a database backup is performed. The backup report lists the type, location, and date and timestamp of the backup.
  1. In the Browser User Interface, click the Database tab, then click the database name in the list of databases.
    Information about the database appears on the Database Information page.
  2. Scroll to the bottom of the page to view a list of Backups.
  3. Click the Job ID for a backup to view the Backup Report and more details about the backup.

Recovering a Database Using the Browser User Interface

Understand the recovery options available for recovering a database.

  1. In the Browser User Interface, click the Database tab, then select a database from the list.
  2. On the Database Information page, click Recover.
  3. On the Recover Database page, select any of the following recovery options:

    Recover Full Database to the specified Backup: Select the existing backup from which you want to recover the database

    Recover Full Database to the Latest: Select this option to recover the database from the last known good state, with the least possible data loss.

    Recover Full Database to the specified Timestamp: Specify the timestamp to recover the database.

    Recover Full Database to the System Change Number (SCN): Specify the SCN of the backup from which you want to recover the database.

  4. Specify and confirm the Backup Encryption Password for databases without Transparent Database Encryption (TDE) enabled.
  5. If the database has TDE enabled, then the TDE Wallet Backup Location and TDE Password fields are displayed.
  6. Click the Activity tab to check the job status.
    When the job completes successfully, the database is recovered as per the specified recovery options.

Deleting a Backup Using the Browser User Interface

Use the Browser User Interface to delete database backups.

You can delete Level-0, Level-1, and Archive Log backups anytime. To delete long term backups, you must check the Backup Report for the database to determine when the backup is obsolete.
  1. Click the Database tab in the Browser User Interface.
  2. Click the database name, in blue font, to display more details about the database for which you want to delete the backup.
  3. Click Delete Backups .
  4. Select the Backup type you want to delete, whether Level-0, Level-1, and Archive Log backup or long Term backup, then click Start. Click Yes to confirm that you want to delete the backup.
    A link to the job appears. When the job completes successfully, the backup is deleted.

Deleting a Backup Policy

Use the Browser User Interface to delete a database backup policy.

  1. Click the Database tab in the Browser User Interface.
  2. Click Backup Policy in the left navigation to display a list of backup policies.
  3. Expand the Actions menu for a backup policy, then click Delete. Click Yes to confirm that you want to delete the backup policy.
    A link to the job appears. When the job completes successfully, the backup policy is deleted.

Using the CLI to Backup, Restore, and Recover

Use the command-line interface to backup, restore, and recover databases.

Preparing for Database Backup to Disk

Use the command-line interface to create a policy to backup a database to the Oracle Fast Recovery Area (FRA) of a disk.

You can create a backup policy using the Browser User Interface or the command-line interface. Most of the backup and recovery commands enable you to provide either a resource name or resource ID to identify the database.

Backup to disk or the Backup to Internal FRA option in the Browser User Interface, requires a lot of disk space (up to two to three times the size of the database).

Follow these steps to create a backup policy through the command-line interface:

  1. Create a BackupConfig object (backup configuration) using the command odacli create-backupconfig.
    The backup configuration defines the backup, including the location where you want to store the backups and the recovery window.

    The following example creates a backup configuration named mkg1dailydisk with a backup to disk and a 1 day recovery window.

    # odacli create-backupconfig -d Disk -n mkg1dailydisk -w 1
  2. Check the job status.
    # odacli list-jobs
    When the job completes successfully, the backup configuration is ready.
  3. Update an existing database to attach the backup configuration to the database using the ID or Name.
    When you attach the backup configuration to a database, the dcs-agent schedules daily automatic backups for the database.

    The following example uses the Database Resource ID and Backup Configuration ID:

    # odacli modify-database -i d3c4d8f6-5eb7-4f9e-ab27-7bdd5013ac90 -bi 9d942e0a-ba00-4cbc-9bfb-0de83ed279e5 -bp 

    The following example uses the Database Resource Name, mydb and the Backup Configuration Name, mydb:

    # odacli modify-database -in mydb -bin mybcfg -bp
You can create manual backups or scheduled backups to disk.

Preparing for Database Backup to NFS Location

Use the command-line interface to create a policy to backup a database to an External FRA (NFS Location).

You can create a backup policy using the Browser User Interface or the command-line interface. Most of the backup and recovery commands enable you to provide either a resource name or resource ID to identify the database.

Backup to NFS location or the Backup to External FRA option in the Browser User Interface, requires creation of an NFS mount point.

Follow these steps to create a backup policy through the command-line interface:

  1. Create a BackupConfig object (backup configuration) using the command odacli create-backupconfig.
    The backup configuration defines the backup, including the location where you want to store the backups and the recovery window.

    The following example creates a backup configuration named mkg1dailynfs with a backup to disk and a 1 day recovery window.

    # odacli create-backupconfig -d NFS -n mkg1dailynfs -c absolute-path-to-parent-directory-for-NFS-destination -w 1
  2. Check the job status.
    # odacli list-jobs
    When the job completes successfully, the backup configuration is ready.
  3. (Optional) Update an existing database to attach the backup configuration to the database using the ID or Name.
    When you attach the backup configuration to a database, the dcs-agent schedules daily automatic backups for the database.

    The following example uses the Database Resource ID and Backup Configuration ID:

    #  odacli modify-database -i d3c4d8f6-5eb7-4f9e-ab27-7bdd5013ac90 -bi 9d942e0a-ba00-4cbc-9bfb-0de83ed279e5 -bp 

    The following example uses the Database Resource Name, mydb and the Backup Configuration Name, mydb:

    # odacli modify-database -in mydb -bin mybcfg -bp
    The -bp option to specify the backup password is not applicable for TDE-enabled databases.
You can create manual backups or scheduled backups to NFS location.

Preparing for Database Backup to Oracle Cloud

Create a backup configuration to backup a database to Oracle Cloud Infrastructure Object Storage.

Before you can backup to Oracle Object Storage, you must sign up for an Oracle Cloud Infrastructure Object Storage account and know your Oracle Object Storage credentials. When you create an Oracle ObjectStoreSwift object, the command creates and stores the credential details in the system and stores the password in an encrypted Oracle wallet. The Oracle wallet contains the Oracle Object Storage password.

Go to the Oracle Store to sign up for Oracle Cloud Infrastructure Object Storage.

  1. Create an Oracle ObjectStoreSwift object using the command create-objectstoreswift.
    # odacli  create-objectstoreswift -e swift end point URL -n Object Store Swift name [-p] swiftpassword -t Object Store tenant name -u Object Store user name

    For example:

    # odacli create-objectstoreswift -e https://swiftobjectstorage.r1.oracleiaas.com/v1 -n ossn1 -t mytenant -u user.name@example.com -p
    The output includes an objectstoreswift Resource ID to identify an ObjectStoreSwift credential.
  2. Create a BackupConfig object (backup configuration) using the command odacli create-backupconfig .
    The backup configuration defines the backup, including the location (container) where you want to store the backups, the recovery window, and the credentials that are defined in your encrypted Oracle wallet.

    The following example creates a backup configuration named hr_7d_cloudwith a backup to the ObjectStore. The following backup parameters are defined: the container is hr_bucket, crosscheck is not enabled, the recovery window is 7 days, and the ObjectStoreSwift Resource ID is provided, which attaches the ObjectStoreSwiftObject to the backup configuration.

     # odacli  create-backupconfig  -n hr_7d_cloud -d ObjectStore -w 7 -o b974f006-5503-4949-ab6c-6f1a56e4ac37 -c hr_bucket -no-cr  

    Note:

    If the ObjectstoreSwift Object was not created with valid credentials, then creating the backup configuration will fail.
  3. Check the job status.
    # odacli list-jobs
    When the job completes successfully, the backup configuration is ready. When you create a new database, you have the option to associate the database with a backup configuration.
  4. Update an existing database to attach the backup configuration to the database.
    When you attach the backup configuration to a database, the dcs-agent schedules daily automatic backups for the database.
    # odacli modify-database -i e3c4d8f6-5eb7-4f9e-ab27-7bdd5013ac10 -bi 7d942e0a-ba00-4cbc-9bfb-0de83ed279e5 -bp 
You can create manual backups outside of scheduled backups, view backup reports, or disable automatic backups.

Backing Up a Database with the CLI

Create a level 0, level 1, LongTerm database backup, or archivelog backup with the command-line interface.

You can create a database backup in the Browser User Interface or with the command-line interface. When you attach a backup configuration object to a database, the dcs-agent automatically schedules daily backups for the database. The day and time are based on the Oracle Database Appliance time zone. The AutoSchedule triggers a level 0 Backup every Sunday, a level 1 the other 6 days of the week, and an archivelog backup every 30 minutes. Use the command odacli update-schedule to disable or change the scheduled backup time.

To create a Long Term database backup, or a level 0 or level 1 backup outside of the automatic backups, use the command odacli create-backup.

Note:

To recover a database, there must be a level 0 backup taken, so that the backup report contains information about the base backup. Restoring a database to the same system with a different DB Name and DB Unique Name or to another system does not always require a long term database backup report. You can use archivelog, or level 0, or level 1 backup reports as well. If you use the archivelog backup report , a prior database backup must exist.To restore a database to another system, you must have a long term database backup in Oracle Object Storage.
  1. Verify that a backup configuration object is associated with the database.
  2. Create a single backup, outside of the automatic backups, using the command odacli create-backup.
    Use the Database Resource ID or Database Name to identify the database to backup, specify the type of backup, and use a tag to create a name for the backup. You can use up to 30 alphanumeric characters for the backup name tag. If you do not select a backup type (level 0, level 1, LongTerm, or archivelog backup), a level 1 backup is performed. For example, create a level 0 backup named 2018Jan02_HRLevel0 for resource ID 20576eb1-bc32-4e34-bf97-fda0b60ca15b
    # odacli create-backup -i 20576eb1-bc32-4e34-bf97-fda0b60ca15b -bt Regular-L0 -t 2018Jan02_HRLevel0
    When the job finishes, a backup report is generated for the backup. The report contains all of the metadata required to recover a database.
  3. (Optional) Display a list of backup reports.
    # odacli list-backupreports 
  4. (Optional) Display a list of all scheduled backups.
    # odacli list-schedules

Recovering a Database with the CLI

Recover the database to the system using a Backup Report, point-in-time recovery (PITR), a system change number (SCN), or from the latest backup time.

Recovering a database in Oracle Database Appliance is a full RMAN database recovery.

Recovering from a backup report requires JSON input for the backup report.

When recovering a TDE-enabled database, you need not specify the backup password.

  1. Display a list of backup reports and locate the latest Backup Report for the database and save the Backup Report ID.
    # odacli list-backupreports
  2. Use the Backup Report ID to display the details of the Backup Report. Determine how you want to recover the database: PITR, SCN, or Latest and locate the needed information in the Backup Report.
    # odacli describe-backupreport -i 7fbb06bf-e3a3-4aed-b617-4d1cd3d33387
    {
      "id" : "7fbb06bf-e3a3-4aed-b617-4d1cd3d33387",
      "dbResId" : "4903d18a-6c20-4860-9ed0-d2ea7bd3d7b9",
      "tag" : "auto", 
      "dbId" : "3022438697",
      "dbName" : "tdbasm1",
      "dbUniqueName" : "tdbasm1",
      "backupType" : "regular-l0",
      "keepDays" : null,
      "backupLocation" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/Bha_Backups",
      "cfBackupHandle" : "c-3022438697-20201022-03",
      "spfBackupHandle" : "c-3022438697-20201022-03",
      "pitrTimeStamp" : "October 22, 2020 07:51:59 AM UTC",
      "pitrSCN" : "2549429",
      "resetLogsTimeStamp" : "October 22, 2020 05:23:56 AM UTC",
      "resetLogsSCN" : "2510142",
      "oraHomeVersion" : "19.8.0.0.200714",
      "sqlPatches" : "31281355",
      "backupLogLoc" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/Bha_Backups/scaoda8s002-c/database/3022438697/tdbasm1/rmanlog/2020-10-22/rman_backup_auto_2020-10-22_07-51-06.0546.log",
      "tdeWalletLoc" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/TestLtBackupFailur/scaoda8s002-c/database/3022438697/tdbasm1/tdewallet/ewallet_2020102207525186_tdbasm1.p12",
      "dbConfigLoc" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/Bha_Backups/scaoda8s002-c/database/3022438697/tdbasm1/dbconfig/2020-10-22/DBCONFIG_auto_2020-10-22_07-52-43.0230.tar.gz",
      "name" : "Backup_Report_tdbasm1",
      "createTime" : "October 22, 2020 07:51:03 AM UTC",
      "state" : {
        "status" : "CONFIGURED"
      },
      "updatedTime" : "October 22, 2020 07:52:55 AM UTC",
      "backupReportLogDetail" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/Bha_Backups/scaoda8s002-c/database/3022438697/tdbasm1/rmandetaillogreport/2020-10-22/rman_list_backup_detail_auto_2020-10-22_07-52-33.0919.log",
      "dbInfo" : {
        "dbClass" : "OLTP",
        "dbType" : "SI",
        "dbShape" : "odb1",
        "dbEdition" : "EE",
        "dbStorage" : "ASM",
        "dbRedundancy" : null,
        "pdbName" : null,
        "isCdb" : false
      },
      "dbDataSize" : "1662M",
      "dbRedoSize" : "12298M",
      "rmanBackupPieces" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/Bha_Backups/scaoda8s002-c/database/3022438697/tdbasm1/backuppieces/2020-10-22/backupPieces_auto_4903d18a-6c20-4860-9ed0-d2ea7bd3d7b9_20201022075238.json",
      "compressionAlgo" : "MEDIUM",
      "cpuPool" : null,
      "numberOfCores" : null
    }
  3. To recover from a backup report, based on SCN, identify the database ID and the backup report for recovery.

    In the following example, the JSON input file for the backup report is backupreport.json.

    # odacli recover-database -i b5fc646e-01a6-4c8b-8286-7633346c4 -br backupreport.json -p
  4. To recover based on PITR, identify the database ID and the date and time stamp for recovery.
    # odacli recover-database -i b5fc646e-01a6-4c8b-8286-7633346c4 -t PITR -r 01/08/2018 12:57:33 –p
  5. To recover based on SCN, identify the database ID and the SCN number.
    # odacli recover-database -i b5fc646e-01a6-4c8b-8286-7633346c4 -t SCN -s 392375947
  6. To recover based on the latest backup, identify the database ID and use the Latest option.
    # odacli recover-database -i b5fc646e-01a6-4c8b-8286-7633346c4 -t Latest -p
  7. Validate that the job completed. You can track the job in the Activity tab in the Browser User Interface, or run the command odacli describe-job with the job ID.
    # odacli describe-job -i jobId
    When the job completes successfully, the recovery is complete.

Restoring a Database with the CLI

You can restore a database to a system from Oracle Object Storage or NFS backup location using a backup report and the command-line interface.

When you restore a database, environment and validation checks and setup tasks are performed. Restoring a database requires a number of tasks and configuration details, such as creating database storage, Oracle Home, recreating the control file, registering the database, and establishing RMAN restore and recovery. An Oracle Database Appliance backup report is generated for each backup and contains the metadata required to restore a database. The report is designed to help you to quickly and efficiently restore a database.

You can restore a database from one appliance to another appliance, or to the same appliance when the source database is deleted:

  • To restore to a different system, copy the backup report generated by the command odacli create-backup to the other machine's \bin folder and use the command odacli irestore-database with the backup report.

  • To restore to the same system, delete the source database and use the backup report generated by the command odacli create-backup.

To restore a database to another system, you must have a database backup report in Oracle Object Storage, valid credentials in an Oracle wallet (ObjectStoreSwift), the Swift Object Store credential ID, and the SYS user password.

Note:

For Standard Edition Oracle Database 19c or later, you cannot restore Oracle RAC or Oracle RAC One Node Database.

Follow these steps to restore a database using the command-line (CLI):

  1. Display a list of backup reports and locate the latest Backup Report in Oracle Object Storage for the database and save the Backup Report ID.
    # odacli list-backupreports
  2. Use the Backup Report ID to display the details of the latest Backup Report.
    #  odacli  describe-backupreport -i 7fbb06bf-e3a3-4aed-b617-4d1cd3d33387
    {
      "id" : "7fbb06bf-e3a3-4aed-b617-4d1cd3d33387",
      "dbResId" : "4903d18a-6c20-4860-9ed0-d2ea7bd3d7b9",
      "tag" : "auto", 
      "dbId" : "3022438697",
      "dbName" : "tdbasm1",
      "dbUniqueName" : "tdbasm1",
      "backupType" : "regular-l0",
      "keepDays" : null,
      "backupLocation" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/Bha_Backups",
      "cfBackupHandle" : "c-3022438697-20201022-03",
      "spfBackupHandle" : "c-3022438697-20201022-03",
      "pitrTimeStamp" : "October 22, 2020 07:51:59 AM UTC",
      "pitrSCN" : "2549429",
      "resetLogsTimeStamp" : "October 22, 2020 05:23:56 AM UTC",
      "resetLogsSCN" : "2510142",
      "oraHomeVersion" : "19.8.0.0.200714",
      "sqlPatches" : "31281355",
      "backupLogLoc" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/Bha_Backups/scaoda8s002-c/database/3022438697/tdbasm1/rmanlog/2020-10-22/rman_backup_auto_2020-10-22_07-51-06.0546.log",
      "tdeWalletLoc" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/TestLtBackupFailur/scaoda8s002-c/database/3022438697/tdbasm1/tdewallet/ewallet_2020102207525186_tdbasm1.p12",
      "dbConfigLoc" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/Bha_Backups/scaoda8s002-c/database/3022438697/tdbasm1/dbconfig/2020-10-22/DBCONFIG_auto_2020-10-22_07-52-43.0230.tar.gz",
      "name" : "Backup_Report_tdbasm1",
      "createTime" : "October 22, 2020 07:51:03 AM UTC",
      "state" : {
        "status" : "CONFIGURED"
      },
      "updatedTime" : "October 22, 2020 07:52:55 AM UTC",
      "backupReportLogDetail" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/Bha_Backups/scaoda8s002-c/database/3022438697/tdbasm1/rmandetaillogreport/2020-10-22/rman_list_backup_detail_auto_2020-10-22_07-52-33.0919.log",
      "dbInfo" : {
        "dbClass" : "OLTP",
        "dbType" : "SI",
        "dbShape" : "odb1",
        "dbEdition" : "EE",
        "dbStorage" : "ASM",
        "dbRedundancy" : null,
        "pdbName" : null,
        "isCdb" : false
      },
      "dbDataSize" : "1662M",
      "dbRedoSize" : "12298M",
      "rmanBackupPieces" : "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/paasdevdbcssi/Bha_Backups/scaoda8s002-c/database/3022438697/tdbasm1/backuppieces/2020-10-22/backupPieces_auto_4903d18a-6c20-4860-9ed0-d2ea7bd3d7b9_20201022075238.json",
      "compressionAlgo" : "MEDIUM",
      "cpuPool" : null,
      "numberOfCores" : null
    }
  3. (Optional) If you need to generate a new backup report, use the command odacli create-backup.
    # odacli create-backup
  4. Locate the Swift Object Store credential ID for the database backup.
    # odacli list-objectstoreswifts 
  5. Save the backup report as a JSON file in any directory on the appliance. For example, backupreport.json.
  6. Restore the database to the system using the JSON file in the command odacli irestore-database. You must specify the abolute path to the JSON file.
    Run the command, then enter the SYS user password when prompted.
    # odacli irestore-database -r backupreport.json -oid Object Store ID
    To restore a TDE-enabled database, the TDE wallet password must be provided. You must specify the -t option in the command odacli irestore-database. If source database is TDE enabled, then the target database which was restored will also have TDE enabled.
  7. Validate that the job completed. You can track the job in the Activity tab in the Browser User Interface, or run the command odacli describe-job with the job ID.
    # odacli describe-job -i jobId

Restoring Archivelog with the CLI

You can restore archivelog from one SCN to another SCN, or from one timestamp to another timestamp using the command-line interface.

Follow these steps to restore archivelog using the command-line (CLI):

  1. Restore archivelog from one SCN to another SCN, or from one timestamp to another timestamp:
    # odacli restore-archivelog -fs from_scn -ts to_scn 
    # odacli restore-archivelog -ft from_timestamp -tt to_timestamp 

Deleting Backups with the CLI

Delete older, obsolete level 0, level 1 and long term backups.

For level 0 and level 1 backups, the recovery window defined in the Backup Configuration determines when the backup is obsolete. The ranges are as follows:

  • Backup to disk: between 1 and 14 days

  • Backup to the Oracle Object Storage: between 1 and 31 days

For Long Term backups to the Oracle Object Storage, view the Backup Report for a database to determine when the backup is obsolete. To delete Long Term Backup, the Database Resource ID or Database name and the Backup Report are required.

Follow these steps to delete database backups using odacli commands:

  1. Display a list of all backup reports.
    # odacli  list-backupreports 
  2. Obtain the Database ID and type of backup.
    # odacli  describe-backupreport -i Backup Report ID
  3. To delete obsolete level 0 and level 1 backups, use the Database ID or Database Name to delete the backup.
    # odacli delete-backup -i 20576eb1-bc32-4e34-bf97-fda0b60ca15b
  4. To delete Long Term backups, use the Backup Report and a JSON file to delete the backup.

    In the following example, the JSON input file for the backup report is backupreport.json.

    # odacli delete-backup -i 20576eb1-bc32-4e34-bf97-fda0b60ca15b -br backupreport.json