In dieser Lektion ändern Sie die entfernte Datenbank, um eine neue Spalte in die Customer-Tabelle einzufügen und die zur Synchronisation verwendete Skriptversion zu ändern.
Voraussetzungen
In dieser Lektion wird davon ausgegangen, dass Sie die Rollen und Privilegien haben, die im Abschnitt "Privilegien" am Anfang dieser praktischen Einführung aufgeführt sind: Praktische Einführung: Änderung eines Schemas mit der erweiterten Option ScriptVersion.
In dieser Lektion wird davon ausgegangen, dass Sie bereits alle vorherigen Lektionen abgeschlossen haben. Siehe Lektion 1: Erstellen und Konfigurieren der konsolidierten Datenbank.
Bevor Sie die entfernte Datenbank und die zur Synchronisation verwendete Skriptversion ändern, müssen Sie sicherstellen, dass keine Vorgänge für die Customer-Tabelle laufen, die hochgeladen werden muss. Die einfachste Möglichkeit hierzu ist das Ausführen der Änderung im sp_hook_dbmlsync_schema_upgrade-Hook. Wenn Sie diesen Hook verwenden, gewährleistet dbmlsync, dass die Schemaänderung sicher erfolgt, indem die Synchronisationstabellen beim Start der Synchronisation gesperrt und die Sperren so lange beibehalten werden, bis die Änderung abgeschlossen ist.
Kontext und Bemerkungen
Wenn Sie das Schema ändern, obwohl Vorgänge hochgeladen werden müssen, kann die entfernte Datenbank nach einer Schemaänderung keine Synchronisation durchführen.
Erstellen Sie einen sp_hook_dbmlsync_schema_upgrade-Hook mit den folgenden SQL-Anweisungen in der entfernten Datenbank. Der Hook fügt eine neue Spalte der Customer-Tabelle hinzu und ändert den Wert der erweiterten Option ScriptVersion, die mit der Subskription gespeichert ist. Der Hook wird von dbmlsync gelöscht, nachdem er ausgeführt wurde.
CREATE PROCEDURE sp_hook_dbmlsync_schema_upgrade() BEGIN ALTER TABLE customer ADD cell_phone varchar(12) default null; ALTER SYNCHRONIZATION SUBSCRIPTION my_sub ALTER OPTION ScriptVersion='my_ver2'; UPDATE #hook_dict SET value = 'always' WHERE name = 'drop hook'; END; |
Synchronisieren Sie, um Vorgänge hochzuladen, die hochgeladen werden müssen, und um die Schemaänderung durch Ausführen des sp_hook_dbmlsync_schema_change-Hooks durchzuführen. Führen Sie den folgenden Befehl aus.
dbmlsync -v+ -ot sync2.txt -c UID=DBA;PWD=sql;SERVER=remote -s my_sub -k |
Nach dieser Synchronisation empfiehlt sich ein Blick in das dbmlsync-Log sync2.txt, um sicherzugehen, dass keine Fehlermeldungen einen Fehlschlag der Schemaänderung anzeigen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |