MobiLink unterstützt IBM DB2 LUW für Linux und Windows.
Um IBM DB2 für die Verwendung als konsolidierte MobiLink-Datenbank einzurichten, müssen Sie eine Setupprozedur durchführen, die Systemtabellen, gespeicherte Prozeduren, Trigger und Ansichten hinzufügt, die für die MobiLink-Synchronisation erforderlich sind.
Voraussetzungen
Vor dem Ausführen des Setupskripts sollten Sie die folgenden Anforderungen berücksichtigen:
Der gleiche Datenbankbenutzer, der das Setupskript ausführt, wird als Benutzer erwartet, der die MobiLink-Systemtabellen während der Synchronisation aktualisiert. Dieser Benutzer muss verwendet werden, um den MobiLink-Server zu starten und MobiLink-Anwendungen zu konfigurieren. Siehe Erforderliche Privilegien.
Der RDBMS-Benutzer, der mithilfe des MobiLink-Servers eine Verbindung mit der konsolidierten Datenbank herstellt, muss in der Lage sein, die MobiLink-Systemtabellen, -Prozeduren usw. ohne Qualifizierer zu verwenden (Beispiel: SELECT * from ml_user). Siehe Systemtabellen des MobiLink-Servers.
Kontext und Bemerkungen
Sie können die MobiLink-Systemeinrichtung auch über Sybase Central prüfen und aktualisieren. Siehe MobiLink-Systemkonfiguration.
Um MobiLink-Systemtabellen mit dem Setupskript zu installieren, müssen Sie ein IBM DB2 LUW-Tablespace mit mindestens 8-kB-Seiten verwenden. Falls der Tablespace keine 8-kB-Seiten verwendet, führen Sie folgende Schritte aus.
Überprüfen Sie anhand mindestens eines Ihrer Pufferpools, ob 8-kB-Seiten verwendet werden. Wenn nicht, erstellen Sie einen Pufferpool mit 8-kB-Seiten.
Erstellen Sie einen neuen Tablespace und einen temporären Tablespace, die einen Pufferpool mit Seiten von 8 kB verwenden.
Weitere Hinweise finden Sie in Ihrer IBM DB2 LUW-Dokumentation.
Ergänzen Sie syncdb2.sql mit Ihren Verbindungsdaten:
Kopieren Sie syncdb2.sql an einen neuen Speicherort, wo die Datei geändert und wieder abgespeichert werden kann.
Das Skript syncdb2.sql enthält die Standard-Verbindungsanweisung connect to DB2Database
. Ändern Sie diese Zeile, um eine Verbindung zu Ihrer IBM DB2-Datenbank herzustellen. Verwenden Sie die folgende Syntax:
connect to DB2Database user userid using password ~ |
Dabei gilt: DB2Database, userid und password sind von Ihnen bereitgestellte Werte. (Im Skript syncdb2.sql wird die Tilde (~) als Trennzeichen zwischen Befehlen verwendet.)
Führen Sie syncdb2.sql aus:
db2 -c -ec -td~ +s -v -f syncdb2.sql |
Ergebnisse
MobiLink-Systemtabellen, gespeicherte Prozeduren, Trigger und Ansichten werden installiert und IBM DB2 LUW kann als konsolidierte Datenbank verwendet werden.
Nächste Schritte
Für die konsolidierte IBM DB2-Datenbank muss eine ODBC-Datenquelle (DSN) eingerichtet werden. Verwenden Sie dazu den ODBC-Treiber, der mit der IBM DB2-Datenbank zur Verfügung gestellt wurde. Siehe:
Sperrenerweiterung Um die Datenkonsistenz zwischen konsolidierter und entfernter Datenbank aufrechtzuerhalten, gibt der MobiLink-Server die folgende Abfrage über die gespeicherte Prozedur ml_lock_rid aus, um die entfernte ID in jeder Synchronisationsphase zu sperren.
SELECT sync_key into p_sync_key FROM ml_database WHERE rid = a_given_remote_id WITH RR USE AND KEEP EXCLUSIVE LOCKS; |
Diese Abfrage sperrt die entfernte ID im Exklusivmodus, um gleichzeitige Synchronisationen mit derselben entfernten ID zu verhindern.
Wenn Sperrenfehler für entfernte MobiLink-IDs auftreten, wenn keine gleichzeitigen Synchronisationen derselben entfernten ID vorliegen, z.B. wenn der MobiLink-Fehlercode -10341 im Log des MobiLink-Servers ausgegeben wird, sollten Sie die DB2-Konfigurationsparameter maxlocks und locklist ändern, um eine Sperrenausweitung zu verhindern. Weitere Hinweise finden Sie in Ihrer DB2-Dokumentation.
Datentypen zuordnen Die Datentypen von Spalten müssen korrekt zwischen der konsolidierten und der entfernten Datenbank abgestimmt und zugeordnet werden. Siehe IBM DB2 LUW-Datentypzuordnung.
CHAR-Spalten In IBM DB2 LUW haben CHAR-Datentypen eine feste Länge und werden bis zur vollen Länge der Zeichenfolge mit Leerzeichen aufgefüllt. In entfernten MobiLink-Datenbanken (SQL Anywhere oder UltraLite) entspricht CHAR dem Datentyp VARCHAR: Werte werden nicht bis zu einer bestimmten Länge mit Leerzeichen aufgefüllt. Verwenden Sie in der konsolidierten Datenbank unbedingt VARCHAR anstelle von CHAR. Wenn Sie CHAR verwenden müssen, können Sie mit der mlsrv16-Befehlszeilenoption -b während der Synchronisation nachgestellte Leerzeichen aus Zeichenfolgen entfernen. Diese Option ist wichtig für Zeichenfolgenvergleiche, mit denen Konflikte erkannt werden.
Siehe mlsrv16-Option -b .
Tablespace-Kapazität Der Tablespace und der temporäre Tablespace einer IBM DB2 LUW-Datenbank, die als konsolidierte Datenbank verwendet werden soll, muss mindestens 8-kB-Seiten verwenden.
Außerdem gibt es Spalten, für die ein Tablespace vom Typ LONG erforderlich sind. Wenn es in der Standardkonfiguration keinen Tablespace vom Typ LONG gibt, müssen die Anweisungen zum Erstellen der Tabelle mit diesen Spalten entsprechend angegeben werden. Dazu ein Beispiel:
CREATE TABLE ... ( ... ) IN tablespace LONG IN long-tablespace |
Ein Beispiel in der Beispielanwendung finden Sie unter MobiLink-Beispiel CustDB.
Anführungszeichen in Systemprozeduraufrufen verdoppeln
Wenn Sie Ihrer konsolidierten IBM DB2-Datenbank mit einer MobiLink-Systemprozedur Skripten hinzufügen, müssen Sie die
Anführungszeichen verdoppeln. Beispiel: Wenn das Skript, das Sie mit ml_add_table_script hinzufügen, für eine beliebige andere
konsolidierte Datenbank die Zeile SET "DELETED"=''Y''
enthält, müssen Sie diese Zeile für IBM DB2 wie folgt schreiben: SET "DELETED" = ''''Y''''
.
Siehe MobiLink-Isolationsstufen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |