Tutorial: Onlinemigration von Oracle zu Azure Database for PostgreSQL mit DMS (Vorschauversion)Tutorial: Migrate Oracle to Azure Database for PostgreSQL online using DMS (Preview)

Mit Azure Database Migration Service können Sie die Datenbanken von lokal oder auf virtuellen Computern gehosteten Oracle-Datenbanken mit minimaler Downtime zu Azure Database for PostgreSQL migrieren.You can use Azure Database Migration Service to migrate the databases from Oracle databases hosted on-premises or on virtual machines to Azure Database for PostgreSQL with minimal downtime. Das heißt, dass Sie die Migration mit minimaler Downtime für die Anwendung ausführen können.In other words, you can complete the migration with minimal downtime to the application. In diesem Tutorial migrieren Sie die HR-Beispieldatenbank von einer lokal oder auf virtuellen Computern gehosteten Oracle 11g-Instanz zu Azure Database for PostgreSQL. Zu diesem Zweck verwenden Sie die Onlinemigrationsaktivität in Azure Database Migration Service.In this tutorial, you migrate the HR sample database from an on-premises or virtual machine instance of Oracle 11g to Azure Database for PostgreSQL by using the online migration activity in Azure Database Migration Service.

In diesem Tutorial lernen Sie Folgendes:In this tutorial, you learn how to:

  • Bewerten des Migrationsaufwands mit dem Tool ora2pgAssess the migration effort using the ora2pg tool.
  • Migrieren des Beispielschemas mit dem Tool ora2pgMigrate the sample schema using the ora2pg tool.
  • Erstellen einer Instanz von Azure Database Migration ServiceCreate an instance of Azure Database Migration Service.
  • Erstellen eines Migrationsprojekts mithilfe von Azure Database Migration ServiceCreate a migration project by using Azure Database Migration Service.
  • Ausführen der MigrationRun the migration.
  • Überwachen der MigrationMonitor the migration.

Hinweis

Die Verwendung von Azure Database Migration Service zum Ausführen einer Onlinemigration erfordert das Erstellen einer Instanz auf der Grundlage des Premium-Tarifs.Using Azure Database Migration Service to perform an online migration requires creating an instance based on the Premium pricing tier.

Wichtig

Für eine optimale Migration empfiehlt Microsoft die Erstellung einer Azure Database Migration Service-Instanz in derselben Azure-Region, in der sich auch die Zieldatenbank befindet.For an optimal migration experience, Microsoft recommends creating an instance of Azure Database Migration Service in the same Azure region as the target database. Die Verschiebung von Daten zwischen Regionen oder Geografien kann den Migrationsvorgang verlangsamen und Fehler verursachen.Moving data across regions or geographies can slow down the migration process and introduce errors.

Tipp

Beim Migrieren von Datenbanken zu Azure mit dem Azure Database Migration Service können Sie eine Migration vom Typ offline oder online durchführen.When you migrate databases to Azure by using Azure Database Migration Service, you can do an offline or an online migration. Bei einer Offlinemigration beginnt der Ausfall der Anwendung, wenn die Migration gestartet wird.With an offline migration, application downtime starts when the migration starts. Bei einer Onlinemigration ist der Ausfall auf die Dauer der Umstellung am Ende der Migration beschränkt.With an online migration, downtime is limited to the time to cut over at the end of migration. Wir raten Ihnen, eine Offlinemigration zu testen, um zu ermitteln, ob die Ausfallzeit akzeptabel ist. Wenn nicht, sollten Sie eine Onlinemigration durchführen.We suggest that you test an offline migration to determine whether the downtime is acceptable; if not, do an online migration.

In diesem Artikel wird beschrieben, wie Sie eine Onlinemigration von Oracle zu Azure Database for PostgreSQL ausführen.This article describes how to perform an online migration from Oracle to Azure Database for PostgreSQL.

VoraussetzungenPrerequisites

