suche 36x36

Verschieben der sysadmin Datenbank in einen anderen DBSpace

Ein häufiges Problem bei Informix ist, das der root-DBSpace zu klein wird. Das liegt daran, das auch langsam wachsende Datenbanken über einen längeren Lebenszyklus groß werden, aber auch daran das durch neue Anforderungen und Versionen zusätzliche Datenbanken ins root-DBSpace gepackt werden.

Dazu gehören seit der Informix-Version 11.10 die Datenbank sysadmin, die den Scheduler und das Admin-API enthält, aber auch die syscdr die für die Enterprise-Replikation genutzt wird.

Die sysadmin-Datenbank enthält einige Monitoring-Tabellen, die mit der Zeit stetig wachsen. Nutzt man das OAT für das SQL-Tracing, so können auch noch Tabellen hinzukommen in denen die Tracing-Informationen über einen längeren Zeitraum gespeichert werden.

Sieht man alle diese Aufgaben, so erscheint es sinnvoll, die sysadmin-Datenbank in einen eigenen DBSpace zu verlegen. Das ist aber nicht einfach. Der Informix-Scheduler sperrt die sysadmin-Datenbank durch sein laufen permanent. Um die Datenbank umzulegen, müsste der Scheduler gestoppt sein.
Das geht über eine Aufruf der Funktion task:

DATABASE sysadmin;
EXECUTE FUNCTION task("scheduler shutdown");

zum Stoppen bzw zum Starten:

DATABASE sysadmin;
EXECUTE FUNCTION task("scheduler start");

Dann kann die sysadmin-Datenbank exportiert werden.

Es gibt aber einen einfacheren Weg. Der Scheduler muss hierzu laufen. Als Erstes muss man einen DBSpace für die sysadmin-Datenbank anlegen. Danach kann man einfach per dbaccess den Admin-API-Befehl:

EXECUTE FUNCTION task("reset sysadmin", "neuer dbspacename");

benutzen.

Intern wird jetzt ein neuer Thread 'bld_sysadmin' gestartet, der 5 Minuten wartet um Exclusiven Zugriff auf die sysadmin-Datenbank zu bekommen. Deshalb sollte der dbaccess jetzt auch mit close database beendet werden.

Das Kommando meldet:

SCHAPI: 'sysadmin' database will be moved to 'neuer dbspacename'.
See online message log.

Später erfolgt eine Erfolgsmeldung im online.log.

Der Parameter "neuer dbspacename" ist optional. Bitte beachten Sie, das es in der Dokumentation vor der Version 11.70.xC7 einen Fehler gibt IC85392. Die sysadmin-Datenbank wird nicht wie in der Dokumentation angegeben im selben DBSpace angelegt in der sie war, sondern im rootdbs. In neueren Dokumentationen ist der Fehler korrigiert.

News ÜbersichtNews Übersicht
News Übersicht
Informix NewsInformix News
Informix News
Scout NewsblogScout Newsblog
Scout Newsblog
NewsletterNewsletter
Newsletter
News ArchivNews Archiv
News Archiv