Nach dem Wiederherstellen einer Offline -Sicherung kann keine Verbindung zur DB2 -Datenbank hergestellt werden
Frage
Dies gilt für DB2 9.7 Enterprise Server Edition auf AIX.
Ich hatte eine vollständige Offline -Sicherung mehrerer Datenbanken in unserer Instanz in einer Leistungsumgebung.
Ich wollte diese Datenbanken in unserer Integrationsumgebung wiederherstellen.
Ich habe den Befehl ausgeführt
db2 restore database database_name from
/bkp/instance_name/OfflineBackups/RestorePoint/my_restore_point
taken at 20120321103846 into database_name without prompting;
Für jede meiner Datenbanken (Änderung des Datenbanknamens und des Zeitstempels natürlich angemessen).
Jede Datenbank wurde nach DB2 erfolgreich wiederhergestellt. Wenn ich jedoch überprüfen möchte, ob die Datenbank tatsächlich wiederhergestellt wurde, was ich dachte, versuche ich, eine Verbindung zu einer Datenbank herzustellen, und ich erhalte den Fehler
SQL1117N A connection to or activation of database "database_name" cannot be made
because of ROLL-FORWARD PENDING. SQLSTATE=57019
Ich hatte keine Prozesstransaktionen in der vorherigen Datenbank, da alle Verbindungen ausgeschaltet wurden und die Datenbank für eine Offline -Sicherung ausgefallen war. Was kann ich tun?
Lösung
Fand die Antwort hier.
Ich musste den Befehl ausführen
db2 rollforward db database_name to end of backup and complete;
Dies vermittelt alles in die Protokolle und legt die Datenbank in einen nicht mehr ausstehenden Zustand, wodurch eine Verbindung dazu führt. Ich musste dies für jede wiederhergestellte Datenbank tun.
BEARBEITEN: Fand dieses raffinierte Nugget, während er an einem A anwesend war DB2NAYSHOW Folge. Mit 9,7 FP2 führten sie eine Registrierungsvariable namens DB2_RESTORE_GRANT_ADMIN_AUTHORITY ein. Dies ist praktisch, wenn Sie ein Backup von einer Instanz in eine andere wiederherstellen, da es automatisch den Instanzbesitzer Secadm, DBADM, DataAccess und AccessCtrl für die restaurierten Datenbanken gewährt. Mit 9,7 FP5 ist die Einstellung dynamisch und erfordert kein Abprall der Instanz. Mir ist klar, dass meine ursprüngliche Frage nichts mit Sicherheit zu tun hat, aber sie kann angetroffen werden und dachte, dass dies ein praktisches Tidbit sein würde, das hier platziert wird.
Bearbeiten #2: Ich habe kürzlich herausgefunden, dass ich die Klausel aufnehmen konnte
WITHOUT ROLLING FORWARD
in meinemRESTORE
Befehl. Dies hätte die Datenbank aus dem Roll -Forward -Status unmittelbar nach erfolgreicher Wiederherstellung genommen, was bedeuten würde, dass ich das dann nicht ausstellen hätteROLLFORWARD DB
Befehl.
Andere Tipps
Wenn sich der Sicherungstyp möglicherweise in Online -Backup befindet.
Verwenden Sie Log Path ("/db2Logtarget")
ZB:- db2 => rollforward db userdb bis zum Ende der Protokolle und vollständigen Überlaufprotokollpfad ("/home/user/target")