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) » SQL Anywhere Server - SQL-Benutzerhandbuch » Ferndatenzugriff und Arbeit mit Massendaten » Daten importieren und exportieren » Datenbanken zu SQL Anywhere migrieren

 

Die Systemprozeduren sa_migrate verwenden

Verwenden Sie die Systemprozeduren sa_migrate, um entfernte Daten zu migrieren. Verwenden Sie die erweiterte Methode, um Tabellen oder Fremdschlüssel-Zuordnungen zu entfernen.

Alle Tabellen mit den Systemprozeduren sa_migrate migrieren

Die Angabe NULL für die Parameter Tabellenname und Eigentümername lässt alle Tabellen in der Datenbank migrieren, auch die Systemtabellen. Außerdem werden Tabellen, die den gleichen Namen haben, aber unterschiedlichen Eigentümern gehören, alle einem Eigentümer in der Zieldatenbank zugeordnet. Aus diesen Gründen sollten Sie Tabellen, die einem einzelnen Eigentümer zugeordnet sind, gleichzeitig migrieren.

♦  Alle Tabellen für einen entfernten Benutzer migrieren
  1. Erstellen Sie eine Ziel-Datenbank. Weitere Hinweise finden Sie unter Datenbank erstellen.

  2. Verbinden Sie sich aus Interactive SQL mit der Zieldatenbank.

  3. Erstellen Sie einen Fremdserver, um sich mit der entfernten Datenbank zu verbinden. Weitere Hinweise finden Sie unter Fremdserver mit der Anweisung CREATE SERVER erstellen.

  4. Erstellen Sie ein externes Login für die Verbindung zur entfernten Datenbank. Dies ist nur dann notwendig, wenn der Benutzer für die Ziel- und entfernte Datenbank unterschiedliche Kennwörter hat, oder wenn Sie sich nicht mit der Benutzer-ID an der entfernten Datenbank anmelden wollen, die Sie für die Anmeldung bei der Zieldatenbank verwenden. Weitere Hinweise finden Sie unter Externe Logins erstellen.

  5. Erstellen Sie einen lokalen Benutzer, dem die migrierten Tabellen in der Zieldatenbank gehören sollen. Weitere Hinweise finden Sie unter Neue Benutzer einrichten.

  6. Führen Sie im Fensterausschnitt SQL-Anweisungen die Systemprozedur "sa_migrate" aus. Zum Beispiel:

    CALL sa_migrate( 'local_user1', 'rmt_server1', NULL, 'remote_user1', NULL, 1, 1, 1 );

    Diese Prozedur ruft wiederum einige andere Prozeduren auf und migriert alle die dem Benutzer remote_user1 gehörenden entfernten Tabellen gemäß den angegebenen Kriterien.

Wenn Sie nicht möchten, dass alle migrierten Tabellen dem selben Benutzer der Zieldatenbank gehören, müssen Sie die Prozedur sa_migrate für jeden einzelnen Benutzer der Zieldatenbank unter Angabe der Argumente lokaler_Tabelleneigentümer und Eigentümername wiederholen.

Weitere Hinweise finden Sie unter sa_migrate-Systemprozedur.

Einzelne Tabellen mit den Systemprozeduren sa_migrate migrieren

Geben Sie für die Parameter Tabellenname und Eigentümername nicht NULL an. Das hätte zur Folge, dass alle Tabellen, inklusive Systemtabellen, in die Datenbank migriert würden. Des weiteren werden Tabellen, die den gleichen Namen haben, aber unterschiedlichen Eigentümern gehören, alle einem Eigentümer in der Zieldatenbank zugeordnet. Es wird empfohlen, dass Sie nur einem Eigentümer zugeordnete Tabellen auf einmal migrieren.

♦  So importieren Sie entfernte Tabellen (mit Änderungen)
  1. Erstellen Sie eine Ziel-Datenbank. Weitere Hinweise finden Sie unter Datenbank erstellen.

  2. Verbinden Sie sich aus Interactive SQL mit der Zieldatenbank.

  3. Erstellen Sie einen Fremdserver, um sich mit der entfernten Datenbank zu verbinden. Weitere Hinweise finden Sie unter Fremdserver mit der Anweisung CREATE SERVER erstellen.

  4. Erstellen Sie ein externes Login für die Verbindung zur entfernten Datenbank. Dies ist nur dann notwendig, wenn der Benutzer für die Ziel- und entfernte Datenbank unterschiedliche Kennwörter hat, oder wenn Sie sich nicht mit der Benutzer-ID an der entfernten Datenbank anmelden wollen, die Sie für die Anmeldung bei der Zieldatenbank verwenden. Weitere Hinweise finden Sie unter Externe Logins erstellen.

  5. Erstellen Sie einen lokalen Benutzer, dem die migrierten Tabellen in der Zieldatenbank gehören sollen. Weitere Hinweise finden Sie unter Neue Benutzer einrichten.

  6. Führen Sie die Systemprozedur sa_migrate_create_remote_table_list aus. Zum Beispiel:

    CALL sa_migrate_create_remote_table_list( 'rmt_server1',
         NULL, 'remote_user1', 'mydb' );

    Für Adaptive Server Enterprise und Microsoft SQL Server Datenbanken müssen Sie einen Datenbanknamen angeben.

    Dadurch wird in die Tabelle dbo.migrate_remote_table_list eine Liste der zu migrierenden entfernten Tabellen eingetragen. Sie können Zeilen aus dieser Tabelle löschen und damit die entsprechenden entfernten Tabellen von der Migration ausschließen.

    Weitere Hinweise finden Sie unter sa_migrate_create_remote_table_list-Systemprozedur.

  7. Führen Sie die Systemprozedur sa_migrate_create_tables aus. Zum Beispiel:

    CALL sa_migrate_create_tables( 'local_user1' );

    Diese Prozedur nimmt die Liste der entfernten Tabellen aus der dbo.migrate_remote_table_list und erstellt eine Proxytabelle und eine Basistabelle für jede aufgelistete entfernte Tabelle. Diese Prozedur erstellt auch alle Primärschlüsselindizes für die migrierten Tabellen.

    Weitere Hinweise finden Sie unter sa_migrate_create_tables-Systemprozedur.

  8. Für eine Migration der Daten der entfernten Tabellen in die Basistabellen der Zieldatenbank müssen Sie die Systemprozedur sa_migrate_data ausführen. Zum Beispiel:

    Führen Sie die folgende Anweisung aus:

    CALL sa_migrate_data( 'local_user1' );

    Diese Prozedur migriert die Daten aus jeder entfernten Tabelle in die Basistabelle, die von der Prozedur sa_migrate_create_tables erstellt wurde.

    Weitere Hinweise finden Sie unter sa_migrate_data-Systemprozedur.

    Sollten Sie die Migration der Fremdschlüssel von der entfernten Datenbank nicht benötigen, können Sie mit Schritt 10 fortfahren.

  9. Führen Sie die Systemprozedur sa_migrate_create_remote_fks_list aus. Zum Beispiel:

    CALL sa_migrate_create_remote_fks_list( 'rmt_server1' );

    Diese Prozedur füllt die Tabelle dbo.migrate_remote_fks_list mit der Liste der Fremdschlüssel, die den in dbo.migrate_remote_table_list aufgelisteten entfernten Tabellen zugeordnet sind.

    Sie können Fremdschlüsselzuordnungen entfernen, die in den lokalen Basistabellen nicht neu erstellt werden sollen.

    Weitere Hinweise finden Sie unter sa_migrate_create_remote_fks_list-Systemprozedur.

  10. Führen Sie die Systemprozedur sa_migrate_create_fks aus. Zum Beispiel:

    CALL sa_migrate_create_fks( 'local_user1' );

    Diese Prozedur erstellt die in dbo.migrate_remote_fks_list definierten Fremdschlüsselzuordnungen in den Basistabellen.

    Weitere Hinweise finden Sie unter sa_migrate_create_fks-Systemprozedur.

  11. Zum Löschen der für Migrationszwecke erstellten Proxytabellen führen Sie die Systemprozedur sa_migrate_drop_proxy_tables aus. Zum Beispiel:

    CALL sa_migrate_drop_proxy_tables( 'local_user1' );

    Diese Prozedur löscht alle Proxytabellen, die für die Migrationsprozedur erstellt wurden, und schließt dann den Migrationsprozess ab.

    Weitere Hinweise finden Sie unter sa_migrate_drop_proxy_tables-Systemprozedur.