Backup/Restore-Datenbank für oracle 10g-Test mit sqlplus oder rman
Oracle 10g mit unserem Test-server, was ist die effizienteste/einfache Möglichkeit zum sichern und wiederherstellen einer Datenbank an einem statischen Punkt, vorausgesetzt, Sie wollen immer, um zurück zu dem Zeitpunkt, nachdem ein backup erstellt wurde.
Eines Beispiel-use-case wäre das folgende
- zu installieren und zu konfigurieren software
- Ändern von Daten auf der Basis Prüfstelle
- ein backup irgendwie (das ist Teil der Frage, wie dies zu tun)
- testen wollen
- kehren Sie zu Schritt 3 state (wiederherstellen zu backup-Punkt, das ist die andere Hälfte der Frage)
Optimal dies würde ergänzt durch sqlplus oder rman oder einige andere skriptfähige Methode.
- haben Sie am Ende läuft eine separate sqlcmd.exe Anweisung für jeden Schritt (mit Ausnahme Schritt 4)?
- Ich landete genau mit der einen Rückblende-Befehl, glaube ich, sorry seine schon eine Weile, da ich dies Tat.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nicht, ein backup zu nehmen an Ihrer Basis. Aktivieren Sie einfach flashback-Datenbank, erstellen Sie einen garantierten Wiederherstellungspunkt ausführen der tests und der Rückblick auf die zuvor erstellten Wiederherstellungspunkt.
Sind die Schritte für diese wäre:
startup force mount;
erstellen Sie Wiederherstellungspunkt before_test guarantee flashback database;
alter database open;
shutdown immediate;
startup mount;
flashback database to restore point before_test;
alter database open;
Könnten Sie ein feature in Oracle aufgerufen Flashback das Ihnen erlaubt, um einen Wiederherstellungspunkt zu erstellen, die Sie leicht zurück zu wechseln, nachdem Sie den Test beendet haben.
Zitiert von der Website,
Aus meiner Erfahrung import/export ist wahrscheinlich der Weg zu gehen. Export wird eine logische Momentaufnahme der DB, so dass Sie nicht finden es nützlich für große DBs oder anspruchsvollen performance-Anforderungen. Aber es funktioniert hervorragend für Schnappschüsse und so weiter zu nutzen, auf eine Reihe von Maschinen.
Ich es auf einem rails-Projekt, um eine Art Momentaufnahme, wir könnten tauschen zwischen Entwickler für Integrationstests und wir haben die Aufgabe innerhalb von rake-Skripte. Wir schrieben eine kleine sqlplus Skript, das zerstört die DB importiert die dump-Datei über die Spitze.
Einige Artikel möchten Sie vielleicht zu prüfen:
OraFAQ Cheatsheet
Oracle Wiki
Oracle anscheinend nicht, wie imp/exp mehr zu Gunsten von Daten Pumpe, wenn wir Daten Pumpe brauchten wir Dinge, die wir nicht haben konnte (D. H. SYSDBA-Privilegien, wir konnten nicht in einer gemeinsamen Umgebung). So nehmen Sie einen Blick, aber lassen Sie sich nicht entmutigen, wenn Daten Pumpe ist nicht Ihre Tasche, die alte imp/exp sind immer noch da 🙂
Kann ich nicht empfehlen RMAN für diese Art der Sache, weil RMAN nimmt eine Menge von setup und Sie müssen eine Konfiguration in der DB (es hat auch eine eigene Katalog-DB-backups, die ist ein Schmerz in den sprichwörtlichen eine bare-metal-restore).
Wenn Sie ein Dateisystem, unterstützt copy-on-write-snapshots, könnte man die Einrichtung der Datenbank für den Zustand, den Sie wollen. Dann beenden Sie alles und nehmen Sie ein Dateisystem-snapshot. Dann gehen Sie zu Ihrer Prüfung, und wenn Sie bereit sind, starten Sie über Sie Rollen kann wieder den snapshot. Das könnte einfacher sein als die anderen Optionen, vorausgesetzt, Sie haben ein Dateisystem, das snapshots unterstützt.
@Michael Ridley Lösung ist perfekt skriptfähig, und funktioniert mit jeder version von oracle.
Dies ist genau das, was ich Tue, ich habe ein script, das läuft wöchentlich
Dies ermöglicht es uns, halten unsere Entwicklung von Datenbanken in der Nähe unserer Produktion-Datenbank.
Dazu nutze ich ZFS.
Diese Methode kann auch verwendet werden, für Ihre Anwendungen oder sogar gesamte "Umfeld" (z.B. könnten Sie "rollback" Ihre gesamte Umgebung mit einem einzigen (Drehbuch) - Befehl.
Wenn Sie mit 10g obwohl, die erste Sache, die Sie würde wahrscheinlich wollen, ist die Rückblende, als seine in die Datenbank eingebaut.