Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Erste Orientierung » Praktische Einführungen in MobiLink » Praktische Einführung: MobiLink mit einer konsolidierten Adaptive Server Enterprise-Datenbank verwenden

 

Lektion 2: Die konsolidierte Datenbank vorbereiten

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 [external link] 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.

Größe der konsolidierten Datenbank erhöhen

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.

♦  So erhöhen Sie die Größe der konsolidierten Datenbank
  1. 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.

  2. 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
  3. 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
Eindeutige Primärschlüssel hinzufügen

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.

♦  So fügen Sie der konsolidierten Datenbank eindeutige Primärschlüssel hinzu
  1. 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.

  2. 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'
  3. 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
  4. 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.

Hinweis

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.

Eindeutige Primärschlüssel in allen Datenbanken

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

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.