Für dieses Tutorial benötigen Sie Folgendes:To complete this tutorial, you need to:

  • Sie müssen Oracle Database 11g Release 2 (Standard Edition, Standard Edition One oder Enterprise Edition) herunterladen und installieren.Download and install Oracle 11g Release 2 (Standard Edition, Standard Edition One, or Enterprise Edition).

  • Laden Sie die HR-Beispieldatenbank hier herunter.Download the sample HR database from here.

  • Laden Sie ora2pg herunter, und installieren Sie das Tool unter Windows oder unter Linux.Download and install ora2pg on either Windows or Linux.

  • Erstellen einer Instanz in Azure Database for PostgreSQL.Create an instance in Azure Database for PostgreSQL.

  • Stellen Sie eine Verbindung mit der Instanz her, und erstellen Sie eine Datenbank gemäß den Anweisungen in diesem Dokument.Connect to the instance and create a database using the instruction in this document.

  • Erstellen Sie ein virtuelles Azure-Netzwerk (VNet) für Azure Database Migration Service, indem Sie das Azure Resource Manager-Bereitstellungsmodell verwenden, das über ExpressRoute oder VPN Site-to-Site-Konnektivität für Ihre lokalen Quellserver bereitstellt.Create an Azure Virtual Network (VNet) for Azure Database Migration Service by using the Azure Resource Manager deployment model, which provides site-to-site connectivity to your on-premises source servers by using either ExpressRoute or VPN. Weitere Informationen zum Erstellen eines VNET finden Sie in der Dokumentation zu Virtual Network und insbesondere in den Schnellstartartikeln mit Schritt-für-Schritt-Anleitungen.For more information about creating a VNet, see the Virtual Network Documentation, and especially the quickstart articles with step-by-step details.

    Hinweis

    Fügen Sie bei Verwendung von ExpressRoute mit Netzwerkpeering zu Microsoft während des VNet-Setups die folgenden Dienstendpunkte zu dem Subnetz hinzu, in dem der Dienst bereitgestellt werden soll:During VNet setup, if you use ExpressRoute with network peering to Microsoft, add the following service endpoints to the subnet in which the service will be provisioned:

    • Zieldatenbankendpunkt (z. B. SQL-Endpunkt, Cosmos DB-Endpunkt usw.)Target database endpoint (for example, SQL endpoint, Cosmos DB endpoint, and so on)
    • SpeicherendpunktStorage endpoint
    • Service Bus-EndpunktService bus endpoint

    Diese Konfiguration ist erforderlich, weil Azure Database Migration Service über keine Internetverbindung verfügt.This configuration is necessary because Azure Database Migration Service lacks internet connectivity.

  • Stellen Sie sicher, dass die für Ihr VNet geltenden Regeln für Netzwerksicherheitsgruppen (NSG) die folgenden Ports für eingehende Kommunikation in Azure Database Migration Service nicht blockieren: 443, 53, 9354, 445, 12000.Ensure that your VNet Network Security Group (NSG) rules don't block the following inbound communication ports to Azure Database Migration Service: 443, 53, 9354, 445, 12000. Ausführlichere Informationen zur NSG-Datenverkehrsfilterung in einem Azure-VNet finden Sie im Artikel Filtern des Netzwerkdatenverkehrs mit Netzwerksicherheitsgruppen.For more detail on Azure VNet NSG traffic filtering, see the article Filter network traffic with network security groups.

  • Konfigurieren Sie Ihre Windows-Firewall für Datenbank-Engine-Zugriff.Configure your Windows Firewall for database engine access.

  • Öffnen Sie Ihre Windows-Firewall, damit Azure Database Migration Service auf den Oracle-Quellserver zugreifen kann (standardmäßig TCP-Port 1521).Open your Windows firewall to allow Azure Database Migration Service to access the source Oracle server, which by default is TCP port 1521.

  • Wenn Sie eine Firewallappliance vor Ihren Quelldatenbanken verwenden, müssen Sie möglicherweise Firewallregeln hinzufügen, um Azure Database Migration Service den Zugriff auf die Quelldatenbanken für die Migration zu ermöglichen.When using a firewall appliance in front of your source database(s), you may need to add firewall rules to allow Azure Database Migration Service to access the source database(s) for migration.

  • Erstellen Sie für Azure Database for PostgreSQL eine Firewallregel auf Serverebene, um Azure Database Migration Service den Zugriff auf die Zieldatenbanken zu ermöglichen.Create a server-level firewall rule for Azure Database for PostgreSQL to allow Azure Database Migration Service access to the target databases. Geben Sie den Subnetzbereich des für Azure Database Migration Service verwendeten VNet an.Provide the subnet range of the VNet used for Azure Database Migration Service.

  • Aktivieren Sie den Zugriff auf die Oracle-Quelldatenbanken.Enable access to the source Oracle databases.

    Hinweis

    Damit ein Benutzer eine Verbindung mit der Oracle-Quelle herstellen kann, muss er über die DBA-Rolle verfügen.The DBA role is required for a user to connect to the Oracle source.

    • Für die inkrementelle Synchronisierung in Azure Database Migration Service sind Archive Redo Logs erforderlich, um Datenänderungen zu erfassen.Archive Redo Logs is required for incremental sync in Azure Database Migration Service to capture data change. Führen Sie zum Konfigurieren der Oracle-Quelle die folgenden Schritte aus:Follow these steps to configure the Oracle source:

      • Melden Sie sich mit SYSDBA Berechtigungen an, indem Sie den folgenden Befehl ausführen:Sign in using SYSDBA privilege by running the following command:

        sqlplus (user)/(password) as sysdba
        
      • Fahren Sie die Datenbankinstanz herunter, indem Sie den folgenden Befehl ausführen.Shut down the database instance by running the following command.

        SHUTDOWN IMMEDIATE;
        

        Warten Sie auf die Bestätigung 'ORACLE instance shut down'.Wait for the confirmation 'ORACLE instance shut down'.

      • Starten Sie die neue Instanz, und stellen Sie die Datenbank bereit (ohne sie jedoch zu öffnen), um die Archivierung zu aktivieren oder zu deaktivieren, indem Sie den folgenden Befehl ausführen:Start the new instance and mount (but don't open) the database to enable or disable archiving bu running the following command:

        STARTUP MOUNT;
        

        Die Datenbank muss bereitgestellt werden. Warten Sie auf Bestätigung, dass die Oracle-Instanz gestartet wurde („Oracle instance started“).The database must be mounted; wait for confirmation 'Oracle instance started'.

      • Ändern Sie den Datenbankarchivierungsmodus, indem Sie den folgenden Befehl ausführen:Change the database archiving mode by running the following command:

        ALTER DATABASE ARCHIVELOG;
        
      • Öffnen Sie die Datenbank für normale Vorgänge, indem Sie den folgenden Befehl ausführen:Open the database for normal operations by running the following command:

        ALTER DATABASE OPEN;
        

        Sie müssen möglicherweise einen Neustart ausführen, damit die ARC-Datei angezeigt wird.You may need to restart for the ARC file to show up.

      • Führen Sie zur Überprüfung den folgenden Befehl aus:To verify, run the following command:

        SELECT log_mode FROM v$database;
        

        Sie sollten die Antwort 'ARCHIVELOG' erhalten.You should receive a response 'ARCHIVELOG'. Wenn die Antwort 'NOARCHIVELOG' lautet, wurde die Anforderung nicht erfüllt.If the response is 'NOARCHIVELOG', then the requirement isn't met.

    • Aktivieren Sie eine zusätzliche Protokollierung für die Replikation mit einer der folgenden Optionen.Enable supplemental logging for replication using one of the following options.

      • Option 1:Option 1. Ändern Sie die zusätzliche Protokollierung auf Datenbankebene, um alle Tabellen mit Primärschlüssel und eindeutigem Index abzudecken.Change the database level supplemental logging to cover all the tables with PK and unique index. Die Erkennungsabfrage gibt 'IMPLICIT' zurück.The detection query will return 'IMPLICIT'.

        ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE) COLUMNS;
        

        Ändern Sie die zusätzliche Protokollierung auf Tabellenebene.Change the table level supplemental logging. Führen Sie den Befehl nur für Tabellen aus, die eine Datenbearbeitung aufweisen und nicht über Primärschlüssel oder eindeutige Indizes verfügen.Run only for tables that have data manipulation and don't have PKs or unique indexes.

        ALTER TABLE [TABLENAME] ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
        
      • Option 2:Option 2. Ändern Sie die zusätzliche Protokollierung auf Datenbankebene, um alle Tabellen abzudecken. Die Erkennungsabfrage gibt dann 'YES' zurück.Change the database level supplemental logging to cover all the tables, and the detection query returns 'YES'.

        ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
        

        Ändern Sie die zusätzliche Protokollierung auf Tabellenebene.Change the table level supplemental logging. Folgen Sie der nachstehenden Logik, um für jede Tabelle nur eine Anweisung auszuführen.Follow the logic below to run only one statement for every table.

        Wenn die Tabelle über einen Primärschlüssel verfügt, führen Sie den folgenden Befehl aus:If the table has a primary key:

        ALTER TABLE xxx ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
        

        Wenn die Tabelle über einen eindeutigen Index verfügt, führen Sie den folgenden Befehl aus:If the table has a unique index:

        ALTER TABLE xxx ADD SUPPLEMENTAL LOG GROUP (first unique index columns) ALWAYS;
        

        Führen Sie andernfalls den folgenden Befehl aus:Otherwise, run the following command:

        ALTER TABLE xxx ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
        

      Führen Sie zur Überprüfung den folgenden Befehl aus:To verify, run the following command:

      SELECT supplemental_log_data_min FROM v$database;
      

      Sie sollten die Antwort 'YES' erhalten.You should receive a response 'YES'.

Wichtig

Für die öffentliche Vorschauversion dieses Szenarios unterstützt Azure Database Migration Service die Oracle-Version 10g oder 11g.For the public preview release of this scenario, Azure Database Migration Service supports Oracle version 10g or 11g. Kunden, die Oracle Database 12c oder eine höhere Version ausführen, müssen beachten, dass das minimale Authentifizierungsprotokoll, das für die Verbindung des ODBC-Treibers mit Oracle zulässig ist, Version 8 sein muss.Customers running Oracle version 12c or later should note that the minimum authentication protocol allowed for ODBC driver to connect to Oracle must be 8. Bei einer Oracle-Quelle der Version 12c (oder höher) müssen Sie das Authentifizierungsprotokoll wie folgt konfigurieren:For an Oracle source that is version 12c or later, you must configure the authentication protocol as follows:

  • Aktualisieren Sie die Datei „sqlnet.ora“:Update SQLNET.ORA:

    SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
    SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
    
  • Starten Sie den Computer neu, damit die neuen Einstellungen wirksam werden.Restart your computer for the new settings to take effect.

  • Ändern Sie das Kennwort für vorhandene Benutzer:Change the password for existing users:

    ALTER USER system IDENTIFIED BY {pswd}
    

    Weitere Informationen finden Sie hier.For more information, see the page here.

Denken Sie daran, dass sich die Änderung des Authentifizierungsprotokolls auf die Clientauthentifizierung auswirken kann.Finally, remember that changing the authentication protocol may impact client authentication.

Bewerten des Aufwands für eine Migration von Oracle zu Azure Database for PostgreSQLAssess the effort for an Oracle to Azure Database for PostgreSQL migration

Zum Bewerten des erforderlichen Aufwands für die Migration von Oracle zu Azure Database for PostgreSQL empfehlen wir die Verwendung von ora2pg.We recommend using ora2pg to assess the effort required to migrate from Oracle to Azure Database for PostgreSQL. Verwenden Sie die Anweisung ora2pg -t SHOW_REPORT, um einen Bericht zu erstellen, in dem alle Oracle-Objekte, die geschätzten Migrationskosten (in Entwicklertagen) und bestimmte Datenbankobjekte aufgelistet werden, die im Rahmen der Konvertierung möglicherweise besondere Aufmerksamkeit erfordern.Use the ora2pg -t SHOW_REPORT directive to create a report listing all the Oracle objects, the estimated migration cost (in developer days), and certain database objects that may require special attention as part of the conversion.

Die meisten Kunden wenden sehr viel Zeit dafür auf, den Bewertungsbericht zu überprüfen und den Aufwand für die automatische und manuelle Konvertierung zu berücksichtigen.Most customers will spend a considerable amount time reviewing the assessment report and considering the automatic and manual conversion effort.

Wenn Sie ora2pg zum Erstellen eines Bewertungsberichts konfigurieren und ausführen möchten, lesen Sie die Informationen im Abschnitt Premigration: Assessment (Prämigration: Bewertung) des Artikels Oracle to Azure Database for PostgreSQL Cookbook (Cookbook: Oracle zu Azure Database for PostgreSQL).To configure and run ora2pg to create an assessment report, see the Premigration: Assessment section of the Oracle to Azure Database for PostgreSQL Cookbook. Hier finden Sie ein Beispiel für einen ora2pg-Bewertungsbericht zu Referenzzwecken.A sample ora2pg assessment report is available for reference here.

Exportieren des Oracle-SchemasExport the Oracle schema

Zum Konvertieren des Oracle-Schemas und anderer Oracle-Objekte (wie Typen, Prozeduren, Funktionen usw.) in ein mit Azure Database for PostgreSQL kompatibles Schema empfehlen wir die Verwendung von ora2pg.We recommend that you use ora2pg to convert the Oracle schema and other Oracle objects (types, procedures, functions, etc.) to a schema that is compatible with Azure Database for PostgreSQL. ora2pg enthält viele Anweisungen, mit denen Sie bestimmte Datentypen vorab definieren können.ora2pg includes many directives to help you pre-define certain data types. Beispielsweise können Sie die Anweisung DATA_TYPE verwenden, um NUMBER(*,0) standardmäßig durch bigint statt NUMERIC(38) zu ersetzen.For example, you can use the DATA_TYPE directive to replace all NUMBER(*,0) with bigint rather than NUMERIC(38).

Sie können ora2pg ausführen, um die einzelnen Datenbankobjekte in SQL-Dateien zu exportieren.You can run ora2pg to export each of the database objects in .sql files. Sie können dann die SQL-Dateien vor dem Importieren in Azure Database for PostgreSQL mithilfe von psql überprüfen, oder Sie können das SQL-Skript in PgAdmin ausführen.You can then review the .sql files before importing them to Azure Database for PostgreSQL using psql or you can execute the .SQL script in PgAdmin.

psql -f [FILENAME] -h [AzurePostgreConnection] -p 5432 -U [AzurePostgreUser] -d database 

Beispiel: For example:

psql -f %namespace%\schema\sequences\sequence.sql -h server1-server.postgres.database.azure.com -p 5432 -U username@server1-server -d database

Informationen zum Konfigurieren und Ausführen von ora2pg für die Schemakonvertierung finden Sie im Abschnitt Migration: Schema & Data des Whitepapers Oracle to Azure Database for PostgreSQL Cookbook.To configure and run ora2pg for schema conversion, see the Migration: Schema and data section of the Oracle to Azure Database for PostgreSQL Cookbook.

Einrichten des Schemas in Azure Database for PostgreSQLSet up the schema in Azure Database for PostgreSQL

Standardmäßig schreibt Oracle SCHEMA.TABLE.COLUMN (SCHEMA.TABELLE.SPALTE) in Großbuchstaben, während PostgreSQL schema.table.column (schema.tabelle.spalte) in Kleinbuchstaben schreibt.By default, Oracle keeps the schema.table.column in all upper cases, while PostgreSQL keeps schema.table.column in lower case. Damit Azure Database Migration Service die Datenverschiebung aus Oracle in Azure Database for PostgreSQL starten kann, muss schema.table.column (schema.tabelle.spalte) dieselbe Schreibweise wie in der Oracle-Quelle aufweisen.For Azure Database Migration Service to start data movement from Oracle to Azure Database for PostgreSQL, the schema.table.column must be the same case format as the Oracle source.

Wenn die Oracle-Quelle beispielsweise das Schema „HR.EMPLOYEES.EMPLOYEE_ID“ verwendet, muss das PostgreSQL-Schema das gleiche Format aufweisen.For example, if the Oracle source has as schema of “HR”.”EMPLOYEES”.”EMPLOYEE_ID”, then the PostgreSQL schema must use the same format.

Um sicherzustellen, dass in Oracle und Azure Database for PostgreSQL dieselbe Schreibweise von schema.table.column (schema.tabelle.spalte) verwendet wird, empfehlen wir die Ausführung der folgenden Schritte.To ensure that the case format of the schema.table.column is the same for both Oracle and Azure Database for PostgreSQL, we recommend that you use the following steps.

Hinweis

Sie können einen anderen Ansatz verwenden, um das Großbuchstabenschema abzuleiten.You can use a different approach to derive the upper-case schema. Wir arbeiten an der Verbesserung und Automatisierung dieses Schritts.We are working to improve and automate this step.

  1. Exportieren Sie Schemas mit ora2pg in Kleinbuchstaben.Export schemas using ora2pg with lower cases. Erstellen Sie im SQL-Tabellenerstellungsskript manuell ein Schema mit der Großschreibung „SCHEMA“.In the table creation sql script, create a schema with upper case “SCHEMA” manually.

  2. Importieren Sie die restlichen Oracle-Objekte (z. B. Trigger, Sequenzen, Prozeduren, Typen und Funktionen) in Azure Database for PostgreSQL.Import the rest of the Oracle objects, such as triggers, sequences, procedures, types, and functions, into Azure Database for PostgreSQL.

  3. Führen Sie das folgende Skript aus, damit TABLE (TABELLE) und COLUMN (SPALTE) in Großbuchstaben geschrieben werden:To make TABLE and COLUMN UPPER case, run the following script:

    -- INPUT: schema name
    set schema.var = “HR”;
    
    -- Generate statements to rename tables and columns
    SELECT 1, 'SET search_path = "' ||current_setting('schema.var')||'";'
    UNION ALL 
    SELECT 2, 'alter table "'||c.relname||'" rename '||a.attname||' to "'||upper(a.attname)||'";'
    FROM pg_class c
    JOIN pg_attribute a ON a.attrelid = c.oid
    JOIN pg_type t ON a.atttypid = t.oid
    LEFT JOIN pg_catalog.pg_constraint r ON c.oid = r.conrelid
     AND r.conname = a.attname
    WHERE c.relnamespace = (select oid from pg_namespace where nspname=current_setting('schema.var')) AND a.attnum > 0 AND c.relkind ='r'
    UNION ALL
    SELECT 3, 'alter table '||c.relname||' rename to "'||upper(c.relname)||'";'
    FROM pg_catalog.pg_class c
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
    WHERE c.relkind ='r' AND n.nspname=current_setting('schema.var')
    ORDER BY 1;
    
  • Löschen Sie den Fremdschlüssel in der Zieldatenbank, damit der vollständige Ladevorgang ausgeführt wird.Drop the foreign key in the target database for the full load to run. Im Abschnitt Migrieren des Beispielschemas des Artikels Tutorial: Migrieren von PostgreSQL zu Azure Database for PostgreSQL (online) mit DMS finden Sie ein Skript, mit dem Sie den Fremdschlüssel löschen können.Refer to the Migrate the sample schema section of the article here for a script that you can use to drop the foreign key.

  • Verwenden Sie Azure Database Migration Service, um den vollständigen Ladevorgang und die Synchronisierung auszuführen.Use Azure Database Migration Service to run for full load and sync.

  • Führen Sie in Azure Database Migration Service eine Datenbankübernahme aus, nachdem die Daten in der Azure Database for PostgreSQL-Zielinstanz mit der Quelle synchronisiert wurden.When the data in the target Azure Database for PostgreSQL instance is caught up with the source, perform database cutover in Azure Database Migration Service.

  • Führen Sie das folgende Skript aus, damit SCHEMA, TABLE (TABELLE) und COLUMN (SPALTE) in Kleinbuchstaben umgewandelt werden (sofern dieses Schema in Azure Database for PostgreSQL für die Anwendungsabfrage verwendet werden soll):To make SCHEMA, TABLE, and COLUMN lower case (if the schema for Azure Database for PostgreSQL should be this way for application query), run the following script:

    -- INPUT: schema name
    set schema.var = hr;
    
    -- Generate statements to rename tables and columns
    SELECT 1, 'SET search_path = "' ||current_setting('schema.var')||'";'
    UNION ALL
    SELECT 2, 'alter table "'||c.relname||'" rename "'||a.attname||'" to '||lower(a.attname)||';'
    FROM pg_class c
    JOIN pg_attribute a ON a.attrelid = c.oid
    JOIN pg_type t ON a.atttypid = t.oid
    LEFT JOIN pg_catalog.pg_constraint r ON c.oid = r.conrelid
       AND r.conname = a.attname
    WHERE c.relnamespace = (select oid from pg_namespace where nspname=current_setting('schema.var')) AND a.attnum > 0 AND c.relkind ='r'
    UNION ALL
    SELECT 3, 'alter table "'||c.relname||'" rename to '||lower(c.relname)||';'
    FROM pg_catalog.pg_class c
       LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
    WHERE c.relkind ='r' AND n.nspname=current_setting('schema.var')
    ORDER BY 1;
    

Registrieren des Ressourcenanbieters „Microsoft.DataMigration“Register the Microsoft.DataMigration resource provider

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Alle Dienste und anschließend auf Abonnements.Sign in to the Azure portal, select All services, and then select Subscriptions.

    Abonnements im Portal anzeigen

  2. Wählen Sie das Abonnement aus, in dem Sie die Azure Database Migration Service-Instanz erstellen möchten, und klicken Sie auf Ressourcenanbieter.Select the subscription in which you want to create the instance of the Azure Database Migration Service, and then select Resource providers.

    Ressourcenanbieter anzeigen

  3. Suchen Sie nach „Migration“, und wählen Sie rechts neben Microsoft.DataMigration die Option Registrieren aus.Search for migration, and then to the right of Microsoft.DataMigration, select Register.

    Registrieren des Ressourcenanbieters

Erstellen einer DMS-InstanzCreate a DMS instance

  1. Wählen Sie im Azure-Portal die Option + Ressource erstellen, suchen Sie nach Azure Database Migration Service, und wählen Sie dann Azure Database Migration Service aus der Dropdownliste aus.In the Azure portal, select + Create a resource, search for Azure Database Migration Service, and then select Azure Database Migration Service from the drop-down list.

    Azure Marketplace

  2. Wählen Sie auf dem Bildschirm Azure Database Migration Service die Schaltfläche Erstellen aus.On the Azure Database Migration Service screen, select Create.

    Erstellen einer Instanz von Azure Database Migration Service

  3. Geben Sie auf dem Bildschirm Migrationsdienst erstellen einen Namen für den Dienst, das Abonnement und eine neue oder vorhandene Ressourcengruppe an.On the Create Migration Service screen, specify a name for the service, the subscription, and a new or existing resource group.

  4. Wählen Sie ein vorhandenes VNet aus, oder erstellen Sie ein neues VNet.Select an existing VNet or create a new one.

    Das VNet bietet Azure Database Migration Service Zugriff auf die Oracle-Quellinstanz und die Azure Database for PostgreSQL-Zielinstanz.The VNet provides Azure Database Migration Service with access to the source Oracle and the target Azure Database for PostgreSQL instance.

    Weitere Informationen zum Erstellen eines VNet im Azure-Portal finden Sie im Artikel Erstellen eines virtuellen Netzwerks im Azure Portal.For more information about how to create a VNet in the Azure portal, see the article Create a virtual network using the Azure portal.

  5. Wählen Sie einen Tarif.Select a pricing tier.

    Weitere Informationen zu Kosten und Tarifen finden Sie in der Preisübersicht.For more information on costs and pricing tiers, see the pricing page.

    Konfigurieren der Einstellungen einer Azure Database Migration Service-Instanz

  6. Wählen Sie Erstellen, um den Dienst zu erstellen.Select Create to create the service.

Erstellen eines MigrationsprojektsCreate a migration project

Nachdem der Dienst erstellt wurde, suchen Sie diesen im Azure-Portal, öffnen Sie ihn, und erstellen Sie anschließend ein neues Migrationsprojekt.After the service is created, locate it within the Azure portal, open it, and then create a new migration project.

  1. Wählen Sie im Azure-Portal Alle Dienste, suchen Sie nach Azure Database Migration Service, und wählen Sie dann Azure Database Migration Service aus.In the Azure portal, select All services, search for Azure Database Migration Service, and then select Azure Database Migration Services.

    Suchen aller Instanzen von Azure Database Migration Service

  2. Suchen Sie im Bildschirm Azure Database Migration Services nach dem Namen der von Ihnen erstellten Azure Database Migration Service-Instanz, und wählen Sie die Instanz aus.On the Azure Database Migration Services screen, search for the name of the Azure Database Migration Service instance that you created, and then select the instance.

    Suchen Ihrer Instanz von Azure Database Migration Service

  3. Wählen Sie + Neues Migrationsprojekt aus.Select + New Migration Project.

  4. Geben Sie im Bereich Neues Migrationsprojekt einen Projektnamen im Textfeld Typ des Quellservers an, wählen Sie Oracle aus, und wählen Sie dann im Textfeld Typ des Zielservers den Eintrag Azure Database for PostgreSQL aus.On the New migration project screen, specify a name for the project, in the Source server type text box, select Oracle, in the Target server type text box, select Azure Database for PostgreSQL.

  5. Wählen Sie im Abschnitt Aktivitätstyp auswählen die Option Onlinedatenmigration aus.In the Choose type of activity section, select Online data migration.

    Erstellen eines Database Migration Service-Projekts

    Hinweis

    Alternativ können Sie Nur Projekt erstellen auswählen, um das Migrationsprojekt jetzt zu erstellen und die Migration später durchzuführen.Alternately, you can choose Create project only to create the migration project now and execute the migration later.

  6. Wählen Sie Speichern aus, beachten Sie die Anforderungen für die erfolgreiche Verwendung von Azure Database Migration Service zum Durchführen einer Onlinemigration, und wählen Sie dann Aktivität erstellen und ausführen aus.Select Save, note the requirements to successfully use Azure Database Migration Service to perform an online migration, and then select Create and run activity.

Angeben von QuelldetailsSpecify source details

  • Geben Sie im Bereich Quelldetails hinzufügen die Verbindungsdetails für die Oracle-Quellinstanz an.On the Add Source Details screen, specify the connection details for the source Oracle instance.

    Bildschirm „Quelldetails hinzufügen“

Hochladen des Oracle OCI-TreibersUpload Oracle OCI driver

  1. Wählen Sie Speichern aus, melden Sie sich auf dem Bildschirm OCI-Treiber installieren bei Ihrem Oracle-Konto an, und laden Sie dann den Treiber instantclient-basiclite-windows.x64-12.2.0.1.0.zip (37,128,586 bytes) (cksum - 865082268) hier herunter.Select Save, and then on the Install OCI driver screen, sign into your Oracle account and download the driver instantclient-basiclite-windows.x64-12.2.0.1.0.zip (37,128,586 Byte(s)) (SHA1 Checksum: 865082268) from here.

  2. Laden Sie den Treiber in einen freigegebenen Ordner herunter.Download the driver to a shared folder.

    Stellen Sie sicher, dass der Ordner mit dem von Ihnen angegebenen Benutzernamen mit minimalem schreibgeschützten Zugriff freigegeben ist.Make sure the folder is shared with the username that you specified with minimum Read-only access. Azure Database Migration Service greift auf die Freigabe zu und liest daraus, um den OCI-Treiber in Azure hochzuladen. Dabei erfolgt ein Identitätswechsel des von Ihnen angegebenen Benutzernamens.Azure Database Migration Service accesses and reads from the share to upload the OCI driver to Azure by impersonating the username you specify.

    Bei dem angegebenen Benutzernamen muss es sich um ein Windows-Benutzerkonto handeln.The username you specify must be a Windows user account.

    Installation des OCI-Treibers

