Skip to main content
Enterprise applications
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

DR für Oracle-Datenbank über Protokollversand

Beitragende jfsinmsp
Änderungen vorschlagen

Die Replikationsverfahren für eine Oracle-Datenbank sind im Wesentlichen dieselben wie die Backup-Verfahren. Die primäre Anforderung besteht darin, dass die Snapshots, die ein wiederherstellbares Backup darstellen, auf das Remote-Speichersystem repliziert werden müssen.

Wie bereits in der Dokumentation zur lokalen Datensicherheit beschrieben, kann ein wiederherstellbares Backup mit dem Hot-Backup-Prozess oder mithilfe von Snapshot-optimierten Backups erstellt werden.

Die wichtigste Anforderung ist die Isolierung der Datendateien in einem oder mehreren dedizierten Volumes. Sie müssen durch einen anderen Dateityp nicht kontaminiert sein. Der Grund dafür ist, sicherzustellen, dass die Datendateireplikation völlig unabhängig von der Replikation anderer Datentypen wie Archivprotokollen ist. Weitere Informationen zu Dateilayouts und wichtige Details zur Sicherstellung, dass das Speicherlayout Snapshot-freundlich ist, finden Sie unter "Datenlayout".

Angenommen, die Datendateien sind in dedizierten Volumes eingekapselt. Die nächste Frage ist, wie die Wiederherstellungsprotokolle, Archivprotokolle und Steuerdateien gemanagt werden. Am einfachsten ist es, alle diese Datentypen in einem einzelnen Volume zu platzieren. Der Vorteil dabei ist, dass replizierte Wiederherstellungsprotokolle, Archivprotokolle und Steuerdateien perfekt synchronisiert sind. Es besteht keine Notwendigkeit für unvollständige Wiederherstellung oder die Verwendung einer Backup-controlfile, obwohl es wünschenswert sein könnte, auch Skript-Erstellung von Backup-controlfiles für andere potenzielle Recovery-Szenarien.

Zwei-Volumes-Layout

Das einfachste Layout ist in der folgenden Abbildung dargestellt.

Fehler: Fehlendes Grafikbild

Dies ist der häufigste Ansatz. Aus der Perspektive eines DBAs mag es ungewöhnlich erscheinen, alle Kopien der Wiederherstellungs- und Archivprotokolle auf demselben Volume zu vermengen. Allerdings bietet Trennung keinen besonderen Schutz, wenn die Dateien und LUNs sich alle noch auf derselben zugrunde liegenden Laufwerkgruppe befinden.

Layout mit drei Volumes

Gelegentlich ist eine Trennung von Wiederherstellungsprotokollen erforderlich, da Bedenken hinsichtlich der Datensicherung bestehen oder Redo-Log-I/O über Controller verteilt werden müssen. In diesem Fall wird das in der Abbildung unten abgebildete Layout mit drei Volumes für die Replikation verwendet, während gleichzeitig die Notwendigkeit einer unvollständigen Wiederherstellung vermieden oder auf Backup-Controller-Dateien angewiesen ist.

Fehler: Fehlendes Grafikbild

Dies ermöglicht das Striping der Redo-Protokolle und Steuerdateien über unabhängige Sätze von Spindeln und Controllern auf der Quelle. Die Archivprotokolle und ein Satz von Steuerdateien und Wiederherstellungsprotokollen können jedoch weiterhin in einem synchronisierten Zustand mit den Archivprotokollen repliziert werden.

In diesem Modell wird das Redo-Protokoll-B-Volume nicht repliziert.

Disaster-Recovery-Verfahren – Hot-Backups

Gehen Sie wie folgt vor, um eine Disaster Recovery mithilfe von Hot Backups durchzuführen:

Voraussetzungen

  1. Oracle Binärdateien werden auf dem Disaster Recovery Server installiert.

  2. Datenbankinstanzen sind in aufgeführt /etc/oratab.

  3. Der passwd Und pfile Oder spfile Die Instanz muss sich im befinden $ORACLE_HOME/dbs Verzeichnis. .

Disaster Recovery

  1. Brechen Sie die Spiegelungen für die Datendateien und das gemeinsame Protokoll-Volume auf.

  2. Stellen Sie die Datendatei-Volumes auf den neuesten Hot-Backup-Snapshot der Datendateien wieder her.

  3. Wenn SAN verwendet wird, aktivieren Sie Volume-Gruppen und/oder mounten Sie Dateisysteme.

  4. Geben Sie Archivprotokolle bis zum gewünschten Punkt wieder.

  5. Wiederholen Sie die aktuellen Wiederherstellungsprotokolle, wenn eine vollständige Wiederherstellung gewünscht wird.

Die Verwendung von NFS vereinfacht diesen Vorgang erheblich, da die NFS-Filesysteme für Datendateien und Protokolldateien jederzeit auf den Disaster Recovery-Server gemountet werden können. Wenn die Spiegelungen beschädigt sind, wird es zu Lesen/Schreiben.

Disaster Recovery-Verfahren – Snapshot optimierte Backups

Die Wiederherstellung von Snapshot-optimierten Backups ist mit dem Hot-Backup-Recovery-Verfahren mit den folgenden Änderungen fast identisch:

  1. Brechen Sie die Spiegelungen für die Datendateien und das gemeinsame Protokoll-Volume auf.

  2. Stellen Sie die Datendatei-Volumes auf einem Snapshot wieder her, der vor dem aktuellen Replikat des Protokollvolumes erstellt wurde.

  3. Wenn SAN verwendet wird, aktivieren Sie Volume-Gruppen und/oder mounten Sie Dateisysteme.

  4. Geben Sie Archivprotokolle bis zum gewünschten Punkt wieder.

  5. Wiederholen Sie die aktuellen Wiederherstellungsprotokolle, wenn eine vollständige Wiederherstellung gewünscht wird.

Diese Unterschiede vereinfachen das gesamte Recovery-Verfahren, da nicht sichergestellt werden muss, dass ein Snapshot ordnungsgemäß auf der Quelle erstellt wurde, während sich die Datenbank im Hot Backup-Modus befand. Das Disaster-Recovery-Verfahren basiert auf den Zeitstempeln der Snapshots auf dem Disaster-Recovery-Standort. Der Zustand der Datenbank, zu dem die Snapshots erstellt wurden, ist nicht wichtig.

Disaster Recovery mit Hot-Backup-Snapshots

Dies ist ein Beispiel für eine Disaster-Recovery-Strategie, die auf der Replizierung von Hot-Backup-Snapshots basiert. Er ist auch ein Beispiel für eine einfache und skalierbare lokale Backup-Strategie.

Die Beispieldatenbank befindet sich in einer grundlegenden Architektur mit zwei Volumes. /oradata Enthält Datendateien und /oralogs Wird für kombinierte Redo-Logs, Archivprotokolle und Steuerdateien verwendet.

[root@host1 ~]# ls /ora*
/oradata:
dbf
/oralogs:
arch  ctrl  redo

Es sind zwei Zeitpläne erforderlich, einer für die nächtlichen Datendatei-Backups und einer für die Protokolldatei-Backups. Diese werden Mitternacht bzw. 15 Minuten genannt.

Cluster01::> job schedule cron show -name midnight|15minutes
Name                Description
----------------    -----------------------------------------------------
15minutes           @:00,:15,:30,:45
midnight            @0:00
2 entries were displayed.

Diese Zeitpläne werden dann innerhalb der Snapshot-Richtlinien verwendet NTAP-datafile-backups Und NTAP-log-backups, Wie unten gezeigt:

Cluster01::> snapshot policy show -vserver vserver1 -policy NTAP-* -fields schedules,counts
vserver   policy                schedules                    counts
--------- --------------------- ---------------------------- ------
vserver1  NTAP-datafile-backups midnight                     60
vserver1  NTAP-log-backups      15minutes                    72
2 entries were displayed.

Diese Snapshot-Richtlinien werden schließlich auf die Volumes angewendet.

Cluster01::> volume show -vserver vserver1 -volume vol_oracle* -fields snapshot-policy
vserver   volume                 snapshot-policy
--------- ---------------------- ---------------------
vserver1  vol_oracle_datafiles   NTAP-datafile-backups
vserver1  vol_oracle_logs        NTAP-log-backups

Dadurch wird der Backup-Zeitplan der Volumes definiert. Datendatei-Snapshots werden um Mitternacht erstellt und für 60 Tage aufbewahrt. Das Protokollvolumen enthält 72 Snapshots, die in 15-Minuten-Intervallen erstellt wurden, was bis zu 18 Stunden Abdeckung ergibt.

Stellen Sie dann sicher, dass sich die Datenbank im Hot-Backup-Modus befindet, wenn ein Datendatei-Snapshot erstellt wird. Dies wird mit einem kleinen Skript gemacht, das einige grundlegende Argumente akzeptiert, die den Backup-Modus auf der angegebenen SID starten und stoppen.

58 * * * * /snapomatic/current/smatic.db.ctrl --sid NTAP --startbackup
02 * * * * /snapomatic/current/smatic.db.ctrl --sid NTAP --stopbackup

Dieser Schritt stellt sicher, dass sich die Datenbank während eines vierminütigen Fensters um den Mitternacht-Snapshot im Hot Backup-Modus befindet.

Die Replikation zum Disaster Recovery-Standort ist wie folgt konfiguriert:

Cluster01::> snapmirror show -destination-path drvserver1:dr_oracle* -fields source-path,destination-path,schedule
source-path                      destination-path                   schedule
-------------------------------- ---------------------------------- --------
vserver1:vol_oracle_datafiles    drvserver1:dr_oracle_datafiles     6hours
vserver1:vol_oracle_logs         drvserver1:dr_oracle_logs          15minutes
2 entries were displayed.

Das Ziel des Protokollvolumes wird alle 15 Minuten aktualisiert. Somit wird eine RPO von etwa 15 Minuten erzielt. Das genaue Update-Intervall variiert ein wenig abhängig vom Gesamtvolumen der Daten, die während der Aktualisierung übertragen werden müssen.

Das Ziel des Datendatei-Volumes wird alle sechs Stunden aktualisiert. Dies hat keine Auswirkung auf RPO oder RTO. Wenn eine Disaster-Recovery erforderlich ist, besteht einer der ersten Schritte darin, das Datendateivolume wieder auf einen Hot-Backup-Snapshot wiederherzustellen. Der Zweck des häufigeren Aktualisierungsintervalls besteht darin, die Übertragungsrate dieses Volumens zu glätten. Wenn die Aktualisierung einmal pro Tag geplant ist, müssen alle Änderungen, die während des Tages angesammelt wurden, gleichzeitig übertragen werden. Bei häufigeren Updates werden die Änderungen schrittweise im Laufe des Tages repliziert.

Im Falle eines Ausfalls besteht der erste Schritt darin, die Spiegelungen für beide Volumes zu unterbrechen:

Cluster01::> snapmirror break -destination-path drvserver1:dr_oracle_datafiles -force
Operation succeeded: snapmirror break for destination "drvserver1:dr_oracle_datafiles".
Cluster01::> snapmirror break -destination-path drvserver1:dr_oracle_logs -force
Operation succeeded: snapmirror break for destination "drvserver1:dr_oracle_logs".
Cluster01::>

Die Replikate sind jetzt Lese-/Schreibzugriff. Im nächsten Schritt wird der Zeitstempel des Protokoll-Volumes überprüft.

Cluster01::> snapmirror show -destination-path drvserver1:dr_oracle_logs -field newest-snapshot-timestamp
source-path                destination-path             newest-snapshot-timestamp
-------------------------- ---------------------------- -------------------------
vserver1:vol_oracle_logs   drvserver1:dr_oracle_logs    03/14 13:30:00

Die neueste Kopie des Logvolumens ist der 14. März um 13:30:00.

Identifizieren Sie als Nächstes den Hot-Backup-Snapshot, der unmittelbar vor dem Status des Protokollvolumes erstellt wurde. Dies ist erforderlich, da die Protokollwiedergabe alle Archivprotokolle erfordert, die im Hot Backup-Modus erstellt wurden. Das Replikat des Protokollvolumes muss daher älter als die Hot-Backup-Images sein, da sonst die erforderlichen Protokolle nicht enthalten wären.

