Oracle-Datenbanken in einer Windows-Umgebung für Backup and DR auf einer Sicherungs-/Wiederherstellungs-Appliance vorbereiten

Hinweis

Bevor Sie Oracle-Datenbanken in einer Windows-Umgebung erkennen, schützen und bereitstellen können, müssen Sie Folgendes prüfen:

  1. Prüfen Sie die folgenden Einstellungen auf dem Datenbankserver:

    1. Die Oracle-Datenbank und der Oracle Listener sind aktiv und werden ausgeführt (prüfen Sie die Windows-Dienste).

    2. Prüfen Sie, ob ein TNS-Eintrag mit dem Namen SID vorhanden ist. Die Datei „tnsnames.ora“ befindet sich unter

      %ORACLE_HOME%\network\admin
      
    3. Prüfen Sie mit folgendem Befehl, ob der TNS-Eintrag gültig ist:

      %ORACLE_HOME%\bin\tnsping <SID>
      
  2. Prüfen Sie, ob der Logmodus auf „Archive Log“ festgelegt ist:

    sql> archive log list
    

    Wenn sich die Datenbank im No-Archive-Log-Modus befindet, versetzen Sie sie wieder in den Archive-Log-Modus:

    sql> shutdown immediate;
    sql> startup mount;
    sql> alter database archivelog;
    sql> alter database open;
    
  3. Datenbank-Änderungsblock-Tracking aktivieren. Wenn die Datenbank-BCT deaktiviert ist, wirkt sich das auf die Zeit für die inkrementelle Sicherung aus. Die Funktion „Changed Block Tracking“ ist in der Oracle Enterprise Edition verfügbar. Führen Sie eine SQL-Abfrage aus, um zu prüfen, ob die Änderungsblockverfolgung aktiviert ist. Führen Sie die Abfrage aus:

    sqlplus / as sysdba
    sql> select * from v$block_change_tracking;
    

So aktivieren Sie die Änderungsblockverfolgung:

    sql> alter database enable block change tracking
    using file '<Oracle home directory>\orcl.bct';

Oracle-Datenbank in einer Windows-Umgebung sichern

So sichern Sie eine Oracle-Datenbank in einer Windows-Umgebung:

  1. Legen Sie in der Appliance-Verwaltungskonsole Anwendungsdetails und -einstellungen für Oracle-Datenbanken fest.

  2. Wenden Sie einen Sicherungsplan an, um die Datenbank zu schützen.

Bekanntes Problem

Oracle 19c SQL*Plus (sqlplus.exe) hängt gelegentlich unter Windows, wenn der Befehl „exit“ ausgeführt wird (Doc ID 2820655.1). Dieser Fehler tritt nur unter Windows auf. Oracle hat bestätigt, dass dieses Problem in den SQL*Plus-Versionen 19.10, 19.11 und 19.12 auftritt. Oracle hat die folgenden Lösungen bereitgestellt:

  • SQL*Plus 21.1 oder höher verwenden (oder)
  • Wenden Sie den Patch 31466370 an. Dieser Patch ist für 19.11 und 19.13 verfügbar.

Oracle-Datenbanken in einer Windows-Umgebung manuell mit RMAN auf einen geplanten Sicherungspunkt wiederherstellen, wenn das Archivelog nicht durch Backup und DR geschützt ist

So stellen Sie eine gesamte Oracle-Datenbank in einer Windows-Umgebung wieder her:

  1. Hängen Sie den Snapshot der Datenbanksicherung aus Backup und DR wieder auf dem Oracle-Server an, wie unter Oracle-Datenbank als Standardbereitstellung bereitstellen beschrieben.

  2. Legen Sie die Datenbankumgebung fest und starten Sie die Datenbank im No-Mount-Zustand mit der Parameterdatei aus dem bereitgestellten Backup und DR-Volume (z. B. für ein bereitgestelltes Datenbank-Volume auf E:):

    sqlplus / as sysdba
    sql> startup nomount pfile='E:\<sid>___backup.ora';
    
  3. Erstellen Sie eine SPFILE aus einer PFILE:

    sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora'
    from pfile='E:\<sid>___backup.ora';
    
  4. Starten Sie die Datenbank mit spfile im Status nomount:

    sql> shutdown immediate;
    sql> startup nomount;
    
  5. Stellen Sie die Steuerdatei mit RMAN aus dem bereitgestellten Backup und DR-Volume wieder her:

    rman target /
    rman> restore controlfile from 'E:\cf-D_<sid>-id_<id>.ctl';
    
  6. Stellen Sie die Datenbank bereit:

    rman> alter database mount;
    
  7. Katalogisieren Sie die Datendatei und den Archivdateiordner vom bereitgestellten Backup und DR-Volume in RMAN:

    rman> run
    {
    catalog start with 'E:\datafile' noprompt;
    catalog start with 'E:\archivelog' noprompt;
    }
    
  8. Datenbank wiederherstellen:

    rman> run
    {
    restore database;
    recover database;
    }
    
  9. Öffnen Sie die Datenbank mit der Option zum Zurücksetzen des Logs:

    rman> alter database open resetlogs;
    

