Remote-Sicherungen und Wiederherstellungen mit SSH
Wie oben gezeigt, können Sie die speziellen Dateinamen stdin und stdout verwenden, um eine Datenbank in einer separaten Datenbank auf demselben Server zu sichern und wiederherzustellen.Sie können jedoch auch dieselben Tools über eine SSH-Verbindung zu einem Remoteserver verwenden und die Sicherung einer Datenbank direkt an eine Wiederherstellung einer separaten Datenbank übergeben.
Im ersten Beispiel wird eine lokale Datenbank auf einen Remote-Server kopiert, auf dem Firebird ausgeführt wird und die Umgebung des Firebird-Benutzers so eingerichtet ist, dass sich das gbak-Tool bei der Anmeldung standardmäßig auf $PATH
befindet.
Note
|
In jedem der folgenden Beispiele wurden die Parameter |
tux> # Klone eine Testdatenbank auf einen anderen Server, ohne dass eine Dump-Datei erforderlich ist tux> gbak -backup employee stdout | \ ssh firebird@tuxrep "gbak {...} -replace stdin emptest"
Wenn das oben Gesagte ausgeführt wird, werden Sie aufgefordert, ein Kennwort für den Remote-Firebird-Benutzer auf dem Server tuxrep einzugeben, vorausgesetzt, Sie haben noch kein ordnungsgemäßes SSH-Schlüsselpaar eingerichtet und sind aktiv.Der Befehl ersetzt die lokale Datenbank gemäß dem Aliasnamen emptest
. Sie können jedoch bei Bedarf vollständige Pfadnamen für die Datenbanken angeben.Das Folgende zeigt ein Beispiel für die Ausführung des oben genannten Vorgangs.
tux> # Klonen eine Testdatenbank auf einen anderen Server, ohne dass eine Dump-Datei erforderlich ist tux> gbak -backup employee stdout | \ ssh firebird@tuxrep "gbak {...} -replace stdin emptest" firebird@tuxrep's password:
Wie Sie sehen, steht der Ausgabe nicht viel im Wege, aber Sie können eine Remoteverbindung herstellen und Folgendes überprüfen:
tux> isql {...} tuxrep:emptest Database: tuxrep:emptest SQL> show database; Database: tuxrep:emptest Owner: SYSDBA PAGE_SIZE 4096 ...
Das nächste Beispiel zeigt eine Remote-Datenbank, die auf ähnliche Weise in einer lokalen Datenbank gesichert wird.
tux> ssh firebird@tuxrep "gbak -backup {...} emptest stdout" | \ gbak -create stdin data/tuxrep_emptest.fdb firebird@tuxrep's password: tux> ls data employee.fdb tuxrep_emptest.fdb
Sie können sehen, dass eine neue Datenbank tuxrep_emptest.fdb
erstellt wurde.Funktioniert sie?Die Überprüfung mit isql
zeigt, dass dies der Fall ist.
tux> isql data/tuxrep_emptest.fdb Database: data/tuxrep_emptest.fdb SQL> quit;
Das letzte Beispiel zeigt, wie eine entfernte Datenbank auf einem Server in einer entfernten Datenbank auf einem anderen Server gesichert wird.
tux> ssh firebird@tuxrep "gbak -backup {...} emptest stdout" | \ ssh firebird@tuxqa "gbak -create {...} stdin data/tuxrep_empqa.fdb" firebird@tuxrep's password: firebird@tuxqa's password tux> ssh firebird@tuxqa "ls data" employee.fdb tuxrep_empqa.fdb