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 11 - Änderungen und Upgrades » Upgrade auf SQL Anywhere 11 » Upgrade von SQL Anywhere

 

Datenbanken bis Version 9 für Version 11 neu erstellen

Dieser Abschnitt beschreibt, wie Sie eine Datenbank entladen und in eine neue Datenbank der Version 11 neu laden.

Weitere Informationen über das Upgrade von Windows Mobile-Datenbanken finden Sie unter Datenbanken unter Windows Mobile neu aufbauen.

Mac OS X-Datenbanken neu erstellen

SQL Anywhere 9.0.2 für Mac OS X wurde auf PPC unterstützt, während SQL Anywhere 10.0.0 und höher für Mac OS X auf Intel unterstützt wird. Wenn Sie eine Datenbank der Version 9.0.2 oder früher unter Mac OS X betreiben, gibt es zwei Möglichkeiten zum Entladen der Datenbank:

  • Sie entladen die Datenbank mit der Version 9.0.2.

  • Sie kopieren die Datenbank auf eine andere Plattform, auf der SQL Anywhere 11 installiert ist, und entladen die Datenbank dann mithilfe der Version 11.

Wenn die Datenbank entladen wurde, können Sie sie mit der Version 11 auf Mac OS X neu laden.

Achtung

Das Entladen und Neuladen einer großen Datenbank kann zeitaufwändig sein und viel Plattenspeicher benötigen. Der für den Vorgang erforderliche Plattenspeicher entspricht etwa der doppelten Datenbankgröße, um die entladenen und neu geladenen Daten zu speichern.

Einschränkungen für das Upgrade

Es gibt einige Einschränkungen, die beim Neuaufbau von Datenbanken bis Version 9 mit den Tools der Version 11 beachtet werden müssen:

  • Sie müssen die Datenbank von allen früheren Versionen des Datenbankservers trennen und alle früheren Datenbankserver, die auf dem Rechner ausgeführt werden, herunterfahren. Außerdem müssen alle Datenbankserver der Version 11 heruntergefahren werden, die auf dem Rechner laufen. Wenn dbunload nicht fortgesetzt werden kann, da das Programm einen solchen Datenbankserver erkennt, gibt es einen Fehler aus und schlägt fehl.

  • Beziehen Sie die Verbindungsparameter ENG, START oder LINKS nicht in die Verbindungszeichenfolge für die alte Datenbank ein (angegeben in der Option -c). Wenn Sie diese Parameter angeben, werden sie ignoriert und eine Warnung wird angezeigt. Geben Sie in Sybase Central im Dialogfeld Verbinden keine Werte in die Felder für den Servernamen und die Startzeile ein.

  • Sie müssen dbunload auf einem Rechner mit direktem Dateisystemzugriff auf die alte Datenbank ausführen (dbunload muss in der Lage sein, eine Verbindung mit der Datenbank unter Verwendung von Shared Memory herzustellen).

  • Es ist nicht möglich, einen Datenbankserver mit dem Namen dbunload_support_engine auf dem Rechner auszuführen, auf dem die Neuerstellung durchgeführt wird.