Oracle-Datenbanken in einer Windows-Umgebung manuell mit RMAN auf einen geplanten Sicherungspunkt mit Roll-Forward des Backup- und DR-geschützten Archivelogs wiederherstellen

  1. Stellen Sie die Sicherung vom Quelldatenbankserver bereit, um sie wiederherzustellen. Hängen Sie den Sicherungs-Snapshot von Backup und DR wieder auf dem Oracle-Server an, wie unter Oracle-Datenbank als Standard-Bereitstellung bereitstellen beschrieben.

  2. Legen Sie die Datenbankumgebung fest und starten Sie die Datenbank im No-Mount-Zustand mit der Parameterdatei aus dem bereitgestellten Backup und DR-Volume. In diesem Beispiel wird die Datenbanksicherung unter „E:\“ und das geschützte Archivprotokoll unter „Z:\“ bereitgestellt.

       sqlplus / as sysdba
    
       startup nomount pfile='E:\<sid>___backup.ora';
    
  3. Erstellen Sie eine SPFILE aus einer PFILE:

    sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from
    pfile='E:\<sid>___backup.ora';
    
  4. Starten Sie die Datenbank mit „spfile“ im Status „nomount“:

    ```sql
    shutdown immediate;
    startup nomount;
    ```
    
  5. Stellen Sie die Steuerdatei mit RMAN aus der von Backup und DR bereitgestellten Archivprotokollsicherung wieder her:

    ```rman
    rman target /
    rman> restore controlfile from 'Z:\cf-D_<sid>-id_<id>.ctl';
    ```
    
  6. Stellen Sie die Datenbank bereit:

    ```rman
    rman> alter database mount;
    ```
    
  7. Katalogisieren Sie den Datendatei- und Archivelog-Ordner aus der von Backup und DR bereitgestellten Datenbanksicherung und der Archivelog-Sicherung in RMAN:

    ```rman
    rman> run
    {
    catalog start with 'E:\datafile' noprompt;
    catalog start with 'E:\archivelog' noprompt;
    catalog start with 'Z:\archivelog' noprompt;
    }
    ```
    
  8. Datenbank wiederherstellen:

    ```rman
    rman> run
    {
    restore database;
    recover database;
    }
    ```
    

    Führen Sie den Wiederherstellungsbefehl für eine Wiederherstellung zu einem bestimmten Zeitpunkt so aus:

    ```rman
    rman> run
     {
      restore database;
      recover database until time "to_date('<time stamp>','yyyymmddhh24mi')";
     }
     ```
    
  9. Öffnen Sie die Datenbank mit der Option zum Zurücksetzen des Logs:

    ```rman
    rman> alter database open resetlogs;
    ```
    

    Die Datenbank ist für Lese- und Schreibvorgänge verfügbar.

Watch-Script, um zu prüfen, ob Datenbank-Volumes bereitgestellt werden

Wenn Sie eine anwendungsspezifische Bereitstellung erstellen, können Sie ein Watch-Script verwenden, um die Volumes anzuzeigen, die von Backup und DR bereitgestellt werden, sowie die ausgeführten Oracle-Prozesse. Anwendungsspezifische Bereitstellungen werden unter Oracle-Datenbank als virtuelle Anwendung bereitstellen beschrieben.

Wenn Sie eine anwendungsspezifische Bereitstellung durchführen, können Sie dieses Watch-Script verwenden. Der Speicherort des Skripts muss „C:\Programme\Backup und DR\scripts“ sein. Skripts, die auf Windows-Hosts ausgeführt werden, müssen BAT- oder VBS-Dateien sein.

    ```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
    ```

Dadurch wird eine Ausgabe wie die folgende generiert:

    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