Führt ein Upgrade der Datenbank durch, schaltet jConnect-Unterstützung für eine Datenbank ein und aus, kalibriert die Datenbank, ändert die Namen der Transaktions- und Spiegellogdateien oder veranlasst einen Spiegelserver, Eigentümer einer Datenbank zu werden.
ALTER DATABASE UPGRADE [ PROCEDURE ON ] [ JCONNECT { ON | OFF } ] [ RESTART { ON | OFF } ] [ SYSTEM PROCEDURE AS DEFINER { ON | OFF } ]
ALTER DATABASE { CALIBRATE [ SERVER ] | CALIBRATE DBSPACE dbspace-name | CALIBRATE DBSPACE TEMPORARY | CALIBRATE GROUP READ | CALIBRATE PARALLEL READ | RESTORE DEFAULT CALIBRATION }
ALTER DATABASE dbfile ALTER [ TRANSACTION ] LOG { ON [ log-name ] [ MIRROR mirror-name ] | OFF } [ KEY key ]
ALTER DATABASE { dbname FORCE START | SET PARTNER FAILOVER }
ALTER DATABASE dbfile CHECKSUM OFF
PROCEDURE-Klausel Mit dieser Klausel können Sie alle Prozeduren in der Datenbank löschen und neu erstellen, deren Eigentümer dbo oder SYS ist.
JCONNECT-Klausel Um dem jConnect JDBC-Treiber den Zugriff auf Systemkataloginformationen zu ermöglichen, geben Sie JCONNECT ON an. Diese Klausel installiert die Systemobjekte, die jConnect-Unterstützung zur Verfügung stellen. Geben Sie JCONNECT OFF an, 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.
RESTART-Klausel RESTART ist standardmäßig ON. Wenn RESTART ON angegeben und der AutoStop-Verbindungsparameter auf "No" gesetzt ist, wird die Datenbank nach einem Upgrade neu gestartet. Andernfalls wird die Datenbank nach einem Upgrade gestoppt.
Klausel SYSTEM PROCEDURE AS DEFINER {ON | OFF} Die SYSTEM PROCEDURE AS DEFINER-Klausel gibt an, ob Systemprozeduren vor Version 16.0, die mit Privilegien verbundene Aufgaben ausführen, mit den Privilegien des Aufrufers oder des Definierers (Eigentümers) ausgeführt werden sollen. ON bedeutet, dass diese Systemprozeduren mit den Privilegien des Definierers (Eigentümers) ausgeführt werden. OFF bedeutet, dass diese Systemprozeduren mit den Privilegien des Aufrufers ausgeführt werden.
Wenn diese Klausel nicht angegeben ist, wird standardmäßig das aktuelle Verhalten der Datenbank beibehalten, für die ein Upgrade durchgeführt wird. Beim Upgrade einer Datenbank vor Version 16.0 bedeutet dies das Ausführen der Prozeduren als Definierer.
Diese Einstellung betrifft nicht benutzerdefinierte Prozeduren oder Prozeduren, die in Version 16.0 oder später eingeführt wurden. Hinweise dazu, welche Systemprozeduren betroffen sind und welche Auswirkungen die Einstellung hat, finden Sie unter Systemprozeduren vor Version 16.0 als Aufrufer oder Definierer ausführen.
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 mirror-name 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, fungiert nun die neue Datei als Transaktionslog.
Wenn MIRROR mirror-name 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 Transaktionslog-Spiegel verwendet, fungiert nun die neue Datei als Transaktionslog-Spiegel.
Sie können diese Klausel auch verwenden, um das Transaktionslog bzw. den Transaktionslog-Spiegel zu deaktivieren. Beispiel: ALTER DATABASE ALTER LOG OFF.
KEY-Klausel Damit geben Sie den Chiffrierschlüssel an, der für das Transaktionslog oder den Transaktionslogspiegel verwendet werden soll. Der Chiffrierschlüssel kann entweder eine Zeichenfolge oder ein Variablenname sein. Wenn Sie die ALTER [TRANSACTION] LOG-Klausel für eine stark verschlüsselte Datenbank verwenden, müssen Sie den Chiffrierschlüssel angeben.
dbname FORCE START-Klausel Zwingt einen Datenbankserver, der derzeit als Spiegelserver fungiert, Eigentümer der Datenbank zu werden.
Die Verwendung der FORCE START-Klausel kann zum Verlust von Transaktionen führen, wenn der Primärserver Transaktionen enthält, die der Spiegelserver nicht hat.
Es wird empfohlen, dass Sie den Primärserver neu starten und ALTER DATABASE mit der SET PARTNER FAILOVER-Klausel ausführen, um einen Failover ohne Verlust von Transaktionen zu erzwingen. Verwenden Sie die FORCE START-Klausel nur als letztes Mittel, wenn der Primärserver nicht neu gestartet werden kann. Siehe Fehlerbehandlung: Primärserver kann nicht neu gestartet 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.
SET PARTNER FAILOVER-Klausel Initiiert einen Datenbankspiegelungs-Failover vom Primärserver auf dem Spiegelserver, ohne den Server zu stoppen. Diese Anweisung muss ausgeführt werden, während eine Verbindung mit der Datenbank auf dem Primärserver besteht, und sie kann aus einer Prozedur oder einem Ereignis heraus ausgeführt werden. Beim Ausführen dieser Anweisung gilt Folgendes:
Der Datenbankserver schließt alle Verbindungen mit der Datenbank, einschließlich der Verbindung, die die Anweisung ausgeführt hat.
Die Datenbank wird gestoppt und anschließend in der Rolle des Spiegelservers neu gestartet.
Wenn die Anweisung in einer Prozedur oder einem Ereignis enthalten ist, werden nachfolgende Anweisungen möglicherweise nicht ausgeführt.
CHECKSUM-Klausel Deaktiviert globale Prüfsummen für die Datenbank. Standardmäßig haben neue Datenbanken aktivierte globale Prüfsummen, während Datenbanken der Version 11 und früher keine globale Prüfsummen aktiviert haben.
Ungeachtet der Einstellung dieser Klausel aktiviert der Datenbankserver das Schreiben von Prüfsummen immer für Datenbanken, die auf Speichermedien wie beispielsweise Wechseldatenträgern laufen, sowie für Datenbanken, die unter Windows Mobile ausgeführt werden, damit eine frühe Erkennung von Beschädigungen der Datenbankdatei möglich ist. Außerdem berechnet der Datenbankserver während der Validierung Prüfsummen für entscheidende Seiten.
Bei Datenbanken, für die keine globalen Prüfsummen aktiviert wurden, können Sie das Schreiben von Prüfsummen unter Verwendung der Optionen für -wc aktivieren.
Syntax 1 Sie können die ALTER DATABASE UPGRADE-Anweisung als Alternative zum Dienstprogramm zum Upgrade (dbupgrad) verwenden, um ein Upgrade oder eine Aktualisierung einer Datenbank durchzuführen. Standardmäßig wird die Datenbank nach dem Upgrade gestoppt und neu gestartet. Das Transaktionslog wird während des Upgrades archiviert und ein neues Transaktionslog wird erstellt, bevor die Datenbank gestoppt oder neu gestartet wird.
In der Regel beschränken sich Änderungen in Datenbanken zwischen Minor Releases auf zusätzliche Datenbankoptionen sowie kleinere Änderungen an Systemtabellen und Systemprozeduren. 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.
Eine Fehlermeldung wird zurückgegeben, wenn Sie eine ALTER DATABASE UPGRADE-Anweisung auf einem Datenbankserver ausführen, der derzeit gespiegelt wird.
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.
Sichern Sie Ihre Datenbankdateien, bevor Sie ein Upgrade der Datenbank versuchen.
Wenn Sie den jConnect JDBC-Treiber für den Zugriff auf Systemkataloginformationen verwenden möchten, geben Sie JCONNECT ON (Standardwert) an. Wenn Sie die jConnect-Systemobjekte ausschließen möchten, geben Sie JCONNECT OFF an. Eine Einstellung auf JCONNECT OFF entfernt die Javaunterstützung nicht aus der Datenbank. Sie können trotzdem JDBC verwenden, solange Sie nicht auf Systemkataloginformationen zugreifen. Wenn Sie danach eine neuere Version von jConnect herunterladen, können Sie ein Upgrade der Version in der Datenbank durchführen, indem Sie die ALTER DATABASE UPGRADE JCONNECT ON-Anweisung (erneut) ausführen.
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 mithilfe der erweiterten Datenbankeigenschaft IOParallelism die geschätzte maximale Anzahl von in einer DBSpace-Datei zulässigen parallelen I/O-Vorgängen abrufen.
Wenn Sie mehrere ähnliche Geräte installiert haben, können Sie wiederholte, zeitaufwendige Neukalibrierungsaktivitäten vermeiden und eine vorhandene Kalibrierung wiederverwenden, indem Sie sie mit den Systemprozeduren sa_unload_cost_model bzw. sa_load_cost_model entladen und in eine andere Datenbank übernehmen (laden).
Syntax 3 Verwenden Sie die ALTER DATABASE-Anweisung, um die Namen des Transaktionslogs und des Transaktionslog-Spiegels zu ändern, die mit einer Datenbankdatei verbunden sind. Die Datenbank darf nicht laufen, wenn diese Änderungen vorgenommen werden. 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.
Verwenden Sie die BACKUP DATABASE-Anweisung, um das Transaktionslog für eine laufende Datenbank umzubenennen. Beispiel:
BACKUP DATABASE DIRECTORY 'directory-name' TRANSACTION LOG ONLY TRANSACTION LOG RENAME; |
Syntax 4 ALTER DATABASE...FORCE START muss auf dem Spiegelserver ausgeführt werden, nicht auf dem Primärserver.
Syntax 5 Diese Klausel kann nur verwendet werden, um Prüfsummen bei einer Datenbank zu deaktivieren.
ALTER DATABASE UPGRADE wird unter Windows Mobile nicht unterstützt.
Syntax 1 und 2: Sie müssen das ALTER DATABASE-Systemprivileg haben und als einziger Benutzer mit der Datenbank verbunden sein.
Syntax 3: Sie müssen das SERVER OPERATOR-Systemprivileg haben sowie die Dateiberechtigungen für die Verzeichnisse, in denen sich das Transaktionslog befindet. Außerdem darf die Datenbank nicht laufen.
Ob Sie die Anweisung ALTER DATABASE dbfile ALTER TRANSACTION LOG ausführen können, hängt von der Einstellung für die Datenbankoption -gu ab und davon, ob Sie das SERVER OPERATOR-Systemprivileg haben.
Syntax 4: Sie müssen das SERVER OPERATOR-Systemprivileg haben.
Die zum Ausführen der Anweisung ALTER DATABASE Datenbankname FORCE START erforderlichen Privilegien können durch die Datenbankserveroption -gd geändert werden.
Syntax 5: Sie müssen das ALTER DATABASE-Systemprivileg haben.
Automatisches Festschreiben (Autocommit).
Syntax 1: Das Transaktionslog wird während des Upgrades archiviert. Ein neues Transaktionslog wird erstellt, wenn die Datenbank nach dem Upgrade neu gestartet wird.
Syntax 1: Die Datenbank wird am Ende des Upgrades gestoppt und standardmäßig neu gestartet.
SQL/2008 Erweiterung des Herstellers.
Transact-SQL Die ALTER DATABASE-Anweisung wird von Adaptive Server Enterprise unterstützt. Die von Adaptive Server Enterprise unterstützten Klauseln der Anweisung sind jedoch unabhängig von den Klauseln, die von SQL Anywhere unterstützt werden.
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 mynewdemo.log:
ALTER DATABASE 'C:\\Users\\Public\\Documents\\SQL Anywhere 16\\Samples\\demo.db' ALTER LOG ON 'mynewdemo.log'; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |