Sauvegarde d'une base de données vers Object Storage à l'aide de RMAN

Cet article explique comment utiliser Recovery Manager (RMAN) pour gérer les sauvegardes de votre base de données de système de base de données vers votre propre instance Object Storage.

Afin d'effectuer une sauvegarde vers le service, vous devez créer un bucket Object Storage pour les sauvegardes, générer un mot de passe pour le service, installer le module Oracle Database Cloud Backup, puis configurer RMAN pour envoyer les sauvegardes vers le service. Le module de sauvegarde est une interface de sauvegarde du système sur bande (SBT) étroitement intégrée à RMAN, afin que vous puissiez utiliser les commandes RMAN habituelles pour effectuer des opérations de sauvegarde et de récupération.

La mention Swift est indiquée dans la console et dans l'URL d'adresse du service. En effet, le module de sauvegarde est généralement utilisé pour effectuer les sauvegardes vers Oracle Database Backup Cloud Service, une banque d'objets OpenStack Swift.

Conseil :

Sur un système de base de données à noeud unique, vous pouvez utiliser dbcli pour effectuer une sauvegarde vers Object Storage. Il s'agit d'une alternative à l'installation du module de sauvegarde et à l'utilisation de RMAN pour les sauvegardes. Pour plus d'informations, reportez-vous à Commandes objectstoreswift. Les commandes dbcli ne sont pas disponibles pour les systèmes de base de données RAC à plusieurs noeuds.

Prérequis

Vous aurez besoin des éléments suivants :

  • Un système de base de données et une base de données à sauvegarder.
  • Le réseau cloud (virtuel) du système de base de données doit être configuré avec un accès à Object Storage :
    • Pour accéder à Object Storage dans la même région que celle du système de base de données, Oracle recommande d'utiliser une passerelle de service.
    • Pour accéder à Object Storage dans une autre région que celle du système de base de données, utilisez une passerelle Internet. Le trafic réseau entre le système de base de données et Object Storage ne quitte pas le cloud et n'atteint jamais le réseau Internet public.

    Pour plus d'informations, reportez-vous à Réseau cloud virtuel et sous-réseaux.

  • Un bucket Object Storage existant à utiliser comme destination de sauvegarde. Vous pouvez utiliser la console ou l'API Object Storage pour créer le bucket.

    Pour plus d'informations, reportez-vous à Gestion des buckets.

  • Un jeton d'authentification généré par OCI. Vous pouvez utiliser la console ou l'API IAM pour générer le mot de passe.

    Pour plus d'informations, reportez-vous à Utilisation des jetons d'authentification dans Gestion des informations d'identification utilisateur.

  • Le nom utilisateur (indiqué lors de l'installation et de l'utilisation du module de sauvegarde) doit disposer d'un accès de niveau location à Object Storage. Pour ce faire, vous pouvez simplement ajouter le nom utilisateur au groupe d'administrateurs. Toutefois, cette opération donne accès à l'ensemble des services cloud. Il est préférable qu'un administrateur crée une stratégie semblable à la suivante, qui limite l'accès aux seules ressources d'Object Storage requises afin de sauvegarder et de restaurer la base de données :

    Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name = '<bucket_name>'
    
    Allow group <group_name> to read buckets in compartment <compartment_name>

    Pour plus d'informations sur l'ajout d'un utilisateur à un groupe, reportez-vous à Gestion des groupes. Pour plus d'informations sur les stratégies, reportez-vous à Introduction aux stratégies.

Installation du module de sauvegarde sur le système de base de données

  1. Connectez-vous via SSH au système de base de données.
    ssh -i <SSH_key_used_when_launching_the_DB_system> opc@<DB_system_IP_address_or_hostname>
  2. Connectez-vous en tant qu'utilisateur opc.
    login as: opc
  3. Passez à l'utilisateur oracle à l'aide de la commande sudo.
    sudo su - oracle
  4. Passez au répertoire qui contient le fichier opc_install.jar du module de sauvegarde.
    cd /opt/oracle/oak/pkgrepos/oss/odbcs
  5. Utilisez la syntaxe de commande suivante pour installer le module de sauvegarde.
    java -jar opc_install.jar -opcId <user_id> -opcPass '<auth_token>' -container <bucket_name>;-walletDir ~/hsbtwallet/ -libDir ~/lib/ -configfile ~/config -host https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    Les paramètres sont les suivants :

    Paramètre Description
    -opcId

    Nom utilisateur du compte utilisateur Oracle Cloud Infrastructure, par exemple : -opcId <username>@<example>.com.

    Il s'agit du nom utilisateur qui sert pour la connexion à la console.

    Le nom utilisateur doit correspondre à un membre du groupe Administrateurs, comme indiqué dans la section Prérequis.

    Vous pouvez également indiquer le nom utilisateur entre apostrophes. Cela peut être nécessaire si le nom contient des caractères spéciaux, par exemple : -opcId 'j~smith@<example>.com'

    Veillez à utiliser des apostrophes droites et non des apostrophes courbes.

    -opcPass

    Jeton d'authentification généré à l'aide de la console ou de l'API IAM, entre apostrophes, par exemple : -opcPass <password>

    Veillez à utiliser des apostrophes droites et non des apostrophes courbes.

    Pour plus d'informations, reportez-vous à Gestion des informations d'identification utilisateur.

    Il ne s'agit pas du mot de passe de l'utilisateur Oracle Cloud Infrastructure.

    -container

    Nom d'un bucket existant dans Object Storage à utiliser comme destination de sauvegarde. Par exemple : -container DBBackups

    -walletDir

    Répertoire dans lequel l'outil d'installation crée un portefeuille Oracle contenant le nom utilisateur et le jeton d'authentification Oracle Cloud Infrastructure.

    -walletDir ~/hsbtwallet crée le portefeuille dans le répertoire de base de l'utilisateur en cours (oracle).

    -libDir

    Répertoire dans lequel la bibliothèque SBT est stockée. Le répertoire doit exister pour pouvoir exécuter la commande. Ce paramètre entraîne le téléchargement de la bibliothèque SBT la plus récente.

    -libDir ~/lib/ permet de télécharger le fichier libopc.so vers le répertoire de base de l'utilisateur en cours, par exemple, /home/oracle/lib/libopc.so.

    -configfile

    Nom du fichier de paramètres d'initialisation qui sera créé par l'outil d'installation. Ce fichier sera référencé par vos travaux RMAN.

    -configfile ~/config crée le fichier dans le répertoire de base de l'utilisateur en cours, par exemple /home/oracle/config.

    -host

    URL endpoint vers laquelle les sauvegardes doivent être envoyées :

    https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    object_storage_namespace est l'espace de noms Object Storage de votre location. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.

    N'ajoutez pas de barre oblique après l'espace de noms Object Storage.

    Pour rechercher le nom de région, reportez-vous à Régions et domaines de disponibilité.

Configuration de RMAN

Cette rubrique explique comment configurer RMAN de sorte à utiliser le bucket en tant que destination de sauvegarde par défaut. Dans l'exemple suivant, nous partons du principe que vous êtes encore connecté au système de base de données.

  1. Sur le système de base de données, définissez les variables d'environnement ORACLE_HOME et ORACLE_SID à l'aide de l'utilitaire oraenv.
    . oraenv
  2. Connectez-vous à la base de données à l'aide de RMAN.
    rman target /
  3. Configurez RMAN de manière à ce qu'il utilise l'appareil SBT et qu'il pointe vers le fichier config créé au moment de l'installation du module de sauvegarde. Un exemple de commande pour une base de données version 12 est présenté ci-après.
    CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 
        'SBT_LIBRARY=/home/oracle/lib/libopc.so, 
        SBT_PARMS=(OPC_PFILE=/home/oracle/config)';
  4. Configurez RMAN de sorte à utiliser SBT_TAPE par défaut. L'exemple suivant active la sauvegarde automatique du fichier de contrôle et du fichier SPFILE vers SBT_TAPE, et configure le cryptage. D'autres paramètres peuvent s'appliquer à votre installation, tels que la compression, le nombre de canaux de sauvegarde et de récupération à utiliser, la stratégie de conservation des sauvegardes, la stratégie de suppression des journaux archivés, etc. Pour plus d'informations sur le choix des paramètres appropriés, reportez-vous à la documentation sur la sauvegarde et la récupération Oracle correspondant à votre version d'Oracle.
    CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
    CONFIGURE BACKUP OPTIMIZATION ON;
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';
    CONFIGURE ENCRYPTION FOR DATABASE ON;

    Remarques :

    Les sauvegardes doivent être cryptées. Vous indiquez le cryptage lorsque vous effectuez une sauvegarde. Vous obtenez une erreur si une sauvegarde n'est pas cryptée.

Une fois la configuration RMAN terminée, vous pouvez utiliser les mêmes commandes RMAN que pour les sauvegardes sur bande.

Sauvegarde de la base de données

Cette rubrique fournit des exemples de commandes de sauvegarde fréquemment utilisées.

  1. Définissez le cryptage de base de données :
    SET ENCRYPTION IDENTIFIED BY "password" ONLY;

    Ce paramètre n'est pas permanent. Vous devez le définir à chaque nouvelle session RMAN.

  2. Sauvegardez la base de données et les journaux d'archivage. Vous trouverez ci-après quelques exemples de commandes. Pour plus d'informations sur le choix d'une procédure de sauvegarde correspondant à vos besoins, reportez-vous à la documentation sur la sauvegarde et la récupération Oracle correspondant à votre version d'Oracle. Pensez à effectuer des sauvegardes régulièrement afin de minimiser le risque de perte de données, et à toujours inclure une copie du fichier SPFILE et du fichier de contrôle. L'exemple ci-après utilise des sauvegardes incrémentielles multisections, fonctionnalité introduite dans la version 12c. Lorsque vous utilisez la version 11g, excluez la clause section size.
    BACKUP INCREMENTAL LEVEL 0 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 CUMULATIVE SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
  3. Sauvegardez les journaux d'archivage fréquemment afin de minimiser le risque de perte de données et conservez plusieurs copies de sauvegarde par précaution.
    BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;

Une fois le travail de sauvegarde terminé, vous pouvez afficher les fichiers de sauvegarde du bucket dans la console sur la page Stockage, en sélectionnant Object Storage.