Sauvegardez et récupérez Oracle Database sur une machine virtuelle Azure Linux à l’aide de Azure Files
S’applique à : ✔️ Machines virtuelles Linux
Cet article explique comment utiliser Azure Files comme support pour sauvegarder et restaurer une base de données Oracle sur une machine virtuelle Azure. Les étapes décrites dans cet article ont été testées sur Oracle 12.1 et ultérieur.
Dans cet article, Oracle Recovery Manager (RMAN) est utilisé pour sauvegarder la base de données vers un partage de fichiers Azure sur une machine virtuelle en utilisant le protocole SMB (Server Message Block). L’utilisation d’Azure Files comme support de sauvegarde est une solution économique et performante. Cependant, pour les grandes bases de données, Sauvegarde Azure constitue une meilleure solution.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Pour effectuer le processus de sauvegarde et de récupération, vous devez commencer par créer une machine virtuelle Linux avec une instance d’Oracle Database installée. Nous vous recommandons d’utiliser Oracle 12.x ou une version ultérieure.
Créez une instance Oracle Database en suivant la procédure décrite dans l’article Créer une instance Oracle Database dans une machine virtuelle Azure.
Préparation de l'environnement de base de données
Pour créer une session Secure Shell (SSH) avec la machine virtuelle, utilisez la commande suivante. Remplacez
<publicIpAddress>
par l’adresse publique de la machine virtuelle.ssh azureuser@<publicIpAddress>
Basculez vers l'utilisateur racine :
sudo su -
Ajoutez l’utilisateur
oracle
au fichier /etc/sudoers :echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Cette étape suppose que vous disposez d’une instance d’Oracle (test) exécutée sur une machine virtuelle nommée vmoracle19c.
Passez à l’utilisateur
oracle
:sudo su - oracle
Avant de vous connecter, vous devez définir la variable d’environnement
ORACLE_SID
:export ORACLE_SID=test;
Vous devez également ajouter la variable
ORACLE_SID
au fichier utilisateuroracle
.bashrc pour les prochaines connexions à l’aide de la commande suivante :echo "export ORACLE_SID=test" >> ~oracle/.bashrc
Si ce n’est déjà fait, démarrez l’écouteur Oracle :
lsnrctl start
La sortie doit être semblable à l’exemple suivant :
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 18-SEP-2020 03:23:49 Copyright (c) 1991, 2019, Oracle. All rights reserved. Starting /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 19.0.0.0.0 - Production System parameter file is /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/vmoracle19c/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 18-SEP-2020 03:23:49 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/vmoracle19c/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmoracle19c.eastus.cloudapp.azure.com)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) The listener supports no services The command completed successfully
Créez l’emplacement de la zone de récupération rapide (FRA) :
mkdir /u02/fast_recovery_area
Connectez-vous à la base de données :
sqlplus / as sysdba
Si ce n’est déjà fait, démarrez la base de données :
SQL> startup
Définissez les variables d'environnement de la base de données pour la zone de récupération rapide (FRA) :
SQL> alter system set db_recovery_file_dest_size=4096M scope=both; SQL> alter system set db_recovery_file_dest='/u02/fast_recovery_area' scope=both;
Vérifiez que la base de données est en mode
ARCHIVELOG
pour permettre les sauvegardes en ligne.Commencez par vérifier le statut de l'archivage des journaux :
SQL> SELECT log_mode FROM v$database; LOG_MODE ------------ NOARCHIVELOG
Si l’archivage des journaux est en mode
NOARCHIVELOG
, exécutez les commandes suivantes dans SQL Plus :SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN; SQL> ALTER SYSTEM SWITCH LOGFILE;
Créez une table pour tester les opérations de sauvegarde et de restauration :
SQL> create user scott identified by tiger quota 100M on users; SQL> grant create session, create table to scott; SQL> connect scott/tiger SQL> create table scott_table(col1 number, col2 varchar2(50)); SQL> insert into scott_table VALUES(1,'Line 1'); SQL> commit; SQL> quit
Effectuer une sauvegarde sur Azure Files
Pour effectuer une sauvegarde sur Azure Files, procédez comme suit :
- Configurez Azure Files.
- Montez le partage de fichiers Azure sur votre machine virtuelle.
- Sauvegardez la base de données.
- Restaurez et récupérez la base de données.
Configurer Azure Files
Dans cette section, vous allez sauvegarder la base de données Oracle dans Azure Files à l’aide d’Oracle RMAN. Les partages de fichiers Azure sont des partages de fichiers entièrement gérés dans le Cloud. Vous pouvez y accéder à l’aide du protocole SMB ou du protocole NFS (Network File System).
Cette étape couvre la création d'un partage de fichiers qui utilise le protocole SMB pour procéder au montage sur votre machine virtuelle. Pour plus d’informations sur le montage à l’aide de NFS, voir Comment créer un partage NFS.
Lors du montage du partage de fichier Azure Files, utilisez l’option cache=none
pour désactiver la mise en cache des données du partage de fichiers. Pour vous assurer que l’utilisateur oracle
est bien propriétaire des fichiers créés dans le partage, définissez les options uid=oracle
et gid=oinstall
.
Configurez votre compte de stockage :
Sur le Portail Azure Microsoft, sélectionnez + Créer une ressources, puis recherchez et sélectionnez Compte de stockage.
Dans le volet Créer un compte de stockage :
- Pour Groupe de ressources, sélectionnez votre groupe de ressources existant, rg-oracle.
- Pour Nom du compte de stockage, saisissez oracbkup1.
- Assurez-vous que l’Emplacement est défini sur la même région que toutes vos autres ressources du groupe.
- Paramétrez les Performances sur Standard.
- Pour Type de compte, sélectionnez StockageV2 (usage général v2).
- Pour Réplication, sélectionnez Stockage localement redondant (LRS) .
Cliquez sur l’onglet Avancé. Dans Azure Files , réglez le Partages de fichiers volumineuxsur Activé . Sélectionnez Vérifier + créer, puis Créer.
Une fois le compte de stockage créé, accédez à la ressource et sélectionnez Partages de fichiers.
Sélectionnez + Partage de fichiers, puis dans le panneau Nouveau partage de fichiers :
Pour Nom, entrez orabkup1.
Définissez Quota sur 10240 gibioctets (Gio).
Le quota reflète une limite supérieure que le partage de fichiers peut atteindre. Étant donné que vous utilisez le stockage standard dans cet exemple, les ressources sont avec paiement à l’utilisation et ne sont pas approvisionnées. Définir le quota sur 10 tébioctets (Tio) n’entraîne pas de coûts au-delà de ce que vous utilisez. Si votre stratégie de sauvegarde nécessite davantage de stockage, vous devez fixer un quota supérieur pour pouvoir contenir toutes vos sauvegardes.
Sous Niveaux, sélectionnez Transaction optimisée.
Sélectionnez Create (Créer).
Lorsque le partage de fichiers est créé, sélectionnez orabkup1 dans le volet Paramètres du partage de fichiers .
Cliquez sur l'onglet Se connecter pour ouvrir le volet Se connecter, puis cliquez sur l’onglet Linux. Copiez les commandes fournies pour le montage du partage de fichiers à l'aide du protocole SMB.
Montez le partage de fichiers Azure sur votre machine virtuelle.
Créez le point de montage :
sudo mkdir /mnt/orabackup
Configurez les informations d'identification :
if [ ! -d "/etc/smbcredentials" ]; then sudo mkdir /etc/smbcredentials fi
Exécutez la commande suivante : Remplacez
<Your Storage Account Key1>
par la clé de compte de stockage que vous avez récupérée précédemment.if [ ! -f "/etc/smbcredentials/orabackup1.cred" ]; then sudo bash -c 'echo "username=orabackup1" >> /etc/smbcredentials/orabackup1.cred' sudo bash -c 'echo "password=<Your Storage Account Key1>" >> /etc/smbcredentials/orabackup1.cred' fi
Modifiez les autorisations sur le fichier d'informations d’identification :
sudo chmod 600 /etc/smbcredentials/orabackup1.cred
Ajoutez le montage au fichier /etc/fstab :
sudo bash -c 'echo "//orabackup1.file.core.windows.net/orabackup /mnt/orabackup cifs nofail,vers=3.0,credentials=/etc/smbcredentials/orabackup1.cred,dir_mode=0777,file_mode=0777,serverino,cache=none,uid=oracle,gid=oinstall" >> /etc/fstab'
Exécutez les commandes suivantes pour monter le partage de fichiers Azure à l'aide du protocole SMB :
sudo mount -t cifs //orabackup1.file.core.windows.net/orabackup /mnt/orabackup -o vers=3.0,credentials=/etc/smbcredentials/orabackup1.cred,dir_mode=0777,file_mode=0777,serverino,cache=none,uid=oracle,gid=oinstall
Si vous obtenez une erreur similaire à l’exemple suivant, il est possible que le package CIFS (Common Internet File System) ne soit pas installé sur votre hôte Linux :
mount: wrong fs type, bad option, bad superblock on //orabackup1.file.core.windows.net/orabackup
Pour vérifier sir le package CIFS est installé, exécutez la commande suivante :
sudo rpm -qa|grep cifs-utils
Si la commande ne renvoie rien, installez le package CIFS à l'aide de la commande suivante : Puis exécutez à nouveau la commande
mount
pour le montage du partage de fichiers Azure.sudo yum install cifs-utils
Vérifiez que le partage de fichiers est correctement monté à l'aide de la commande suivante :
df -h
La sortie doit être semblable à l’exemple qui suit :
$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.3G 0 3.3G 0% /dev tmpfs 3.3G 0 3.3G 0% /dev/shm tmpfs 3.3G 17M 3.3G 1% /run tmpfs 3.3G 0 3.3G 0% /sys/fs/cgroup /dev/sda2 30G 9.1G 19G 34% / /dev/sdc1 59G 2.7G 53G 5% /u02 /dev/sda1 497M 199M 298M 41% /boot /dev/sda15 495M 9.7M 486M 2% /boot/efi tmpfs 671M 0 671M 0% /run/user/54321 /dev/sdb1 14G 2.1G 11G 16% /mnt/resource tmpfs 671M 0 671M 0% /run/user/54322 //orabackup1.file.core.windows.net/orabackup 10T 0 10T 0% /mnt/orabackup
Sauvegarder la base de données
Dans cette section, vous allez utiliser Oracle RMAN pour effectuer une sauvegarde complète de la base de données et des journaux d’archivage. Vous écrivez ensuite la sauvegarde en tant que jeu de sauvegarde sur le partage de fichiers Azure que vous avez monté précédemment.
Configurez l'outil RMAN pour effectuer la sauvegarde sur le point de montage Azure Files :
rman target / RMAN> configure snapshot controlfile name to '/mnt/orabkup/snapcf_ev.f'; RMAN> configure channel 1 device type disk format '/mnt/orabkup/%d/Full_%d_%U_%T_%s'; RMAN> configure channel 2 device type disk format '/mnt/orabkup/%d/Full_%d_%U_%T_%s';
Dans cet exemple, nous limitons la taille des éléments de sauvegarde RMAN à 4 Gio. Toutefois, la valeur de sauvegarde RMAN
maxpiecesize
peut monter jusqu’à 4 Tio, soit la taille maximale de fichier pour les partages de fichiers Azure Standard et Premium . Pour plus d’informations, voir Objectifs de performance et d’extensibilité d’Azure Files.RMAN> configure channel device type disk maxpiecesize 4000G;
Confirmez les détails du changement de configuration :
RMAN> show all;
Exécutez la sauvegarde. La commande suivante permet d'effectuer une sauvegarde complète de la base de données, fichiers des journaux d'archivage compris, sous forme de jeu de sauvegarde au format compressé :
RMAN> backup as compressed backupset database plus archivelog;
Vous avez sauvegardé la base de données en ligne en utilisant Oracle RMAN, la sauvegarde se trouvant dans Azure Files. Étant donné que vous stockez les sauvegardes dans Azure Files, vous pouvez y accéder à partir d’autres machines virtuelles si vous devez la cloner.
L’utilisation de RMAN et d’Azure Files pour la sauvegarde de base de données présente de nombreux avantages. Le temps de sauvegarde et de restauration est lié à la taille de la base de données. Pour les grandes bases de données, ces opérations peuvent prendre un temps considérable.
Une alternative consiste à utiliser des sauvegardes de machines virtuelles cohérentes avec les applications via Sauvegarde Azure. Ce mécanisme utilise la technologie de capture instantanée pour effectuer des sauvegardes rapides, quelle que soit la taille de la base de données. L’intégration à un coffre Recovery Services permet un stockage Cloud de vos sauvegardes Oracle Database, auquel vous pouvez accéder à partir d’autres machines virtuelles et d’autres régions Azure.
Restaurer et récupérer la base de données
Arrêtez l'instance d'Oracle :
sqlplus / as sysdba SQL> shutdown abort ORACLE instance shut down.
Supprimez les fichiers de données de la base de données :
cd /u02/oradata/TEST rm -f *.dbf
Les commandes suivantes utilisent RMAN pour restaurer les fichiers de données manquants et récupérer la base de données :
rman target / RMAN> startup mount; RMAN> restore database; RMAN> recover database; RMAN> alter database open;
Assurez-vous que le contenu de la base de données ait bien été récupéré :
RMAN> SELECT * FROM scott.scott_table;
La sauvegarde et la récupération de la base de données Oracle Database 19c sur machine virtuelle Linux Azure sont maintenant terminées.
Supprimer la machine virtuelle
Quand vous n’avez plus besoin de la machine virtuelle, vous pouvez utiliser la commande suivante pour supprimer le groupe de ressources, la machine virtuelle et toutes les ressources associées :
az group delete --name rg-oracle
Étapes suivantes
Créer des machines virtuelles hautement disponibles
Explorer des exemples Azure CLI pour le déploiement de machines virtuelles