Berücksichtigung besonderer Umstände
  • Groß- und Kleinschreibung bei Kennwörtern   In neu erstellten SQL Anywhere-Datenbanken der Version 11 berücksichtigen alle Kennwörter die Groß- und Kleinschreibung, unabhängig davon, ob die Datenbank die Groß- und Kleinschreibung berücksichtigt. Das DBA-Standardkennwort neuer Datenbanken lautet sql.

    Wenn Sie eine vorhandene Datenbank neu erstellen, legt SQL Anywhere wie folgt fest, ob das Kennwort die Groß- und Kleinschreibung berücksichtigt:

    • Wenn das Kennwort ursprünglich in eine Datenbank eingegeben wurde, in der die Groß- und Kleinschreibung nicht berücksichtigt wurde, wird bei dem Kennwort weiterhin die Groß- und Kleinschreibung nicht berücksichtigt.

    • Wenn das Kennwort ursprünglich in eine Datenbank eingegeben wurde, in der die Groß- und Kleinschreibung berücksichtigt wurde, wird die Schreibweise bei Kennwörtern in Großschreibung und in einer Mischung aus Groß- und Kleinschreibung weiterhin berücksichtigt. Wenn das Kennwort jedoch in Kleinschreibung eingegeben wurde, wird die Groß- und Kleinschreibung nicht berücksichtigt.

    • Bei Änderungen vorhandener Kennwörter sowie bei neuen Kennwörtern wird die Groß- und Kleinschreibung berücksichtigt.

  • Seitengrößen   Die Standardgröße der Datenbankseiten für SQL Anywhere 11 ist 4096 Byte. In Version 11 werden die Seitengrößen 2048 Byte, 4096 Byte, 8192 Byte, 16384 Byte und 32768 Byte unterstützt. Wenn Ihre alte Datenbank eine nicht unterstützte Seitengröße verwendet, hat die neue Datenbank standardmäßig die Seitengröße von 4096 Byte. Sie können die dbinit-Option -p oder die dbunload-Option -ap verwenden, um eine andere Seitengröße festzulegen. Weitere Hinweise finden Sie unter Dienstprogramm Initialisierung (dbinit) und Entladen-Dienstprogramm (dbunload).

  • Kollatierungen   In Version 9 und früher unterstützte SQL Anywhere eine Kollatierung mit CHAR-Datentypen. Diese Kollatierung hat den SQL Anywhere-Kollatierungsalgorithmus (SQL Anywhere Collation Algorithm, SACA) verwendet. In Version 10 und höher unterstützt SQL Anywhere die beiden Kollatierungsalgorithmen SACA und UCA (Unicode Collation Algorithm). Die SACA-Kollatierung der alten Datenbank wird entladen und in der neu aufgebauten Datenbank erneut verwendet, außer Sie legen eine neue oder andere Kollatierung für die neu aufgebaute Datenbank fest.

    Wenn Sie eine Datenbank mit einer benutzerdefinierten Kollatierung neu aufbauen, wird die Kollatierung nur beibehalten, wenn Sie sie in einem einzigen Schritt neu aufbauen (internes Entladen). Wenn Sie wählen, die Datenbank zu entladen und dann das Schema und die Daten in eine erstellte Datenbank zu laden, müssen Sie eine der unterstützten Kollatierungen verwenden. Weitere Hinweise finden Sie unter Unterstützte und alternative Kollatierungen.

  • Datenbankdateigröße   Aufgrund von Indexänderungen in SQL Anywhere kann es vorkommen, dass eine Datenbank nach der Neuerstellung einer Datenbank durch Entladen und Neuladen kleiner ist als die ursprüngliche Datenbank. Die geringere Datenbankgröße ist kein Hinweis auf ein Problem oder einen Datenverlust.

Eine Datenbank bis Version 9 mit Sybase Central neu erstellen

Sie können mit dem Assistenten zum Entladen einer Datenbank eine alte Datenbank neu erstellen. Sie können die Datenbank mit dem Assistenten in eine Reload-Datei und in Datendateien entladen, in eine neue Datenbank entladen und neu laden oder in eine vorhandene Datenbank entladen und neu laden. Es wird dringend empfohlen, die Datenbank vor ihrer Neuerstellung zu sichern.

Upgrade-Hinweise für Sybase Central
  • Die Datenbankdatei muss sich auf demselben Computer befinden wie die SQL Anywhere 11-Installation.

  • Es ist nicht möglich, eine Teilmenge von Tabellen aus einer Datenbank zu entladen. Sie müssen hierzu das Dientsprogramm dbunload verwenden.

  • Wenn der Assistent zum Entladen der Datenbank feststellt, dass die Datenbankdatei bereits läuft, wird die Datenbank gestoppt, bevor der Entladevorgang ausgeführt wird.

♦  So bauen Sie eine Datenbank neu auf (Sybase Central)
  1. Führen Sie die Standard-Sicherheitsvorkehrungen für ein Software-Upgrade aus. Weitere Hinweise finden Sie unter Wichtige Sicherheitsvorkehrungen für das Upgrade.

  2. Defragmentieren Sie, wenn möglich, das Laufwerk, auf dem die neue Datenbank gespeichert werden soll, da ein fragmentiertes Laufwerk die Performance der Datenbank beeinträchtigen kann.

  3. Stellen Sie sicher, dass nur Sie allein auf die entsprechende Datenbank zugreifen können. Es dürfen keine anderen Benutzer verbunden sein.

  4. Wählen Sie Start » Programme » SQL Anywhere 11 » Sybase Central.

  5. Wählen Sie Extras » SQL Anywhere 11 » Datenbank entladen.

  6. Lesen Sie die Einführungsseite des Assistenten zum Entladen einer Datenbank, und klicken Sie dann auf Weiter.

  7. Wählen Sie Auf einer früheren Version des Servers laufende oder nicht aktive Datenbank entladen?. Geben Sie die Verbindungsinformationen für die Datenbank ein. Klicken Sie auf Weiter.

  8. Wählen Sie Entladen und in eine neue Datenbank laden. Klicken Sie auf Weiter.

  9. Geben Sie einen neuen Dateinamen für die Datenbank an. Klicken Sie auf Weiter.

    Sie können die Seitengröße für die neue Datenbank festlegen. In Version 11 beträgt die standardmäßige (und empfohlene) Seitengröße 4096 Byte.

    Sie können die Datenbankdatei verschlüsseln. Wenn Sie die starke Verschlüsselung wählen, müssen Sie bei jedem Start der Datenbank den Chiffrierschlüssel verwenden. Weitere Hinweise finden Sie unter Datenbank verschlüsseln und entschlüsseln.

  10. Wählen Sie "Struktur und Daten entladen". Klicken Sie auf Weiter.

  11. Legen Sie fest, ob nach dem Neuaufbau eine Verbindung mit der neuen Datenbank hergestellt werden soll.

  12. Klicken Sie auf Fertig stellen. Überprüfen Sie die neue Datenbank, um sicherzustellen, dass der Neuaufbau einwandfrei abgeschlossen wurde.

Eine Datenbank bis Version 9 mit dem Dientsprogramm Entladen neu erstellen

Sie können mit dem Dienstprogramm Entladen (dbunload) mit der Option -an oder -ar eine alte Datenbank neu erstellen:

  • Die Option -an wird empfohlen, weil sie eine neue Datenbank erstellt und dabei die ursprüngliche Datenbank intakt lässt.

  • Die Option -ar ersetzt die alte Datenbank durch eine neue Datenbank der Version 11.

Es wird empfohlen, die Datenbank vor ihrer Neuerstellung zu sichern.

Hinweis

Die Seitengröße für eine Datenbank (in Byte) kann 2048, 4096, 8192, 16384 oder 32768 betragen, wobei der Standardwert die Seitengröße der ursprünglichen Datenbank ist.

♦  So bauen Sie eine Datenbank neu auf (Befehlszeile)
  1. Führen Sie die Standard-Sicherheitsvorkehrungen für ein Software-Upgrade aus. Weitere Hinweise finden Sie unter Wichtige Sicherheitsvorkehrungen für das Upgrade.

  2. Stellen Sie sicher, dass die Dienstprogramme der Version 11 in Ihrem Systempfad vor den anderen Dienstprogrammen aufgeführt sind. Weitere Hinweise finden Sie unter Mit den Dienstprogrammen arbeiten.

  3. Fahren Sie alle SQL Anywhere- und Adaptive Server Anywhere-Datenbankserver herunter, da das Dienstprogramm dbunload der Version 11 nicht für eine Datenbank verwendet werden kann, die auf einer früheren Version des Datenbankservers läuft. Zum Beispiel:

    dbstop -c "DBF=mydb.db;UID=DBA;PWD=sql"
  4. Defragmentieren Sie, wenn möglich, das Laufwerk, auf dem die neue Datenbank gespeichert werden soll, da ein fragmentiertes Laufwerk die Performance der Datenbank beeinträchtigen kann.

  5. Sichern Sie die Datenbank. Zum Beispiel:

    dbbackup -c "DBF=mydb.db;UID=DBA;PWD=sql" Sicherungsverzeichnis_alte_DB

    Weitere Hinweise finden Sie unter Kurzeinführung zu Sicherungen.

    Hinweis

    Stellen Sie sicher, dass Sie die richtige Version von dbbackup zum Sichern der Datenbank verwenden. Weitere Hinweise finden Sie unter Mit den Dienstprogrammen arbeiten.

  6. Führen Sie das Dienstprogramm Entladen (dbunload) mit der Option -an oder -ar aus, um eine neue Datenbank zu erstellen.

    dbunload -c "Verbindungszeichenfolge" -an Datenbankdateiname

    Zum Beispiel:

    dbunload -c "DBF=mydb.db;UID=DBA;PWD=sql" -an mydb11.db

    Der in der Verbindungszeichenfolge angegebene Datenbankbenutzer muss eine Verbindung zur betreffenden Datenbank mit DBA-Berechtigung herstellen. Dieser Befehl erstellt eine neue Datenbank (mit der Option -an). Wenn Sie die Option -ar angeben, wird die vorhandene Datenbank durch eine neu aufgebaute Datenbank ersetzt. Um die Option -ar zu verwenden, müssen Sie eine Verbindung zu einem Personal Server oder einem Netzwerkserver auf demselben Computer herstellen, auf dem sich das Dienstprogramm Entladen (dbunload) befindet.

    Weitere Hinweise zu den anderen für das Dienstprogramm Entladen (dbunload) verfügbaren Optionen finden Sie unter Entladen-Dienstprogramm (dbunload).

