XML-RPC Interface
EXACluster OS bietet eine XML-RPC Schnittstelle, um den Cluster und die Datenbank überwachen und steuern zu können. Der Umfang dieser Schnittstelle richtet sich nach dem Funktionalitätsumfang von EXAoperation und wird von Version zur Version ausgebaut.
Die Funktionen gliedern sich in zwei Gruppen: einerseits Status- und Log-Informationen, die in das Monitoringtool ihrer Wahl integriert werden können. Andererseits die Steuerung der Datenbank und des Clusters von außen.
Ergänzend sei erinnert, dass die Systemadministration des EXASolution Systems komplett getrennt ist von der Datenbankadministration. D.h. alle Arbeiten, die mit Hilfe von EXAoperation oder der XML-RPC Schnittstelle durchgeführt werden, beziehen sich
- auf den Cluster als Ganzes
- auf einzelne Server
- oder auf das DBMS als Software, aber nicht auf Ihre Datenbank bzw. den Inhalt.
Dadurch wird die Vereinfachung, das Outsourcing des Betriebs sowie ein besserer Datenschutz erzielt.
Monitoring
Mit Hilfe der Monitoring-Funktionen können Sie zusätzlich zu Log-Informationen auch Status der Datenbank abfragen.
Abholen von Log-Einträgen
Mit Hilfe dieser Funktion können Sie alle oder im bestimmten Zeitraum enstandenen Log-Einträge abholen. Ein entsprechender Log-Service muss in EXAoperation existieren.
-
- import xmlrpclib
- s = xmlrpclib.ServerProxy("http://user:password@license-server/cluster1/logservice1")
- s.logEntries()
- s.logEntries([2009, 01, 01, 0, 0, 0, 0], [2009, 01, 01, 12, 0, 0, 0])
Status der Datenbank
-
- import xmlrpclib
- s = xmlrpclib.ServerProxy("http://user:password@license-server/cluster1/db_exa_db1")
- s.getDatabaseState()
Bitte beachten Sie, dass die URL die Datenbanknamen enthalten muss. In diesem Beispiel heißt die Datenbank 'exa_db1'.
Als Ergebnis wird ein String mit einem der folgenden Werte zurückgegeben:
- 'none',
- 'setup',
- 'starting',
- 'running',
- 'shutdown'
Aktivität der Datenbank
-
- import xmlrpclib
- s = xmlrpclib.ServerProxy("http://user:password@license-server/cluster1/db_exa_db1")
- s.getDatabaseOperation()
Diese Funktion liefert ergänzend zum Status Information, welche Operation die Datenbank gerade durchführt:
- 'None',
- 'Backup',
- 'Restore'.
Verbindungsstatus
-
- import xmlrpclib
- s = xmlrpclib.ServerProxy("http://user:password@license-server/cluster1/db_exa_db1")
- s.getDatabaseConnectionState()
Mit Hilfe dieser Funktion können Sie feststellen, ob die Datenbank Verbindungen annehmen kann oder nicht. Die Funktion liefert 'Yes' oder 'No' zurück.
Steuerung
Die Steuerung der Datenbank beschränkt sich auf das Starten und Stoppen der Datenbank sowie auf das Starten des Backups. Andere Operationen sollen mit Hilfe von EXAoperation durchgeführt werden.
Starten und Stoppen der Datenbank
-
- import xmlrpclib
- s = xmlrpclib.ServerProxy("http://user:password@license-server/cluster1/db_exa_db1")
- s.startDatabase()
- #....
- s.stopDatabase()
Sollte beim Ausführen einer dieser Funktionen ein Fehler auftreten, wird eine Exception geworfen.
Folgende Statusmeldungen erscheinen im entsprechenden Logservice :
- Starten DB
- User ... requests startup of system
- System started successfully in partition ...
- Stoppen DB
- User ... requests shutdown of system
Backup erstellen
Mit Hilfe der folgenden Funktionen kann ein Backup-Prozess gestartet werden. Voraussetzung dafür ist eine laufende Datenbank und ein ensprechend konfigurierter Backup-Service.
Im Log erscheinen dann nachfolgende Statusmeldungen:
- Start backup <TIMESTAMP> on system <DB>.
- User 1000 requests system backup.
-
- import xmlrpclib
- s = xmlrpclib.ServerProxy("http://user:password@license-server/cluster1/backup1")
- s.startBackup('exa_db1')