Cluster01::> snapshot list -vserver drvserver1 -volume dr_oracle_datafiles -fields create-time -snapshot midnight*
vserver   volume                    snapshot                   create-time
--------- ------------------------  -------------------------- ------------------------
drvserver1 dr_oracle_datafiles      midnight.2017-01-14_0000   Sat Jan 14 00:00:00 2017
drvserver1 dr_oracle_datafiles      midnight.2017-01-15_0000   Sun Jan 15 00:00:00 2017
...

drvserver1 dr_oracle_datafiles      midnight.2017-03-12_0000   Sun Mar 12 00:00:00 2017
drvserver1 dr_oracle_datafiles      midnight.2017-03-13_0000   Mon Mar 13 00:00:00 2017
drvserver1 dr_oracle_datafiles      midnight.2017-03-14_0000   Tue Mar 14 00:00:00 2017
60 entries were displayed.
Cluster01::>

Der zuletzt erstellte Snapshot ist midnight.2017-03-14_0000. Hierbei handelt es sich um das neueste Hot-Backup-Image der Datendateien, das wie folgt wiederhergestellt wird:

Cluster01::> snapshot restore -vserver drvserver1 -volume dr_oracle_datafiles -snapshot midnight.2017-03-14_0000
Cluster01::>

In dieser Phase kann die Datenbank nun wiederhergestellt werden. Wenn es sich um eine SAN-Umgebung handelt, würde der nächste Schritt die Aktivierung von Volume-Gruppen und das Mounten von Dateisystemen umfassen, ein einfach automatisierter Prozess. Da in diesem Beispiel NFS verwendet wird, sind die Dateisysteme bereits gemountet und wurden in Schreib- und Lesezugriff eingebunden, ohne dass in dem Moment, in dem die Spiegelungen beschädigt wurden, eine weitere Bereitstellung oder Aktivierung erforderlich war.

Die Datenbank kann jetzt bis zum gewünschten Zeitpunkt wiederhergestellt werden, oder sie kann in Bezug auf die Kopie der replizierten Wiederherstellungsprotokolle vollständig wiederhergestellt werden. Dieses Beispiel zeigt den Wert des kombinierten Archivprotokolls, der Steuerdatei und des Wiederherstellungsprotokolls. Der Recovery-Prozess ist drastisch einfacher, da es keine Notwendigkeit, auf Backup-Steuerdateien oder Reset-Protokolldateien verlassen.

[oracle@drhost1 ~]$ sqlplus / as sysdba
Connected to an idle instance.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size                  2924928 bytes
Variable Size            1090522752 bytes
Database Buffers          503316480 bytes
Redo Buffers               13848576 bytes
Database mounted.
SQL> recover database until cancel;
ORA-00279: change 1291884 generated at 03/14/2017 12:58:01 needed for thread 1
ORA-00289: suggestion : /oralogs_nfs/arch/1_34_938169986.dbf
ORA-00280: change 1291884 for thread 1 is in sequence #34
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 1296077 generated at 03/14/2017 15:00:44 needed for thread 1
ORA-00289: suggestion : /oralogs_nfs/arch/1_35_938169986.dbf
ORA-00280: change 1296077 for thread 1 is in sequence #35
ORA-00278: log file '/oralogs_nfs/arch/1_34_938169986.dbf' no longer needed for
this recovery
...
ORA-00279: change 1301407 generated at 03/14/2017 15:01:04 needed for thread 1
ORA-00289: suggestion : /oralogs_nfs/arch/1_40_938169986.dbf
ORA-00280: change 1301407 for thread 1 is in sequence #40
ORA-00278: log file '/oralogs_nfs/arch/1_39_938169986.dbf' no longer needed for
this recovery
ORA-00279: change 1301418 generated at 03/14/2017 15:01:19 needed for thread 1
ORA-00289: suggestion : /oralogs_nfs/arch/1_41_938169986.dbf
ORA-00280: change 1301418 for thread 1 is in sequence #41
ORA-00278: log file '/oralogs_nfs/arch/1_40_938169986.dbf' no longer needed for
this recovery
ORA-00308: cannot open archived log '/oralogs_nfs/arch/1_41_938169986.dbf'
ORA-17503: ksfdopn:4 Failed to open file /oralogs_nfs/arch/1_41_938169986.dbf
ORA-17500: ODM err:File does not exist
SQL> recover database;
Media recovery complete.
SQL> alter database open;
Database altered.
SQL>

Disaster Recovery mit Snapshot-optimierten Backups

Der Disaster-Recovery-Vorgang mithilfe von Snapshot optimierten Backups ist nahezu identisch mit dem Disaster-Recovery-Verfahren für Hot Backups. Wie beim Hot Backup Snapshot Verfahren ist es auch im Grunde eine Erweiterung einer lokalen Backup-Architektur, in der die Backups für die Disaster Recovery repliziert werden. Das folgende Beispiel zeigt das detaillierte Konfigurations- und Wiederherstellungsverfahren. Dieses Beispiel nennt auch die wichtigsten Unterschiede zwischen Hot Backups und Snapshot optimierten Backups.

Die Beispieldatenbank befindet sich in einer grundlegenden Architektur mit zwei Volumes. /oradata Enthält Datendateien, und /oralogs Wird für kombinierte Redo-Logs, Archivprotokolle und Steuerdateien verwendet.

 [root@host2 ~]# ls /ora*
/oradata:
dbf
/oralogs:
arch  ctrl  redo

Es sind zwei Zeitpläne erforderlich: Eine für die nächtlichen Datendatei-Backups und eine für die Protokolldatei-Backups. Diese werden Mitternacht bzw. 15 Minuten genannt.

Cluster01::> job schedule cron show -name midnight|15minutes
Name                Description
----------------    -----------------------------------------------------
15minutes           @:00,:15,:30,:45
midnight            @0:00
2 entries were displayed.

Diese Zeitpläne werden dann innerhalb der Snapshot-Richtlinien verwendet NTAP-datafile-backups Und NTAP-log-backups, Wie unten gezeigt:

Cluster01::> snapshot policy show -vserver vserver2  -policy NTAP-* -fields schedules,counts
vserver   policy                schedules                    counts
--------- --------------------- ---------------------------- ------
vserver2  NTAP-datafile-backups midnight                     60
vserver2  NTAP-log-backups      15minutes                    72
2 entries were displayed.

Diese Snapshot-Richtlinien werden schließlich auf die Volumes angewendet.

Cluster01::> volume show -vserver vserver2  -volume vol_oracle* -fields snapshot-policy
vserver   volume                 snapshot-policy
--------- ---------------------- ---------------------
vserver2  vol_oracle_datafiles   NTAP-datafile-backups
vserver2  vol_oracle_logs        NTAP-log-backups

Dadurch wird der ultimative Backup-Plan der Volumes gesteuert. Snapshots werden um Mitternacht erstellt und 60 Tage aufbewahrt. Das Protokollvolumen enthält 72 Snapshots, die in 15-Minuten-Intervallen erstellt wurden, was bis zu 18 Stunden Abdeckung ergibt.

Die Replikation zum Disaster Recovery-Standort ist wie folgt konfiguriert:

Cluster01::> snapmirror show -destination-path drvserver2:dr_oracle* -fields source-path,destination-path,schedule
source-path                      destination-path                   schedule
-------------------------------- ---------------------------------- --------
vserver2:vol_oracle_datafiles    drvserver2:dr_oracle_datafiles     6hours
vserver2:vol_oracle_logs         drvserver2:dr_oracle_logs          15minutes
2 entries were displayed.

Das Ziel des Protokollvolumes wird alle 15 Minuten aktualisiert. Dadurch wird ein RPO von ca. 15 Minuten erreicht, wobei das genaue Update-Intervall etwas variiert, je nach dem Gesamtvolumen der Daten, die während der Aktualisierung übertragen werden müssen.

Das Datendatei-Volume-Ziel wird alle 6 Stunden aktualisiert. Dies hat keine Auswirkung auf RPO oder RTO. Wenn eine Disaster Recovery erforderlich ist, müssen Sie das Datendatei-Volume zunächst auf einem Hot-Backup-Snapshot wiederherstellen. Der Zweck des häufigeren Aktualisierungsintervalls besteht darin, die Übertragungsrate dieses Volumens zu glätten. Wenn die Aktualisierung einmal pro Tag geplant wurde, müssen alle Änderungen, die sich während des Tages angesammelt haben, gleichzeitig übertragen werden. Bei häufigeren Updates werden die Änderungen schrittweise im Laufe des Tages repliziert.

