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'il existe une entrée tns portant le nom SID. Le fichier tnsnames.ora se trouve sous
%ORACLE_HOME%\network\adminVé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 mode" (Mode de journalisation d'archive) :
sql> archive log listSi la base de données est en mode sans journal d'archivage, remettez-la en mode avec 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é, la durée de la sauvegarde incrémentielle est affectée. La fonctionnalité de suivi des blocs de modifications est disponible dans Oracle Enterprise Edition. Exécutez une requête SQL pour vérifier que le suivi des blocs de modification est activé. Exécutez la requête :
sqlplus / as sysdba sql> select * from v$block_change_tracking;
Pour activer le suivi des blocs de modification :
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 :
Dans la console de gestion des appliances, définissez Application Details & Settings for Oracle Databases (Détails et paramètres de l'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 SQL*Plus (sqlplus.exe) se bloque parfois sur Windows lors de l'exécution de la commande exit (ID de document 2820655.1). Ce bug est spécifique à Windows. Oracle a confirmé que ce problème se produit dans les versions 19.10, 19.11 et 19.12 de SQL*Plus. 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érer manuellement des bases de données Oracle dans un environnement Windows à l'aide de RMAN à un point de sauvegarde planifié si le journal d'archive n'est pas protégé par Backup and DR
Pour récupérer une base de données Oracle entière dans un environnement Windows :
Remontez l'instantané de sauvegarde de la base de données depuis Backup and DR vers le serveur Oracle, comme indiqué dans Monter une base de données Oracle en tant que montage standard.
Définissez l'environnement de base de données et démarrez la base de données dans l'état "no-mount" à l'aide du fichier de paramètres du volume Backup and DR installé (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 spfile à l'état
nomount:sql> shutdown immediate; sql> startup nomount;Restaurez le fichier de contrôle à l'aide de RMAN à partir du volume Backup and DR monté :
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 à partir du volume Backup and DR monté sur 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 restauration des journaux d'archive protégés par Backup and DR
Montez la sauvegarde à partir du serveur de base de données source pour la récupérer. Remontez l'instantané de sauvegarde de Backup and DR sur le serveur Oracle, comme indiqué 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 "no-mount" à l'aide du fichier de paramètres du volume monté Backup and DR. Dans cet exemple, la sauvegarde de la base de données est montée sur E:\ et le journal d'archive protégé est monté sur Z:.
sqlplus / as sysdbastartup 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 spfile dans l'état "nomount" :
```sql shutdown immediate; startup nomount; ```Restaurez le fichier de contrôle à l'aide de RMAN à partir de la sauvegarde du journal d'archive Backup and DR montée :
```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; ```Cataloguer le fichier de données et le dossier de journaux d'archive à partir de la sauvegarde de base de données et de la sauvegarde de journaux d'archive Backup and DR montées sur 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 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 vérifier si les volumes de base de données sont montés
Si vous créez un montage compatible avec les applications, vous pouvez utiliser un script de surveillance pour afficher les volumes montés à partir de Backup and DR, ainsi que les processus Oracle en cours d'exécution. Les montages compatibles avec les applications sont décrits dans Monter une base de données Oracle en tant qu'application virtuelle.
Vous pouvez utiliser ce script de surveillance lorsque vous effectuez un montage compatible avec les applications. L'emplacement du script doit être le suivant : 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
```
qui produit un résultat comme celui-ci :
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