Bekannte Probleme

Falls die Neuerstellung fehlschlägt, wenn Sie dbunload oder den Assistenten zum Entladen einer Datenbank ausführen, können Sie mit den folgenden Schritten die Ursache für den Fehler ermitteln.

♦  So diagnostizieren Sie einen Fehlschlag bei der Neuerstellung
  1. Führen Sie in der alten Datenbank dbunload -n aus.

    dbunload -c "Verbindungszeichenfolge" -n Verzeichnisname
  2. Erstellen Sie eine neue, leere Datenbank der Version 11.

    dbinit test.db
  3. Wenden Sie die Datei reload.sql auf die leere Datenbank an.

    dbisql -c "DBF=test.db;UID=DBA;pwd=sql" reload.sql
  4. Nehmen Sie basierend auf den Meldungen, die Sie erhalten, Änderungen an der Datei reload.sql oder der ursprünglichen Datenbank vor, wenn Sie die Datei reload.sql auf die neue Datenbank anwenden.

Die folgende Tabelle listet bekannte Probleme, die zu einem Fehlschlag der Neuerstellung führen, sowie die jeweiligen Lösungen auf.

Bekanntes Problem Lösung
Eine DECLARE LOCAL TEMPORARY TABLE-Anweisung in einer Prozedur oder einem Trigger verursacht einen Syntaxfehler, wenn der Tabellenname einen Eigentümernamen als Präfix hat. Entfernen Sie den Eigentümernamen.
Wenn eine CREATE TRIGGER-Anweisung keinen Eigentümernamen für die Tabelle enthält, für die der Trigger definiert wurde, und die Tabelle mit einem Eigentümer qualifiziert werden muss, wenn sie von dem Benutzer referenziert wird, der die Datei reload.sql ausführt, schlägt die Anweisung fehl. Es wird ein Fehler ausgegeben, der darauf hinweist, dass die Tabelle nicht gefunden wurde. Stellen Sie dem Tabellennamen den Eigentümernamen als Präfix voran.

Wenn ein Objektname (z.B. eine Tabelle, Spalte, Variable oder ein Parametername) auf ein reserviertes Wort reagiert, das in einer höheren Version von SQL Anywhere eingeführt wurde (z.B. NCHAR), schlägt das erneute Laden fehl. Zum Beispiel:

CREATE PROCEDURE p( )
BEGIN
 DECLARE NCHAR INT;
 SET NCHAR = 1;
END;

Ändern Sie alle Verweise auf das reservierte Wort, indem Sie einen anderen Namen verwenden. Bei Variablennamen ist die Verwendung des Präfixes @ eine allgemeine Konvention, die Namenskonflikte vermeidet.

Eine vollständige Liste der reservierten Wörter finden Sie unter Reservierte Wörter.

Wenn eine Datenbank mit dbunload aus Version 9 oder früher entladen wird, kann die Datei reload.sql Aufrufe der Systemprozedur ml_add_property enthalten, doch diese Prozedur ist in einer neuen Datenbank der Version 11 nicht enthalten.

Entladen Sie die Datenbank mit dem Dienstprogramm dbunload der Version 11.

Weitere Hinweise dazu, wie Sie sicherstellen können, dass die richtige Version der Datenbank-Dienstprogramme verwendet wird, finden Sie unter Mit den Dienstprogrammen arbeiten.

Wenn Sie eine Datenbank mit dem Dienstprogramm dbunload aus Version 9 oder früher entladen, werden Ansichten, die Transact-SQL-Outer-Joins (Angabe *= or =*) verwenden, möglicherweise nicht richtig erstellt, wenn sie erneut geladen werden.

Fügen Sie die folgende Zeile in das Neulade-Skript ein:

SET TEMPORARY OPTION tsql_outer_joins='on';

Sie sollten später alle Ansichten, die Transact-SQL-Outer-Joins verwenden, neu erstellen.