Verwenden Sie diese Anweisung für die Synchronisation einer SQL Anywhere-Datenbank mit einem MobiLink-Server. Die Synchronisation wird entsprechend der Parameter im Synchronisationsprofil konfiguriert, oder die Parameter können in der Anweisung selbst angegeben werden.
SYNCHRONIZE { PROFILE Synchronisationsprofilname [ MERGE Synchronisationsoption [;... ] ] | USING Synchronisationsoption [;... ] | START | STOP }
[ PORT Portnummer ] [ VERBOSITY { LOW | NORMAL | HIGH } ] [ TIMEOUT Zeitablauf ] [ USER Benutzername IDENTIFIED BY Kennwort ]
Synchronisationsoption :
Synchronisationsoptionsname = Synchronisationsoptionswert
Synchronisationsoptionsname : Zeichenfolge
Synchronisationsoptionswert : Zeichenfolge
Synchronisationsprofilname Der Name des Synchronisationsprofils.
MERGE-Klausel Verwenden Sie diese Klausel, um Synchronisationsprofiloptionen hinzuzufügen oder zu überschreiben.
USING-Klausel Verwenden Sie diese Klausel, wenn Sie Synchronisationsprofiloptionen ohne Referenzierung eines Synchronisationsprofils angeben möchten.
Synchronisationsoption
Eine Zeichenfolge mit mindestens einem Paar "Synchronisationsprofiloption=Wert", getrennt durch Semikola. Zum Beispiel
'Option1=Wert1;Option2=Wert2'
.
Synchronisationsoptionsname Der Name der Synchronisationsprofiloption
Synchronisationsoptionswert Der Wert der Synchronisationsprofiloption.
PORT-Klausel Dieser optionale INTEGER-Parameter gibt die Portnummer an, die das Dienstprogramm dbmlsync im Servermodus verwendet. Standardwert ist "4433".
VERBOSITY-Klausel Dieser optionale Prameter gibt den Umfang der Informationen an, die der gemeinsam genutzten globalen temporären Tabelle synchronize_results 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. Eine Beschreibung der Optionen finden Sie unter DBSC_Event-Struktur.
Option | Rückgabe |
---|---|
LOW |
|
NORMAL (Standard) |
|
HIGH |
|
Der optionale VERBOSITY-Parameter ändert nicht die Ausführlichkeitseinstellungen Ihres Synchronisationsprofils. Bei Verwendung mit der SYNCHRONIZE-Anweisung gibt der VERBOSITY-Parameter den Umfang der Informationen an, die der gemeinsam genutzten globalen temporären Tabelle synchronize_results hinzugefügt werden. Die Ausführlichkeitseinstellungen Ihres Synchronisationsprofils definieren die Ausführlichkeitsstufe des DBSC_EVENTTYPE_INFO_MSG-Werts, der dem dbmlsync-Log hinzugefügt wird. Wenn Sie das Synchronisationsprofil ändern oder mithilfe der MERGE-Option die Ausführlichkeit des Synchronisationsprofils von BASIC zu BASIC,ROW_DATA ändern, erhöht sich die Anzahl der Zeilen, die im Transaktionslog in der gemeinsam genutzten globalen temporären Tabelle synchronize_results platziert werden. Zum Beispiel werden bei den folgenden beiden Anweisungen unterschiedliche Daten zur gemeinsam genutzten globalen temporären Tabelle synchronize_results hinzugefügt:
SYNCHRONIZE PROFILE SalesData VERBOSITY NORMAL; |
SYNCHRONIZE PROFILE SalesData MERGE 'Verbosity='BASIC,ROW_DATA' VERBOSITY NORMAL; |
TIMEOUT-Klausel Dieser optionale INTEGER-Parameter gibt an, wie lange, in Sekunden, der Datenbankserver auf den Abschluss der Synchronisation warten soll, bevor versucht wird, die Synchronisation abzubrechen. Der Standardwert beträgt 240 Sekunden.
USER / IDENTIFIED BY-Klausel Sie können mit diesem optionalen Parameter Benutzer und Kennwort angeben, die sich vom aktuellen Benutzerprofil unterscheiden. Wenn der Datenbankserver das dbmlsync-Dienstprogramm im Servermodus startet, versucht das dbmlsync-Dienstprogramm standardmäßig, eine Verbindung zum Datenbankserver herstellen, und zwar unter Verwendung des aktuellen Benutzernamens für die Verbindung, die die Anweisung ausgeführt hat. Ein Benutzer muss über REMOTE DBA oder DBA-Berechtigung verfügen, damit das dbmlsync-Dienstprogramm erfolgreich eine Verbindung mit dem Datenbankserver herstellen kann.
Wenn die Synchronisation abgeschlossen ist, können Sie die Ergebnisse der Synchronisation in der gemeinsamen globalen temporären Tabelle synchronize_results anzeigen. Die gemeinsame globale temporäre Tabelle synchronize_results speichert die Ergebnisse aller Synchronisationen, die seit dem Start des Datenbankservers mit der SYNCHRONIZE-Anweisung ausgeführt wurden. Die gemeinsame globale temporäre Tabelle synchronize_results wird jedes Mal gekürzt, wenn der Datenbankserver heruntergefahren wird.
Sie können mithilfe der gemeinsam genutzten globalen temporären Tabelle synchronize_results 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 mit der Verbindungs-ID aus, die von der SELECT CONNECTION_PROPERTY-Anweisung zurückgegeben wurde.
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 versucht ein dbmlsync-Server, Port 4433 für das Warten auf eingehende Verbindungen zu öffnen. Verwenden Sie die PORT-Klausel, um einen anderen Listening-Port anzugeben.
Verwenden Sie die Anweisungen SYNCHRONIZE PROFILE und SYNCHRONIZE USING, um eine Synchronisation durchzuführen. Verwenden Sie SYNCHRONIZE START und SYNCHRONIZE STOP zum Starten bzw. Stoppen eines dbmlsync-Servers. 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. Alternativ dazu können Sie eine SYNCHRONIZE START-Anweisung ausführen, wenn Ihre Anwendung gestartet wird, und eine SYNCHRONIZE STOP-Anweisung, wenn Ihre Anwendung beendet wird.
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 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |