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

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Datenimport und -export » Datenbankmigration nach SQL Anywhere » Verwenden der Systemprozeduren sa_migrate

 

Migrieren einzelner Tabellen mit den Systemprozeduren für die Datenbankmigration

Sie können einzelne Tabellen mit den Systemprozeduren für die Datenbankmigration migrieren.

Voraussetzungen

Sie müssen die folgenden Systemprivilegien haben:

  • CREATE ANY TABLE

  • CREATE ANY INDEX

  • INSERT ANY TABLE

  • SELECT ANY TABLE

  • ALTER ANY TABLE

  • DROP ANY TABLE

Sie müssen bereits einen Fremdserver erstellt haben. Sie müssen bereits einen Benutzer haben, der Eigentümer der Tabellen in der Zieldatenbank ist.

Wenn Sie ein externes Login erstellen möchten, benötigen Sie das MANAGE ANY USER-Systemprivileg.

Kontext und Bemerkungen

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

 Aufgabe
  1. Erstellen Sie eine Zieldatenbak.

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

  3. (Optional) Erstellen Sie ein externes Login für die Verbindung zur entfernten Datenbank. Ein externes Login ist nur dann erforderlich, wenn der Benutzer für Ziel- und entfernte Datenbank unterschiedliche Kennwörter hat oder wenn Sie sich nicht mit der Benutzer-ID an der entfernten Datenbank anmelden möchten, die Sie für die Zieldatenbank verwenden.

  4. Führen Sie die Systemprozedur sa_migrate_create_remote_table_list aus. 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.

    Mit dieser Prozedur 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.

  5. Führen Sie die Systemprozedur sa_migrate_create_tables aus. 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 Proxy-Tabelle und eine Basistabelle für jede aufgelistete entfernte Tabelle. Diese Prozedur erstellt auch alle Primärschlüsselindizes für die migrierten Tabellen.

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

    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.

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

  7. Führen Sie die Systemprozedur sa_migrate_create_remote_fks_list aus. 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.

  8. Führen Sie die Systemprozedur sa_migrate_create_fks aus. Beispiel:

    CALL sa_migrate_create_fks( 'local_user1' );

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

  9. Zum Löschen der für Migrationszwecke erstellten Proxy-Tabellen führen Sie die sa_migrate_drop_proxy_tables-Systemprozedur aus. Beispiel:

    CALL sa_migrate_drop_proxy_tables( 'local_user1' );

Ergebnisse

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

 Siehe auch