Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (A-D)

 

ALTER DATABASE-Anweisung

Verwenden Sie diese Anweisung, um ein Upgrade der Datenbank durchzuführen, jConnect-Unterstützung für eine Datenbank ein- und auszuschalten, die Datenbank zu kalibrieren, die Namen der Transaktions- und Spiegellogdateien zu ändern oder einen Spiegelserver zu veranlassen, Eigentümer einer Datenbank zu werden.

Eine Fehlermeldung wird zurückgegeben, wenn Sie eine ALTER DATABASE UPGRADE-Anweisung auf einem Datenbankserver ausführen, der derzeit gespiegelt wird.

Syntax 1 - Upgrade von Komponenten durchführen oder Objekte wiederherstellen
ALTER DATABASE UPGRADE 
[ PROCEDURE ON ]
[ JCONNECT { ON | OFF } ]
Syntax 2 - Kalibrierung durchführen
ALTER DATABASE {
 CALIBRATE [ SERVER ]
 | CALIBRATE DBSPACE DBSpace-Name
 | CALIBRATE DBSPACE TEMPORARY
 | CALIBRATE GROUP READ
 | CALIBRATE PARALLEL READ
 | RESTORE DEFAULT CALIBRATION
}
Syntax 3 - Namen von Transaktionslog und Transaktionslogspiegel ändern
ALTER DATABASE Datenbankdatei
ALTER [ TRANSACTION ] LOG {
{ ON [ Logname ] [ MIRROR Spiegelname ] | OFF }
[ KEY Schlüssel ]
Syntax 4 - Eigentümer einer Datenbank ändern
ALTER DATABASE 
{ DB-Name FORCE START| SET PARTNER FAILOVER }
Parameter
  • PROCEDURE-Klausel   Mit dieser Klausel können Sie alle dbo- und sys-gehörenden Prozeduren in der Datenbank löschen und neu erstellen.

  • JCONNECT-Klausel   Um dem jConnect JDBC-Treiber den Zugriff auf Systemkataloginformationen zu ermöglichen, geben Sie JCONNECT ON an. Dies installiert die Systemobjekte, die jConnect-Unterstützung zur Verfügung stellen. Stellen Sie JCONNECT OFF ein, wenn Sie die jConnect-Systemobjekte ausschließen möchten. Sie können trotzdem JDBC verwenden, sofern Sie nicht auf Systemdaten zugreifen. JCONNECT ist standardmäßig ON.

    Wenn Sie eine Datenbank für die Verwendung in Windows Mobile ändern, finden Sie weitere Hinweise unter jConnect unter Windows Mobile verwenden.

  • CALIBRATE [ SERVER ]-Klausel   Damit kalibrieren Sie alle DBSpaces außer den temporären DBSpace. Diese Klausel führt auch die von CALIBRATE PARALLEL READ ausgeführte Arbeit aus.

  • CALIBRATE DBSPACE-Klausel   Mit dieser Klausel kalibrieren Sie den angegebenen DBSpace.

  • CALIBRATE DBSPACE TEMPORARY-Klausel   Mit dieser Klausel kalibrieren Sie den temporären DBSpace.

  • CALIBRATE GROUP READ-Klausel   Mit dieser Klausel kalibrieren Sie Gruppenlesevorgänge für den temporären DBSpace. Sie schreibt große Arbeitstabellen in den temporären DBSpace und benutzt verschiedene Gruppenlesegrößen zur zeitlichen Abstimmung des Lesens der Dateien. Wenn das Hinzufügen von Speicherplatz zur temporären Tabelle das Limit für die Verbindung überschreitet oder der Cache nicht groß genug ist, um eine Kalibrierung mit dem größten Speicherwert zu ermöglichen, schlägt die Kalibrierung fehl und eine Fehlermeldung wird angezeigt.

  • CALIBRATE PARALLEL READ-Klausel   Damit kalibrieren Sie die parallelen I/O-Fähigkeiten von Devices für alle DBSpace-Dateien. Die Klausel CALIBRATE [ SERVER ] führt ebenfalls diese Kalibrierung durch.

  • RESTORE DEFAULT CALIBRATION-Klausel   Damit setzen Sie das DTT-Modell (Disk Transfer Time) auf die integrierten Standardwerte zurück, die auf typischen Hardware- und Konfigurationseinstellungen basieren.

  • ALTER [TRANSACTION] LOG-Klausel   Damit ändern Sie den Dateinamen des Transaktionslogs oder des Transaktionslogspiegels. Wenn MIRROR Spiegelname nicht angegeben ist, legt die Klausel den Namen für ein neues Transaktionslog fest. Wenn die Datenbank gerade kein Transaktionslog benutzt, verwendet sie ab jetzt eines. Wenn die Datenbank bereits ein Transaktionslog verwendet, benutzt sie ab jetzt die neue Datei als Transaktionslog.

    Wenn MIRROR Spiegelname angegeben ist, legt die Klausel einen Dateinamen für einen neuen Transaktionslogspiegel fest. Wenn die Datenbank gerade keinen Transaktionslogspiegel benutzt, verwendet sie ab jetzt einen. Wenn die Datenbank bereits einen Transaktionslogspiegel verwendet, wechselt sie nun zur neuen Datei als Transaktionslogspiegel.

    Sie können diese Klausel auch verwenden, um das Transaktionslog oder den Transaktionslogspiegel zu deaktivieren. Beispiel: ALTER DATABASE LOG OFF.

  • KEY-Klausel   Gibt den Chiffrierschlüssel an, der für das Transaktionslog oder den Transaktionslogspiegel verwendet werden soll. Wenn Sie die ALTER [TRANSACTION]-Klausel für eine stark verschlüsselte Datenbank verwenden, müssen Sie den Chiffrierschlüssel angeben.

  • DB-Name FORCE START-Klausel   Veranlasst einen Datenbankserver, der derzeit als Spiegelserver agiert, Eigentümer der Datenbank zu werden. Diese Klausel kann von innerhalb einer Prozedur oder eines Ereignisses ausgeführt werden. Sie muss ausgeführt werden, während eine Verbindung zur Dienstprogrammdatenbank auf dem Spiegelserver besteht. Weitere Hinweise finden Sie unter Einen Datenbankserver zwingen, zum Primärserver zu werden.

  • SET PARTNER FAILOVER-Klausel   Initiiert ein Datenbankspiegelungs-Failover vom Primärserver zum Spiegelserver. Diese Anweisung muss ausgeführt werden, während eine Verbindung zur Datenbank auf dem Primärserver besteht, und sie kann von einer Prozedur oder einem Ereignis ausgeführt werden. Wenn sie ausgeführt wird, werden vorhandene Verbindungen zur Datenbank geschlossen, einschließlich der Verbindung, die die Anweisung ausgeführt hat. Wenn daher die Anweisung in einer Prozedur oder einem Ereignis enthalten ist, werden nachfolgende Anweisungen möglicherweise nicht ausgeführt. Weitere Hinweise finden Sie unter Failover auf dem Primärserver initiieren.

Bemerkungen

Syntax 1   Sie können die ALTER DATABASE UPGRADE-Anweisung als Alternative zum Upgrade-Dienstprogramm verwenden, um ein Upgrade oder Update einer Datenbank durchzuführen. Dies gilt auch für Wartungsversionen. Nach dem Ausführen dieser Anweisung sollten Sie die Datenbank neu starten. Im Allgemeinen sind Änderungen in Datenbanken von früheren Versionen auf zusätzliche Datenbankoptionen und kleinere Änderungen der Systemtabellen und Prozeduren begrenzt. Die ALTER DATABASE UPGRADE-Anweisung führt ein Upgrade der Systemtabellen auf die aktuelle Version durch und fügt etwaige neue Datenbankoptionen hinzu. Falls erforderlich werden auch alle Systemprozeduren gelöscht und neu erstellt. Sie können eine Neuerstellung der Systemprozeduren erzwingen, indem Sie die PROCEDURE ON-Klausel angeben.

Sie können mit der ALTER DATABASE UPGRADE-Anweisung auch den Originalzustand (Installationsstatus) von Einstellungen und Systemobjekten wiederherstellen.

Funktionen, die eine physische Neuorganisation der Datenbankdatei erfordern, werden durch das Ausführen einer ALTER DATABASE UPGRADE-Anweisung nicht verfügbar gemacht. Solche Funktionen sind Index-Verbesserungen und Änderungen in der Datenspeicherung. Damit Sie diese Verbesserungen nützen können, müssen Sie Ihre Datenbank entladen und neu laden. Weitere Hinweise finden Sie unter Datenbanken neu aufbauen.

Achtung

Sie sollten Ihre Datenbankdateien vor jedem Upgrade sichern. Wenn Sie das Upgrade auf vorhandene Dateien anwenden, werden diese Dateien unbrauchbar, falls das Upgrade fehlschlägt. Weitere Hinweise zur Sicherung der Datenbank finden Sie unter Daten sichern und wiederherstellen.

Um den jConnect JDBC-Treiber für den Zugriff auf Systemkataloginformationen zu verwenden, geben Sie JCONNECT ON (Standardwert) an. Wenn Sie die jConnect-Systemobjekte ausschließen möchten, müssen Sie JCONNECT OFF einstellen. Eine Einstellung auf JCONNECT OFF entfernt die Javaunterstützung nicht aus der Datenbank. Sie können trotzdem auch JDBC verwenden, solange Sie nicht auf Systemkataloginformationen zugreifen. Wenn Sie danach ein Download einer aktuelleren Version von jConnect durchführen, können Sie ein Upgrade der Version in der Datenbank vornehmen, indem Sie die ALTER DATABASE UPGRADE JCONNECT ON-Anweisung (erneut) durchführen. Weitere Hinweise finden Sie unter jConnect-Systemobjekte in einer Datenbank installieren.

Syntax 2   Verwenden Sie Syntax 2, um das vom Optimierer verwendete I/O-Kostenmodell neu zu kalibrieren. Damit wird das Modell "Disk Transfer Time" (DTT) aktualisiert, ein mathematisches Modell der vom Kostenmodell verwendeten I/O-Vorgänge. Wenn Sie das I/O-Kostenmodell neu kalibrieren, ist der Datenbankserver nicht für andere Aufgaben verfügbar. Außerdem ist es von wesentlicher Bedeutung, dass alle anderen Aktivitäten auf dem Computer ruhen. Das Neukalibrieren des Datenbankservers ist ein kostenträchtiger Vorgang und kann eine gewisse Zeit in Anspruch nehmen. Es wird empfohlen, die Standardwerte nicht zu ändern.

Wenn Sie die CALIBRATE PARALLEL READ-Klausel verwenden, wird keine parallele Kalibrierung auf DBSpace-Dateien mit weniger als 10.000 Seiten durchgeführt. Auch wenn der Datenbankserver während Kalibrierungsvorgängen automatisch alle seine Aktivitäten unterbricht, sollte eine parallele Kalibrierung nur ausgeführt werden, wenn es keine Prozesse auf dem Computer gibt, die signifikant Ressourcen verbrauchen. Nach der Kalibrierung können Sie die geschätzte maximale Anzahl von in einer DBSpace-Datei zulässigen I/O-Vorgängen abrufen, indem Sie die erweiterte Datenbankeigenschaft 'IOParallelism' verwenden Weitere Hinweise finden Sie unter DB_EXTENDED_PROPERTY-Funktion [System].

Wenn Sie mehrere ähnliche Geräte installiert haben, können Sie wiederholte, zeitaufwendige Rekalibrierungsaktivitäten vermeiden und eine bestehende Kalibrierung mehrfach nutzen, indem Sie sie mit den Systemprozeduren sa_unload_cost_model bzw. sa_load_cost_model entladen und in eine andere Datenbank übernehmen (laden). Weitere Hinweise finden Sie unter sa_unload_cost_model-Systemprozedur und sa_load_cost_model-Systemprozedur.

Syntax 3   Sie können die Anweisung ALTER DATABASE verwenden, um die Namen des Transaktionslogs und des Transaktionslogspiegels zu ändern, die mit einer Datenbank verbunden sind. Das sind die gleichen Veränderungen, die auch mit dem Transaktionslog-Dienstprogramm (dblog) durchgeführt werden können. Sie können diese Anweisung ausführen, während Sie mit der Dienstprogrammdatenbank oder einer anderen Datenbank verbunden sind, je nach Einstellung der Option -gu. Wenn Sie das Transaktionslog oder den Transaktionslogspiegel einer verschlüsselten Datenbank verändern, müssen Sie den Schlüssel angeben. Sie können die Verwendung des Transaktionslogs nicht beenden, wenn die Datenbank Auditing verwendet. Sobald Sie Auditing ausgeschaltet haben, können Sie die Verwendung des Transaktionslogs beenden. Diese Syntax wird in Prozeduren, Triggern, Ereignissen oder Anwendungsfolgen nicht unterstützt.

Syntax 4   ALTER DATABASE ... FORCE START muss auf dem Spiegelserver ausgeführt werden, nicht auf dem Primärserver. Der Versuch, eine ALTER DATABASE ... FORCE START-Anweisung für eine Datenbank auszuführen, die nicht gespiegelt wird oder derzeit aktiv und im Eigentum dieses Servers ist, ergibt einen Fehler. Wenn der Primärserver weiterhin mit dem Spiegelserver verbunden ist, wird auch ein Fehler ausgegeben. Weitere Hinweise finden Sie unter Einführung in die Datenbankspiegelung.

Berechtigungen

Für Syntax 1 und 2 müssen Sie über DBA-Berechtigungen verfügen, und es muss die einzige Verbindung zur Datenbank sein. ALTER DATABASE UPGRADE wird unter Windows Mobile nicht unterstützt.

Für Syntax 3 müssen Sie über Dateiberechtigungen für die Verzeichnisse verfügen, in denen sich das Transaktionslog befindet, und die Datenbank darf nicht ausgeführt werden.

Für Syntax 4 müssen Sie über die Berechtigungen verfügen, die von der Serveroption -gk angegeben werden.

Nebenwirkungen

Automatisches Festschreiben (Autocommit).

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiel

Das folgende Beispiel deaktiviert die jConnect-Unterstützung:

ALTER DATABASE UPGRADE JCONNECT OFF;

Das folgende Beispiel setzt den Dateinamen des Transaktionslogs, das zur Datenbank demo.db gehört, auf newdemo.log:

ALTER DATABASE 'demo.db'
   ALTER LOG ON 'newdemo.log';