Synchronisiert eine SQL Anywhere-Datenbank mit einem MobiLink-Server. Die Synchronisationsoptionen können in der Anweisung selbst angegeben werden.
SYNCHRONIZE { PROFILE sync-profile-name [ MERGE sync-option [ ;... ] ] | USING sync-option [ ;... ] | START | STOP }
[ PORT port-number ] [ VERBOSITY { LOW | NORMAL | HIGH } ] [ TIMEOUT timeout ] [ USER user-name IDENTIFIED BY password ]
sync-option : string
sync-profile-name Der Name des Synchronisationsprofils, das für diese Synchronisation verwendet werden soll.
MERGE-Klausel Verwenden Sie diese Klausel, um Synchronisationsprofiloptionen hinzuzufügen oder zu überschreiben.
USING-Klausel Mit dieser Klausel geben Sie Synchronisationsprofiloptionen an, wenn Sie kein Synchronisationsprofil verwenden.
sync-option
Eine Zeichenfolge mit mindestens einem Paar "Synchronisationsprofiloption=Wert", getrennt durch Semikola. Beispiel: 'option1=value1;option2=value2'
.
PORT-Klausel Verwenden Sie diese Klausel, um die Portnummer anzugeben, die der Datenbankserver für die Kommunikation mit dem dbmlsync-Dienstprogramm verwendet. Standardwert ist "4433".
VERBOSITY-Klausel Diese Klausel steuert den Umfang der Informationen, die den gemeinsam genutzten globalen temporären Tabellen "synchronize_results" und "synchronize_parameters" während der Synchronisation hinzugefügt werden.
Im Folgenden finden Sie eine Liste der Client-API-Ereignisse, die von den einzelnen VERBOSITY-Optionen zurückgegeben werden.
Option | Rückgabe |
---|---|
LOW |
|
NORMAL (Standard) |
|
HIGH |
|
Achten Sie darauf, die VERBOSITY-Klausel der SYNCHRONIZE-Anweisung nicht mit der VERBOSITY-Option zu verwechseln, die Sie in einem Synchronisationsprofil angeben können. Die VERBOSITY-Klausel der SYNCHRONIZE-Anweisung steuert den Typ der Ereignisse, die in den Tabellen synchronize_results und synchronize_parameters aufgezeichnet werden können. Die VERBOSITY-Optionen in einem Synchronisationsprofil steuern die Anzahl der DBSC_EVENTTYPE_INFO_MSG-Ereignisse, die während der Synchronisation generiert werden.
SYNCHRONIZE PROFILE SalesData VERBOSITY NORMAL; |
SYNCHRONIZE PROFILE SalesData MERGE 'Verbosity=BASIC,ROW_DATA' VERBOSITY NORMAL; |
TIMEOUT-Klausel Diese Klausel gibt an, wie lange (in Sekunden) der Datenbankserver warten soll, bis die Synchronisation abgeschlossen wird, bevor sie abgebrochen wird. Der Standardwert beträgt 240 Sekunden.
USER / IDENTIFIED BY-Klausel Verwenden Sie diese Klausel, um die Datenbankbenutzer-ID und das Kennwort anzugeben, die das dbmlsync-Dienstprogramm verwendet, um die Datenbank zu synchronisieren. Die angegebene Benutzer-ID muss über REMOTE DBA- oder DBA-Berechtigung verfügen. Standardmäßig verwendet die Synchronisation die Benutzer-ID für die Datenbankverbindung, die die SYNCHRONIZE-Anweisung ausgeführt hat.
START-Klausel Startet das im Servermodus ausgeführte dbmlsync-Dienstprogramm und lässt es laufen. Es wird keine Synchronisation durchgeführt. Wenn Sie mehr als eine Synchronisation innerhalb kurzer Zeit durchführen, können Sie die Performance verbessern, indem Sie den dbmlsync-Server mit dieser Klausel explizit starten, die Synchronisationen vornehmen und den dbmlsync-Server anschließend mit der STOP-Klausel explizit stoppen.
STOP-Klausel Stoppt einen dbmlsync-Server, der zuvor mit der START-Klausel gestartet wurde. Es wird keine Synchronisation durchgeführt.
Diese Anweisung kann nur verwendet werden, wenn der MobiLink-Client für SQL Anywhere einschließlich Dbmlsync C++-API installiert ist.
Der MobiLink-Client für SQL Anywhere steht nicht auf allen Plattformen zur Verfügung, auf denen der Datenbankserver möglicherweise
ausgeführt wird. Eine Liste der unterstützten Plattformen finden Sie unter http://www.sybase.com/detail?id=1061806.
Wenn die Synchronisation abgeschlossen ist, können Sie die Ergebnisse der Synchronisation in der gemeinsamen globalen temporären Tabelle synchronize_results und synchronize_parameters anzeigen. Die gemeinsamen globalen temporären Tabellen synchronize_results und synchronize_parameters speichern die Ergebnisse aller Synchronisationen, die seit dem Start des Datenbankservers mit der SYNCHRONIZE-Anweisung ausgeführt wurden. Die Tabellen synchronize_results und synchronize_parameters werden jedes Mal gekürzt, wenn der Datenbankserver heruntergefahren wird.
Die Tabelle synchronize_results enthält folgende Spalten:
Spaltenname | Datentyp | Beschreibung |
---|---|---|
row_id | UNSIGNED BIGINT | Der Primärschlüssel der Tabelle, anhand dem die Reihenfolge bestimmt wird, in der Zeilen in die Tabelle eingefügt werden. |
conn_id | UNSIGNED INT | Die Verbindungs-ID der Verbindung, die die SYNCHRONIZE-Anweisung ausführte, die diese Ereignis generiert hat. |
result_time | TIMESTAMP | Die Uhrzeit, zu der das Ereignis zur synchronize_results-Tabelle hinzugefügt wurde. |
result_type | CHAR(128) | Die Art des Ereignisses. |
Jedes Ereignis in der Tabelle synchronize_results hat 0 oder mehr Parameter zugeordnet, die zusätzliche Informationen über das Ereignis enthalten. Die Parameter werden in der Tabelle synchronize_parameters gespeichert, die folgende Spalten enthält:
Spaltenname | Datentyp | Beschreibung |
---|---|---|
row_id | UNSIGNED BIGINT | Ein Fremdschlüssel zur row_id-Spalte in der synchronize_results-Tabelle. Verwenden Sie diesen Wert, um zu jedem Parameter das zugehörige Ereignis zu finden. |
parm_id | UNSIGNED INT | Enthält die nummerische ID des Parameters. Bei Ereignissen mit mehr als einem Parameter verwenden Sie diesen Wert, um den benötigten Parameter zu finden. |
parm_message | LONG VARCHAR | Der mit dem Parameter verknüpfte Wert. |
Um Details früherer oder aktueller Synchronisationen anzuzeigen, können Sie die Systemprozedur "sp_get_last_synchronize_result" als Alternative zum direkten Abfragen der Tabellen "synchronize_results" und "synchronize_parameters" verwenden.
Alternativ können Sie auch die folgende Anweisung verwenden, um die Ergebnisse aller Synchronisationen anzuzeigen, die seit dem Start des Datenbankservers durchgeführt wurden.
SELECT * FROM synchronize_results sr KEY JOIN synchronize_parameters sp ORDER BY sr.row_id , sp.parm_id |
Sie können mithilfe der gemeinsam genutzten globalen temporären Tabellen synchronize_results und synchronize_parameters den Fortschritt einer Synchronisation auf einer Verbindung überwachen, die sich von der aktuellen Verbindung unterscheidet. So überwachen Sie den Fortschritt einer Synchronisation auf einer anderen Verbindung:
Führen Sie eine SELECT CONNECTION_PROPERTY-Anweisung aus, um die Verbindungs-ID der aktuellen Verbindung zu bestimmen.
Führen Sie eine SYNCHRONIZE-Anweisung, um die Synchronisation zu starten.
Verwenden Sie für separate Verbindungen die sp_get_last_synchronize_ results-Systemprozedur, um Ergebnisse mit der Verbindungs-ID, die sie zuvor ermittelt haben, abzurufen.
Um die Ergebnisse einer Synchronisation anzuzeigen, die auf einer bestimmten Verbindung abgeschlossen oder aktiv ist, können Sie die sp_get_last_synchronize_results-Systemprozedur verwenden.
Die SYNCHRONIZE-Anweisung ist ähnlich wie die SYNCHRONIZE-Anweisung von UltraLite. Die SYNCHRONIZE-Anweisung von SQL Anywhere startet jedoch zum Ausführen der Synchronisation das dbmlsync-Dienstprogramm im Servermodus. Die SYNCHRONIZE-Anweisung von UltraLite verwendet die UltraLite-Laufzeitbibliothek.
Der Datenbankserver fungiert als dbmlsync-API-Client und verwendet TCP/IP für die Kommunikation mit einem dbmlsync-Server. Standardmäßig erfolgt diese Kommunikation auf Port 4433. Verwenden Sie die PORT-Klausel, um einen anderen Port anzugeben.
Verwenden Sie die Anweisungen SYNCHRONIZE PROFILE und SYNCHRONIZE USING, um eine Synchronisation durchzuführen. Verwenden Sie die Anweisungen SYNCHRONIZE START und SYNCHRONIZE STOP, um einen dbmlsync-Server zu starten bzw. zu stoppen. Bei der Ausführung einer SYNCHRONIZE PROFILE- oder SYNCHRONIZE USING-Anweisung versucht der Datenbankserver, eine Verbindung mit einem dbmlsync-Server herzustellen, der bereits ausgeführt wird. Wenn kein bereits laufender dbmlsync-Server gefunden werden kann, wird ein dbmlsync-Server gestartet. Wenn die Synchronisation abgeschlossen ist, fährt der Datenbankserver den gestarteten dbmlsync-Server herunter. Wenn die Anweisung eine Verbindung mit einem bereits laufenden dbmlsync-Server hergestellt hat, wird der dbmlsync-Server nicht heruntergefahren. Wenn Sie mehrere Synchronisationen durchführen und nicht möchten, dass bei jeder Synchronisation der dbmlsync-Server gestartet und gestoppt wird, können Sie eine SYNCHRONIZE START-Anweisung ausführen, gefolgt von einer SYNCHRONIZE PROFILE- oder SYNCHRONIZE USING-Anweisung, und den Vorgang mit einer SYNCHRONIZE STOP-Anweisung beenden.
REMOTE DBA-Berechtigung oder DBA-Berechtigung
Keine
SQL/2008 Erweiterung des Herstellers.
Das folgende Beispiel zeigt die Syntax für das Synchronisieren eines Synchronisationsprofils namens Test1:
SYNCHRONIZE PROFILE Test1; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |