Avant de commencer
Avant de pouvoir découvrir, protéger et monter des bases de données Oracle dans un environnement Windows, assurez-vous de vérifier les points suivants:
Vérifiez les paramètres suivants sur le serveur de base de données:
La base de données Oracle et l'écouteur Oracle sont opérationnels (vérifiez les services Windows).
Vérifiez qu'une entrée tns existe avec le nom SID. Le fichier tnsnames.ora se trouve sous
%ORACLE_HOME%\network\admin
Vérifiez que l'entrée tns est valide en exécutant la commande suivante:
%ORACLE_HOME%\bin\tnsping <SID>
Vérifiez si le mode de journalisation est défini sur "Archive Log" (Journal d'archive) :
sql> archive log list
Si la base de données est en mode journal sans archivage, rétablissez-la en mode journal d'archivage:
sql> shutdown immediate; sql> startup mount; sql> alter database archivelog; sql> alter database open;
Activez le suivi des blocs de modification de la base de données. Lorsque le BCT de la base de données est désactivé, le temps de sauvegarde incrémentielle est affecté. La fonctionnalité de suivi des modifications de blocs est disponible dans Oracle Enterprise Edition. Exécutez une requête SQL pour vérifier que le suivi des blocs de modifications est activé. Exécutez la requête:
sqlplus / as sysdba sql> select * from v$block_change_tracking;
Pour activer le suivi des modifications de bloc:
sql> alter database enable block change tracking
using file '<Oracle home directory>\orcl.bct';
Sauvegarder une base de données Oracle dans un environnement Windows
Pour sauvegarder une base de données Oracle dans un environnement Windows, procédez comme suit:
Définissez les informations et paramètres d'application pour les bases de données Oracle.
Appliquez un plan de sauvegarde pour protéger la base de données.
Problème connu
Oracle 19c SQLPlus (sqlplus.exe) se bloque parfois sous Windows lors de l'exécution de la commande de sortie (ID de document 2820655.1). Ce bug est spécifique à Windows. Oracle a confirmé que ce problème se produit dans les versions SQLPlus 19.10, 19.11 et 19.12. Oracle a fourni les solutions suivantes:
- Utilisez SQL*Plus 21.1 ou version ultérieure (ou)
- Appliquez le correctif 31466370. Ce correctif est disponible pour les versions 19.11 et 19.13.
Récupérez manuellement les bases de données Oracle dans un environnement Windows à l'aide de RMAN vers un point de sauvegarde planifié si le journal d'archive n'est pas protégé par la sauvegarde et la reprise après sinistre.
Pour récupérer une base de données Oracle entière dans un environnement Windows:
Montez l'instantané de sauvegarde de la base de données à partir de Backup and DR sur le serveur Oracle, comme décrit dans Monter une base de données Oracle en tant que montage standard.
Définissez l'environnement de la base de données et démarrez-la en état de non-montage à l'aide du fichier de paramètres du volume installé Backup and DR (par exemple, pour un volume de base de données installé sur E:):
sqlplus / as sysdba sql> startup nomount pfile='E:\<sid>___backup.ora';
Créez un fichier spfile à partir d'un fichier pfile:
sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from pfile='E:\<sid>___backup.ora';
Démarrez la base de données avec le fichier spfile dans l'état
nomount
:sql> shutdown immediate; sql> startup nomount;
Restaurez le fichier de contrôle à l'aide de RMAN à partir du volume installé pour la sauvegarde et la reprise après sinistre:
rman target / rman> restore controlfile from 'E:\cf-D_<sid>-id_<id>.ctl';
Installez la base de données:
rman> alter database mount;
Cataloguez le fichier de données et le dossier de fichiers d'archive du volume installé avec Backup and DR dans RMAN:
rman> run { catalog start with 'E:\datafile' noprompt; catalog start with 'E:\archivelog' noprompt; }
Restaurez et récupérez la base de données:
rman> run { restore database; recover database; }
Ouvrez la base de données avec l'option de réinitialisation du journal:
rman> alter database open resetlogs;
Récupérer manuellement des bases de données Oracle dans un environnement Windows à l'aide de RMAN vers un point de sauvegarde planifié avec un transfert en avant du journal d'archive protégé par Backup and DR
Montez l'image à partir du serveur de base de données source pour effectuer la récupération. Remettez l'instantané de sauvegarde de Backup and DR sur le serveur Oracle, comme décrit dans Monter une base de données Oracle en tant que montage standard.
Définissez l'environnement de la base de données et démarrez-la en état de non-montage à l'aide du fichier de paramètres du volume monté Backup and DR. Dans cet exemple, l'image de sauvegarde de la base de données est montée à: E:\ et le journal d'archive protégé est monté à: Z:.
sqlplus / as sysdba
startup nomount pfile='E:\<sid>___backup.ora';
Créez un fichier spfile à partir d'un fichier pfile:
sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from pfile='E:\<sid>___backup.ora';
Démarrez la base de données avec le fichier spfile dans l'état "nomount" :
```sql shutdown immediate; startup nomount; ```
Restaurez le fichier de contrôle à l'aide de RMAN à partir de l'image de journal d'archive montée pour la sauvegarde et la reprise après sinistre:
```rman rman target / rman> restore controlfile from 'Z:\cf-D_<sid>-id_<id>.ctl'; ```
Installez la base de données:
```rman rman> alter database mount; ```
Cataloguez le fichier de données et le dossier archivelog à partir de l'image de base de données montée pour la sauvegarde et la reprise après sinistre et de l'image de journal d'archive dans RMAN:
```rman rman> run { catalog start with 'E:\datafile' noprompt; catalog start with 'E:\archivelog' noprompt; catalog start with 'Z:\archivelog' noprompt; } ```
Restaurez et récupérez la base de données:
```rman rman> run { restore database; recover database; } ```
Pour effectuer une récupération à un moment précis, exécutez la commande de récupération comme suit:
```rman rman> run { restore database; recover database until time "to_date('<time stamp>','yyyymmddhh24mi')"; } ```
Ouvrez la base de données avec l'option de réinitialisation du journal:
```rman rman> alter database open resetlogs; ```
La base de données est disponible en lecture et en écriture.
Script de surveillance pour surveiller l'installation des volumes de base de données
Si vous créez un montage compatible avec les applications, vous pouvez utiliser un script de surveillance pour afficher les volumes installés à partir de Backup and DR et les processus Oracle en cours d'exécution. Les montages compatibles avec les applications sont décrits dans la section Installer une base de données Oracle en tant qu'application virtuelle.
Lorsque vous effectuez un montage compatible avec les applications, vous pouvez utiliser ce script de surveillance. L'emplacement du script doit être: C:\Program Files\Backup and DR\scripts. Les scripts exécutés sur des hôtes Windows doivent être des fichiers .bat ou .vbs.
```Windows
@echo off
:loop
echo. > watchtemp
echo ------------------ >> watchtemp
echo Oracle Processes >> watchtemp
echo ------------------ >> watchtemp
tasklist /svc | findstr oracle >> watchtemp
echo. >> watchtemp
echo ------------------ >> watchtemp
echo Backup and DR Mounts >> watchtemp
echo ------------------ >> watchtemp
wmic volume get label, name | findstr Backup and DR >> watchtemp
echo. >> watchtemp
cls
type watchtemp
timeout 2 > null
goto loop
```
Le résultat se présente comme suit:
Oracle Processes
------------------
oracle.exe 1492 OracleServiceORCL
oracle.exe 3768 OracleServiceTestDB
oracle.exe 872 OracleServiceTestDB2
------------------
Backup and DR Mounts
------------------
Backup and DR-Backup-ORCL D:\mount_1