Angeben von ZieldetailsSpecify target details

  1. Wählen Sie Speichern aus, und geben Sie dann auf dem Bildschirm Zieldetails die Verbindungsdetails für den Azure Database for PostgreSQL-Zielserver an. Dabei handelt es sich um die vorab bereitgestellte Azure Database for PostgreSQL-Instanz, für die das HR-Schema bereitgestellt wurde.Select Save, and then on the Target details screen, specify the connection details for the target Azure Database for PostgreSQL server, which is the pre-provisioned instance of Azure Database for PostgreSQL to which the HR schema was deployed.

    Bildschirm „Zieldetails“

  2. Klicken Sie auf Speichern, und ordnen Sie dann auf dem Bildschirm Den Zieldatenbanken zuordnen die Quell- und die Zieldatenbank für die Migration zu.Select Save, and then on the Map to target databases screen, map the source and the target database for migration.

    Wenn die Zieldatenbank denselben Datenbanknamen wie die Quelldatenbank enthält, wählt Azure Database Migration Service die Zieldatenbank standardmäßig aus.If the target database contains the same database name as the source database, Azure Database Migration Service selects the target database by default.

    Zuordnen zu Zieldatenbanken

  3. Klicken Sie auf Speichern. Geben Sie auf dem Bildschirm Migrationszusammenfassung im Textfeld Aktivitätsname einen Namen für die Migrationsaktivität ein, und überprüfen Sie anschließend die Zusammenfassung, um sicherzustellen, dass die Ziel- und Quelldetails Ihren vorherigen Angaben entsprechen.Select Save, on the Migration summary screen, in the Activity name text box, specify a name for the migration activity, and then review the summary to ensure that the source and target details match what you previously specified.

    Migrationszusammenfassung

Ausführen der MigrationRun the migration

  • Wählen Sie Migration ausführen aus.Select Run migration.

    Das Fenster „Migrationsaktivität“ wird angezeigt, und der Status der Aktivität lautet Initialisierung.The migration activity window appears, and the Status of the activity is initializing.

Überwachen der MigrationMonitor the migration

  1. Klicken Sie auf dem Bildschirm „Migrationsaktivität“ auf Aktualisieren, um die Anzeige zu aktualisieren, bis der Status der Migration Ausgeführt lautet.On the migration activity screen, select Refresh to update the display until the Status of the migration shows as Running.

    Aktivitätsstatus: Wird ausgeführt

  2. Wählen Sie unter Datenbankname eine bestimmte Datenbank aus, um den Migrationsstatus für die Vorgänge Vollständiger Datenladevorgang und Inkrementelle Datensynchronisierung abzurufen.Under Database Name, select a specific database to get to the migration status for Full data load and Incremental data sync operations.

    Unter „Full data load“ (Vollständiger Datenladevorgang) wird der Migrationsstatus des ersten Ladevorgangs und unter „Inkrementelle Datensynchronisierung“ der CDC-Status (Change Data Capture) angezeigt.Full data load will show the initial load migration status while Incremental data sync will show change data capture (CDC) status.

    Aktivitätsstatus: Vollständiger Ladevorgang abgeschlossen

    Aktivitätsstatus: Inkrementelle Datensynchronisierung

Durchführen der MigrationsübernahmePerform migration cutover

Wenn der erste vollständige Ladevorgang abgeschlossen ist, werden die Datenbanken als Zur Übernahme bereit markiert.After the initial Full load is completed, the databases are marked Ready to cutover.

  1. Wenn Sie die Datenmigration abschließen möchten, klicken Sie auf Übernahme starten.When you're ready to complete the database migration, select Start Cutover.

  2. Achten Sie darauf, alle eingehenden Transaktionen für die Quelldatenbank zu beenden. Warten Sie, bis der Zähler Ausstehende Änderungen das Ergebnis 0 zeigt.Make sure to stop all the incoming transactions to the source database; wait until the Pending changes counter shows 0.

    Starten der Übernahme

  3. Aktivieren Sie das Kontrollkästchen Bestätigen, und klicken Sie anschließend auf Anwenden.Select Confirm, and then select Apply.

  4. Wenn der Status der Datenbankmigration als Abgeschlossen angezeigt wird, stellen Sie eine Verbindung zwischen Ihren Anwendungen und der neuen Azure Database for PostgreSQL-Zielinstanz her.When the database migration status shows Completed, connect your applications to the new target Azure Database for PostgreSQL instance.

Hinweis

Da PostgreSQL schema.table.column (schema.tabelle.spalte) standardmäßig in Kleinbuchstaben schreibt, können Sie das weiter oben in diesem Artikel im Abschnitt Einrichten des Schemas in Azure Database for PostgreSQL aufgeführte Skript verwenden, um die Großbuchstaben in Kleinbuchstaben umzuwandeln.Since PostgreSQL by default has schema.table.column in lower case, you can revert from upper case to lower case by using the script in the Set up the schema in Azure Database for PostgreSQL section earlier in this article.

Nächste SchritteNext steps