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.
Erstellen Sie eine Zieldatenbak.
Verbinden Sie sich aus Interactive SQL mit der Zieldatenbank.
(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.
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.
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.
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.
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.
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.
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' ); |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |