Bei der Verbindung mit der Datenbank pubs2 verwendet diese praktische Einführung das sa-Standardkonto. Wenn Adaptive Server Enterprise installiert ist, hat das sa-Konto ein Nullkennwort. In dieser praktischen Einführung wird davon ausgegangen, dass Sie das Nullkennwort durch ein gültiges
Kennwort ersetzt haben. Weitere Hinweise zur Änderung des Nullkennworts in Adaptive Server Enterprise finden Sie unter http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.sag1/html/sag1/sag1615.htm.
In dieser Lektion erhöhen Sie die Größe der konsolidierten Datenbank für die MobiLink-Synchronisation und erstellen eindeutige Primärschlüssel.
MobiLink muss der Datenbank pubs2 Systemtabellen und andere Objekte für die Synchronisation hinzufügen. Hierzu muss die Größe der Datenbank pubs2 erhöht werden.
Stellen Sie mithilfe des Dienstprogramms isql in Adaptive Server Enterprise als sa eine Verbindung mit der Datenbank pubs2 her. Führen Sie an einer Eingabeaufforderung folgenden Befehl in einer einzigen Zeile aus:
isql -U sa -P Ihr Kennwort für das sa-Konto -D pubs2 |
Wenn Sie entfernt auf Adaptive Server Enterprise zugreifen, geben Sie den Servernamen mit dem Parameter -S an.
Um die erforderliche Berechtigung für die Erhöhung der Größe einer Datenbank zu haben, müssen Sie auf die Master-Datenbank zugreifen. Führen Sie folgenden Befehl in isql aus:
use master |
In Adaptive Server Enterprise wird eine Datenbank auf einer Festplatte oder einem Teil einer Festplatte gespeichert. Führen Sie zur Erweiterung der Datenbank pubs2 folgenden Befehl aus (Sie müssen den Plattenspeicher angeben, auf dem pubs2 gespeichert ist):
ALTER DATABASE pubs2 ON Plattenspeichername = 33 |
In einem Synchronisationssystem ist der Primärschlüssel einer Tabelle die einzige Möglichkeit, eine Zeile in einer anderen Datenbank eindeutig zu identifizieren, und die einzige Möglichkeit, Konflikte zu erkennen. Jede für die mobile Verwendung eingerichtete Tabelle muss einen Primärschlüssel haben. Der Primärschlüssel darf nie geändert werden. Sie müssen außerdem sicherstellen, dass ein in einer Datenbank eingefügter Primärschlüsselwert in keiner weiteren Datenbank eingefügt wird.
Es gibt mehrere Möglichkeiten, eindeutige Primärschlüssel zu generieren. Der Einfachheit halber wird in dieser praktischen Einführung die Methode der zusammengesetzten Primärschlüssel verwendet. Diese Methode erstellt Primärschlüssel mit mehreren Spalten, die in den konsolidierten und entfernten Datenbanken eindeutig sind.
Stellen Sie mithilfe des Dienstprogramms isql in Adaptive Server Enterprise als sa eine Verbindung mit der Datenbank pubs2 her. Führen Sie an einer Eingabeaufforderung folgenden Befehl in einer einzigen Zeile aus:
isql -U sa -P Ihr Kennwort für das sa-Konto -D pubs2 |
Wenn Sie entfernt auf Adaptive Server Enterprise zugreifen, geben Sie den Servernamen mit dem Parameter -S an.
Die folgenden Zeilen sind nicht eindeutig und basieren auf dem zusammengesetzten Primärschlüssel, der in Schritt 5 für die Tabelle salesdetail erstellt wurde. Löschen Sie die Zeilen der Einfachheit halber mit folgenden Befehlen:
DELETE FROM salesdetail WHERE stor_id = '5023' AND ord_num = 'NF-123-ADS-642-9G3' AND title_id = 'PC8888' DELETE FROM salesdetail WHERE stor_id = '5023' AND ord_num = 'ZS-645-CAT-415-1B2' AND title_id = 'BU2075' |
Die folgenden Indizes beeinträchtigen die Erstellung von Primärschlüsseln in Schritt 5. Führen Sie folgende Befehle aus, um die Indizes zu löschen:
DROP INDEX authors.auidind DROP INDEX titleauthor.taind DROP INDEX titles.titleidind DROP INDEX sales.salesind |
Fügen Sie eindeutige Primärschlüssel hinzu.
ALTER TABLE au_pix ADD PRIMARY KEY (au_id) ALTER TABLE authors ADD PRIMARY KEY (au_id) ALTER TABLE titleauthor ADD PRIMARY KEY (au_id, title_id) ALTER TABLE titles ADD PRIMARY KEY (title_id) ALTER TABLE discounts ADD PRIMARY KEY (discounttype) ALTER TABLE stores ADD PRIMARY KEY (stor_id) ALTER TABLE sales ADD PRIMARY KEY (stor_id, ord_num) ALTER TABLE salesdetail ADD PRIMARY KEY (stor_id, ord_num, title_id) |
Nachdem Sie diese Befehle ausgeführt haben, sollte der MobiLink-Server keine Probleme haben, eine Verbindung mit der konsolidierten Datenbank herzustellen und diese für die Synchronisation mit einer Reihe von entfernten Datenbanken einzurichten.
Es ist möglich, Daten mit konsolidierten Datenbanken, die keine Primärschlüssel haben, zu synchronisieren. Sie müssen jedoch eigene Synchronisationsereignisse erstellen, die in Schattentabellen Aktionen ausführen, mit denen Zeilen in anderen Tabellen eindeutig identifiziert werden.
In Lektion 4 wird anhand des konsolidierten Schemas das entfernte Schema erstellt. Das bedeutet, dass das entfernte Schema dieselben Primärschlüssel enthält wie das konsolidierte Schema.
Spalten wurden gezielt ausgewählt, um eindeutige Primärschlüssel für alle Datenbanken sicherzustellen. Für die Tabelle sales besteht der Primärschlüssel aus den Spalten stor_id und ord_num. Jeder in die entfernte Tabelle sales eingegebene Wert muss eine eindeutige Bestellnummer haben (der stor_id-Wert ist immer gleich). Dadurch wird die Eindeutigkeit in jeder entfernten sales-Tabelle sichergestellt. Der Primärschlüssel in der konsolidierten sales-Tabelle verhindert Konflikte, wenn mehrere Buchhandlungen gleichzeitig Daten hochladen. Jeder Upload einer Buchhandlung ist von Uploads anderer Buchhandlungen eindeutig zu unterscheiden, da ihre stor_id-Werte unterschiedlich sind.
Für die Tabelle salesdetail besteht der Primärschlüssel aus den Spalten stor_id, ord_num und title_id. Eine Bestellung kann mehrere Buchtitel enthalten. Zeilen der entfernten sales-Tabellen können dieselben Werte für stor_id und ord_num enthalten, doch sie müssen unterschiedliche Werte für title_id haben. Dadurch wird die Eindeutigkeit in jeder entfernten salesdetail-Tabelle sichergestellt. Ähnlich wie bei der sales-Tabelle ist jeder Upload einer Buchhandlung in die konsolidierte Datenbank aufgrund der unterschiedlichen stor_id eindeutig.
Weitere Hinweise zu Adaptive Server Enterprise finden Sie unter Konsolidierte Adaptive Server Enterprise-Datenbank.
Weitere Hinweise zu anderen Möglichkeiten, eindeutige Primärschlüssel zu erstellen, finden Sie unter Eindeutige Primärschlüssel aufrechterhalten.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |