Oracle-Datenbanken in einer Windows-Umgebung schützen und wiederherstellen
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Hinweise
Bevor Sie Oracle-Datenbanken in einer Windows-Umgebung erkennen, schützen und bereitstellen können, müssen Sie Folgendes prüfen:
Prüfen Sie die folgenden Einstellungen auf dem Datenbankserver:
Die Oracle-Datenbank und der Oracle-Listener sind aktiv (Windows-Dienste prüfen).
Prüfen Sie, ob ein tns-Eintrag mit dem Namen SID vorhanden ist.
Die Datei tnsnames.ora befindet sich unter
%ORACLE_HOME%\network\admin
Prüfen Sie, ob der tns-Eintrag gültig ist, indem Sie Folgendes ausführen:
%ORACLE_HOME%\bin\tnsping <SID>
Prüfen Sie, ob der Protokollmodus auf „Archivprotokoll“ gesetzt ist:
sql> archive log list
Wenn sich die Datenbank im Modus „Kein Archivierungsprotokoll“ befindet, kehren Sie zum Modus „Archivierungsprotokoll“ zurück:
sql> shutdown immediate;
sql> startup mount;
sql> alter database archivelog;
sql> alter database open;
Aktivieren Sie die Block-Verfolgung für Datenbankänderungen. Wenn die Datenbank-BCT deaktiviert ist, wirkt sich das auf die Dauer der inkrementellen Sicherung aus. Die Funktion zum Blockieren von Änderungen ist in der Oracle Enterprise Edition verfügbar. Führen Sie eine SQL-Abfrage aus, um zu prüfen, ob das Blockierungs-Tracking aktiviert ist. Führen Sie die Abfrage aus:
sqlplus / as sysdba
sql> select * from v$block_change_tracking;
So aktivieren Sie das Blockieren von Änderungen:
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:
Wenden Sie einen Sicherungsplan an, um die Datenbank zu schützen.
Bekanntes Problem
Oracle 19c SQLPlus (sqlplus.exe) hängt unter Windows gelegentlich beim Ausführen des Befehls „exit“ (Doc ID 2820655.1) fest.
Dieser Fehler ist nur auf Windows-Systemen zu finden. Oracle hat bestätigt, dass dieses Problem in den SQLPlus-Versionen 19.10, 19.11 und 19.12 auftritt. Oracle hat folgende 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 an einem geplanten Sicherungspunkt wiederherstellen, wenn das Archive-Log nicht durch Sicherung und Notfallwiederherstellung geschützt ist
So stellen Sie eine vollständige Oracle-Datenbank in einer Windows-Umgebung wieder her:
Verbinden Sie den Snapshot der Datenbanksicherung aus dem Sicherungs- und Notfallwiederherstellungsdienst wieder mit dem Oracle-Server, wie unter Oracle-Datenbank als Standard-Mount bereitstellen beschrieben.
Legen Sie die Datenbankumgebung fest und starten Sie die Datenbank im Zustand „Nicht bereitgestellt“ mithilfe der Parameterdatei aus dem bereitgestellten Volume für die Sicherung und Notfallwiederherstellung (z. B. für ein bereitgestelltes Datenbankvolume auf E:):
Katalogisieren Sie die Datendatei und den Ordner mit den Archivdateien aus dem bereitgestellten Volume für die Sicherung und Notfallwiederherstellung in RMAN:
rman>run{catalogstartwith'E:\datafile' noprompt;catalog start with 'E:\archivelog'noprompt;}
So stellen Sie die Datenbank wieder her:
rman> run
{
restore database;
recover database;
}
Öffnen Sie die Datenbank mit der Option zum Zurücksetzen des Protokolls:
rman> alter database open resetlogs;
Oracle-Datenbanken in einer Windows-Umgebung manuell mit RMAN zu einem geplanten Sicherungspunkt mit Vorwärtswiederherstellung des mit Backup und Notfallwiederherstellung geschützten Archivelogs wiederherstellen
Sie können das Image vom Quelldatenbankserver bereitstellen, um es wiederherzustellen. Verbinden Sie den Sicherungs-Snapshot aus dem Sicherungs- und Notfallwiederherstellungsdienst wieder mit dem Oracle-Server, wie unter Oracle-Datenbank als Standard-Mount bereitstellen beschrieben.
Legen Sie die Datenbankumgebung fest und starten Sie die Datenbank im nicht bereitgestellten Zustand mithilfe der Parameterdatei aus dem bereitgestellten Volume für die Sicherung und Notfallwiederherstellung.
In diesem Beispiel wird das Sicherungs-Image der Datenbank unter E:\ und das geschützte Archivprotokoll unter Z:\ bereitgestellt.
Katalogisieren Sie den Datendatei- und Archivelog-Ordner aus dem bereitgestellten Datenbank- und Archivelog-Image von Sicherung und Notfallwiederherstellung in RMAN:
```rmanrman>run{catalogstartwith'E:\datafile' noprompt;catalog start with 'E:\archivelog' noprompt;catalog start with 'Z:\archivelog'noprompt;}```
So stellen Sie die Datenbank wieder her:
```rman
rman> run
{
restore database;
recover database;
}
```
Führen Sie für die Wiederherstellung zu einem bestimmten Zeitpunkt den Befehl „recover“ so aus:
```rman
rman> run
{
restore database;
recover database until time "to_date('<time stamp>','yyyymmddhh24mi')";
}
```
Öffnen Sie die Datenbank mit der Option zum Zurücksetzen des Protokolls:
```rman
rman> alter database open resetlogs;
```
Die Datenbank ist für Lese- und Schreibvorgänge verfügbar.
Script zum Überwachen der Bereitstellung von Datenbankvolumes
Wenn Sie eine anwendungsspezifische Bereitstellung erstellen, können Sie mit einem Überwachungsscript die Volumes anzeigen, die über „Sicherung und Notfallwiederherstellung“ bereitgestellt werden, und die laufenden Oracle-Prozesse. Anwendungsspezifische Bereitstellungen werden unter Oracle-Datenbank als virtuelle Anwendung bereitstellen beschrieben.
Wenn Sie eine anwendungsspezifische Bereitstellung ausführen, können Sie dieses Überwachungsskript verwenden.
Der Speicherort des Scripts muss C:\Programme\Sicherung und Notfallwiederherstellung\scripts sein.
Scripts, die auf Windows-Hosts ausgeführt werden, müssen .bat- oder .vbs-Dateien sein.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-11 (UTC)."],[[["\u003cp\u003eBefore backing up Oracle databases in Windows, ensure the database and listener are running, a valid tns entry exists, and the database is in archive log mode.\u003c/p\u003e\n"],["\u003cp\u003eEnabling database change block tracking is recommended for Oracle Enterprise Edition to reduce incremental backup times.\u003c/p\u003e\n"],["\u003cp\u003eBackups on the windows environment rely on OS authentication and do not support database authentication.\u003c/p\u003e\n"],["\u003cp\u003eRecovering an Oracle database involves mounting a backup snapshot, setting the database environment, restoring the control file using RMAN, and then restoring and recovering the database.\u003c/p\u003e\n"],["\u003cp\u003eA watch script can monitor mounted volumes from Backup and DR and identify running Oracle processes during an application-aware mount.\u003c/p\u003e\n"]]],[],null,["# Protect and recover Oracle databases in a Windows environment\n\nBefore you begin\n----------------\n\nBefore you can discover, protect, and mount Oracle databases in a Windows\nenvironment, be sure to check the following:\n\n1. Check the following settings on the database server:\n\n 1. The Oracle database and the Oracle Listener\n are up and running (check Windows services).\n\n 2. Confirm that there is a tns entry with the name SID.\n The file tnsnames.ora is under\n\n %ORACLE_HOME%\\network\\admin\n\n 3. Verify tns entry is valid by running:\n\n %ORACLE_HOME%\\bin\\tnsping \u003cSID\u003e\n\n2. Check if the log mode is set to Archive Log mode:\n\n sql\u003e archive log list\n\n If the database is in no-archive log mode, then return it to archive log mode:\n **Note:** This will take down the database. \n\n sql\u003e shutdown immediate;\n sql\u003e startup mount;\n sql\u003e alter database archivelog;\n sql\u003e alter database open;\n\n3. Enable database change block tracking. With database BCT off,\n incremental backup time is impacted. Change block tracking feature\n is available in Oracle Enterprise Edition. Run a SQL query to\n check that change block tracking is enabled. Run the query:\n\n sqlplus / as sysdba\n sql\u003e select * from v$block_change_tracking;\n\nTo enable change block tracking: \n\n sql\u003e alter database enable block change tracking\n using file '\u003cOracle home directory\u003e\\orcl.bct';\n\nBack up an Oracle database in a Windows environment\n---------------------------------------------------\n\n| **Note:** Database authentication is not supported for Oracle in a Windows environment. OS authentication is fully supported.\n\nTo back up an Oracle database in a Windows environment, follow these steps:\n\n1. Set the [Application Details \\& Settings for Oracle Databases](/backup-disaster-recovery/docs/backup/app-details-settings-oracle).\n\n2. Apply a backup plan to protect the database.\n\n**Known issue**\n\nOracle 19c SQL*Plus (sqlplus.exe) occasionally hangs on Windows when executing exit command (Doc ID 2820655.1).\nThis bug is specific to Windows. Oracle has confirmed that this issue occurs in SQL*Plus versions 19.10, 19.11 and 19.12. Oracle provided these solutions:\n\n- Use SQL\\*Plus 21.1 or later (or)\n- Apply patch:31466370. This patch is available for 19.11 and 19.13.\n\nRecover Oracle databases in a Windows environment manually using RMAN to a scheduled backup point if the archivelog is not protected through Backup and DR\n----------------------------------------------------------------------------------------------------------------------------------------------------------\n\nTo recover an entire Oracle database in a Windows environment:\n\n1. Mount the database backup snapshot from Backup and DR\n back to the Oracle server as detailed in [Mount an Oracle database as a standard mount](/backup-disaster-recovery/docs/access-data/mount-oracle).\n\n2. Set the database environment and start the database in no-mount state\n using the parameter file from the Backup and DR mounted volume\n (for example for a mounted database volume to E:):\n\n sqlplus / as sysdba\n sql\u003e startup nomount pfile='E:\\\u003csid\u003e___backup.ora';\n\n3. Create spfile from pfile:\n\n sql\u003e create spfile='%ORACLE_HOME%\\database\\spfile\u003csid\u003e.ora'\n from pfile='E:\\\u003csid\u003e___backup.ora';\n\n4. Start the database with spfile in the `nomount` state:\n\n sql\u003e shutdown immediate;\n sql\u003e startup nomount;\n\n5. Restore the control file using RMAN from the Backup and DR mounted volume:\n\n rman target /\n rman\u003e restore controlfile from 'E:\\cf-D_\u003csid\u003e-id_\u003cid\u003e.ctl';\n\n6. Mount the database:\n\n rman\u003e alter database mount;\n\n7. Catalog the datafile and the archive file folder\n from the Backup and DR mounted volume to RMAN:\n\n rman\u003e run\n {\n catalog start with 'E:\\datafile' noprompt;\n catalog start with 'E:\\archivelog' noprompt;\n }\n\n8. Restore and recover the database:\n\n rman\u003e run\n {\n restore database;\n recover database;\n }\n\n9. Open the database with reset log option:\n\n rman\u003e alter database open resetlogs;\n\nRecover Oracle databases in a Windows environment manually using RMAN to a scheduled backup point with roll-forward of Backup and DR-protected archivelog\n---------------------------------------------------------------------------------------------------------------------------------------------------------\n\n1. Mount the image from the source database server\n to recover. Mount the backup snapshot from Backup and DR back to the Oracle\n server as detailed in [Mount an Oracle database as a standard mount](/backup-disaster-recovery/docs/access-data/mount-oracle).\n\n2. Set the database environment and start the database\n in no-mount state using the parameter file from the Backup and DR mounted volume.\n In this example, the database backup image is mounted at: E:\\\\ and\n the protected archive log is mounted at: Z:.\n\n sqlplus / as sysdba\n\n startup nomount pfile='E:\\\u003csid\u003e___backup.ora';\n\n3. Create spfile from pfile:\n\n sql\u003e create spfile='%ORACLE_HOME%\\database\\spfile\u003csid\u003e.ora' from\n pfile='E:\\\u003csid\u003e___backup.ora';\n\n4. Start the database with spfile in the nomount state:\n\n ```sql\n shutdown immediate;\n startup nomount;\n ```\n\n5. Restore the control file using RMAN from the Backup and DR mounted\n archive log image:\n\n ```rman\n rman target /\n rman\u003e restore controlfile from 'Z:\\cf-D_\u003csid\u003e-id_\u003cid\u003e.ctl';\n ```\n\n6. Mount the database:\n\n ```rman\n rman\u003e alter database mount;\n ```\n\n7. Catalog the datafile and archivelog folder from Backup and DR mounted\n database image and archive log image to RMAN:\n\n ```rman\n rman\u003e run\n {\n catalog start with 'E:\\datafile' noprompt;\n catalog start with 'E:\\archivelog' noprompt;\n catalog start with 'Z:\\archivelog' noprompt;\n }\n ```\n\n8. Restore and recover the database:\n\n ```rman\n rman\u003e run\n {\n restore database;\n recover database;\n }\n ```\n\n For a specific point in time recovery run the recover command as follows: \n\n ```rman\n rman\u003e run\n {\n restore database;\n recover database until time \"to_date('\u003ctime stamp\u003e','yyyymmddhh24mi')\";\n }\n ```\n\n9. Open the database with reset log option:\n\n ```rman\n rman\u003e alter database open resetlogs;\n ```\n\n The database is available for read and write.\n\n### Watch script to watch for database volumes being mounted\n\nIf you create an application-aware mount, then you can use a watch script to\nshow the volumes being mounted from Backup and DR, and the Oracle\nprocesses running. Application-aware mounts are described in\n[Mounting an Oracle Database as a Virtual Application](/backup-disaster-recovery/docs/access-data/mount-oracle-virtualdb).\n\nWhen performing an application-aware mount, you can use this watch script.\nThe script location must be: C:\\\\Program Files\\\\Backup and DR\\\\scripts.\nScripts run on Windows hosts must be .bat or .vbs files. \n\n ```Windows\n @echo off\n :loop\n echo. \u003e watchtemp\n echo ------------------ \u003e\u003e watchtemp\n echo Oracle Processes \u003e\u003e watchtemp\n echo ------------------ \u003e\u003e watchtemp\n tasklist /svc | findstr oracle \u003e\u003e watchtemp\n echo. \u003e\u003e watchtemp\n echo ------------------ \u003e\u003e watchtemp\n echo Backup and DR Mounts \u003e\u003e watchtemp\n echo ------------------ \u003e\u003e watchtemp\n wmic volume get label, name | findstr Backup and DR \u003e\u003e watchtemp\n echo. \u003e\u003e watchtemp\n cls\n type watchtemp\n timeout 2 \u003e null\n goto loop\n ```\n\nWhich produces output like this: \n\n Oracle Processes\n ------------------\n oracle.exe 1492 OracleServiceORCL\n oracle.exe 3768 OracleServiceTestDB\n oracle.exe 872 OracleServiceTestDB2\n ------------------\n Backup and DR Mounts\n ------------------\n Backup and DR-Backup-ORCL D:\\mount_1"]]