Im Falle eines Ausfalls besteht der erste Schritt darin, die Spiegelungen für alle Volumes zu unterbrechen:

Cluster01::> snapmirror break -destination-path drvserver2:dr_oracle_datafiles -force
Operation succeeded: snapmirror break for destination "drvserver2:dr_oracle_datafiles".
Cluster01::> snapmirror break -destination-path drvserver2:dr_oracle_logs -force
Operation succeeded: snapmirror break for destination "drvserver2:dr_oracle_logs".
Cluster01::>

Die Replikate sind jetzt Lese-/Schreibzugriff. Im nächsten Schritt wird der Zeitstempel des Protokoll-Volumes überprüft.

Cluster01::> snapmirror show -destination-path drvserver2:dr_oracle_logs -field newest-snapshot-timestamp
source-path                destination-path             newest-snapshot-timestamp
-------------------------- ---------------------------- -------------------------
vserver2:vol_oracle_logs   drvserver2:dr_oracle_logs    03/14 13:30:00

Die neueste Kopie des Logvolumens ist der 14. März um 13:30. Identifizieren Sie als nächstes den Datendatei-Snapshot, der unmittelbar vor dem Status des Protokoll-Volumes erstellt wurde. Dies ist erforderlich, da für die Protokollwiedergabe alle Archivprotokolle von kurz vor dem Snapshot zum gewünschten Wiederherstellungspunkt erforderlich sind.

Cluster01::> snapshot list -vserver drvserver2 -volume dr_oracle_datafiles -fields create-time -snapshot midnight*
vserver   volume                    snapshot                   create-time
--------- ------------------------  -------------------------- ------------------------
drvserver2 dr_oracle_datafiles      midnight.2017-01-14_0000   Sat Jan 14 00:00:00 2017
drvserver2 dr_oracle_datafiles      midnight.2017-01-15_0000   Sun Jan 15 00:00:00 2017
...

drvserver2 dr_oracle_datafiles      midnight.2017-03-12_0000   Sun Mar 12 00:00:00 2017
drvserver2 dr_oracle_datafiles      midnight.2017-03-13_0000   Mon Mar 13 00:00:00 2017
drvserver2 dr_oracle_datafiles      midnight.2017-03-14_0000   Tue Mar 14 00:00:00 2017
60 entries were displayed.
Cluster01::>

Der zuletzt erstellte Snapshot ist midnight.2017-03-14_0000. Diesen Snapshot wiederherstellen.

Cluster01::> snapshot restore -vserver drvserver2 -volume dr_oracle_datafiles -snapshot midnight.2017-03-14_0000
Cluster01::>

Die Datenbank kann nun wiederhergestellt werden. Wenn es sich um eine SAN-Umgebung handelt, würden Sie dann Volume-Gruppen aktivieren und Filesysteme mounten, ein einfach automatisierter Prozess. In diesem Beispiel wird jedoch NFS verwendet, d. h. die Dateisysteme sind bereits gemountet und wurden in Lese- und Schreibzugriff überführt. In dem Moment, in dem die Spiegelungen beschädigt wurden, ist keine weitere Bereitstellung oder Aktivierung erforderlich.

Die Datenbank kann jetzt bis zum gewünschten Zeitpunkt wiederhergestellt werden, oder sie kann in Bezug auf die Kopie der replizierten Wiederherstellungsprotokolle vollständig wiederhergestellt werden. Dieses Beispiel zeigt den Wert des kombinierten Archivprotokolls, der Steuerdatei und des Wiederherstellungsprotokolls. Der Wiederherstellungsvorgang ist wesentlich einfacher, da keine Notwendigkeit besteht, sich auf Backup-Steuerdateien oder Reset-Protokolldateien zu verlassen.

[oracle@drhost2 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Wed Mar 15 12:26:51 2017
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size                  2924928 bytes
Variable Size            1073745536 bytes
Database Buffers          520093696 bytes
Redo Buffers               13848576 bytes
Database mounted.
SQL> recover automatic;
Media recovery complete.
SQL> alter database open;
Database altered.
SQL>