Daten migrieren

Sie können die Daten auf zwei Arten migrieren: online oder offline.
  • Online Data Move: Sie können eine Verbindung zwischen Oracle SQL Developer und der Microsoft SQL Server-Quelldatenbank erstellen und die Daten migrieren.
  • Offline Data Move: Sie können die Daten aus Microsoft SQL Server exportieren. SQL Developer erstellt eine Reihe von BCP- und sqlldr-Dateien, die Sie aus einer Batchdatei ausführen können.

Online-Datenverschiebungen eignen sich für kleine Datensätze, während Offline-Datenverschiebungen nützlich sind, um große Datenmengen zu verschieben. Außerdem wird empfohlen, bei großen Datenmengen Oracle Cloud Infrastructure File Storage zu verwenden, um die Gesamtperformance der Datenverschiebung während des Migrationsprozesses zu unterstützen.

Daten offline migrieren

Während des Erfassungsprozesses wurde das Verschiebungsskript für Offlinedaten generiert, und die Daten wurden in das Ausgabeverzeichnis des Projekts datamove extrahiert. Bei der Ausführung dieser Skripte werden die Daten vom Hostrechner der sql-Serverfenster auf Oracle Autonomous Database migriert.

Das Verzeichnis datamove sollte wie folgt aussehen:
Wkdir
	projectName
		datamove
			YYYY-MM-DD_HH-MI-SS
				AdventureWorks

Im Verzeichnis AdventureWorks sollten sechs Unterordner angezeigt werden, die allen Benutzern der SQL Server-Datenbank AdventureWorks entsprechen.

Die folgenden Verzeichnisse sollten im Ordner AdventureWorks angezeigt werden:

  • VERANSTALTUNG
  • SALES_ADVENTUREWORKS
  • PERSON_ADVENTUREWORKS
  • PURCHASING_ADVENTUREWORKS
  • HUMANRESOURCES_ADVENTUREWORKS
  • PRODUCTION_ADVENTUREWORKS

Die folgenden Dateien sollten im Ordner AdventureWorks angezeigt werden:

  • MicrosoftSQLServer_data.bat
  • MicrosoftSQLServer_data.sh
  • oracle_external.bat
  • oracle_external.sh
  • oracle_loader.bat
  • oracle_loader.sh

Das Skript MicrosoftSqlServer_data.bat ist das Batchskript des Windows-Master-Systems, das andere Batchskripte aufruft, die in den einzelnen Schemaverzeichnissen erstellt wurden. Beispielausführung:

  1. Starten Sie das Skript MicrosoftSqlServer_data.bat in der Eingabeaufforderung des Quell-Windows-Systems. Wechseln Sie in der Eingabeaufforderung zum Verzeichnis, und geben Sie den Hostnamen des Windows-Servers, das Windows-Systemadministratorkonto (in der Regel sa) und das SA-Kennwort ein.
    prompt> cd "C:\_rkd\_OCI\DB-Migration\Non-Oracle\MS-SQL\wkdir\Capture\sqladvworks4\datamove\YYYY-MM-DD_HH-MI-SS\AdventureWorks\“
    prompt> MicrosoftSQLServer_data.bat sql-server-hostname sa sa-password

    Während der obigen Ausführung werden die jeweiligen Logs für jede Datenbanktabelle nach Schema generiert und in jedem der Schemaordner unter dem Unterverzeichnislog gespeichert.

  2. (Optional) Prüfen Sie diese Logs während der Datenmigration oder nach Abschluss, und validieren Sie die Datenverschiebung.
    Es wird dringend empfohlen, die Logs zu prüfen und die Datenmigration zu validieren. Im Folgenden finden Sie ein Beispiellog mit einer fettgedruckten Lastübersicht.
    SQL*Loader: Release 19.0.0.0.0 - Production on Thu Mar 4 07:39:44 2021
    Version 19.10.0.0.0
    
    Copyright (c) 1982, 2021, Oracle and/or its affiliates.  All rights reserved.
    
    Control File:   control\AdventureWorks.DatabaseLog.ctl
    Data File:      data/AdventureWorks.DatabaseLog.dat
      File processing option string: "str '<EORD>'"
      Bad File:     control\AdventureWorks.DatabaseLog.bad
      Discard File:  none specified
     
     (Allow all discards)
    
    Number to load: ALL
    Number to skip: 0
    Errors allowed: 50
    Bind array:     250 rows, maximum of 1048576 bytes
    Continuation:    none specified
    Path used:      Conventional
    
    Table ADVENTUREWORKS.DATABASELOG, loaded from every logical record.
    Insert option in effect for this table: INSERT
    TRAILING NULLCOLS option in effect
    
       Column Name                  Position   Len  Term Encl Datatype
    ------------------------------ ---------- ----- ---- ---- ---------------------
    DATABASELOGID                       FIRST     *           CHARACTER            
        Terminator string : '<EOFD>'
    POSTTIME                             NEXT     *           CHARACTER            
        Terminator string : '<EOFD>'
        SQL string for column : "TO_TIMESTAMP(:PostTime, 'yyyy-mm-dd HH24:mi:ss.ff3')"
    DATABASEUSER                         NEXT     *           CHARACTER            
        Terminator string : '<EOFD>'
        SQL string for column : "DECODE(:DatabaseUser, CHR(00), ' ', :DatabaseUser)"
    EVENT                                NEXT     *           CHARACTER            
        Terminator string : '<EOFD>'
        SQL string for column : "DECODE(:Event, CHR(00), ' ', :Event)"
    SCHEMA                               NEXT     *           CHARACTER            
        Terminator string : '<EOFD>'
        SQL string for column : "DECODE(:Schema, CHR(00), ' ', :Schema)"
    OBJECT                               NEXT     *           CHARACTER            
        Terminator string : '<EOFD>'
        SQL string for column : "DECODE(:Object, CHR(00), ' ', :Object)"
    TSQL                                 NEXT *****           CHARACTER            
        Maximum field length is 2000000
        Terminator string : '<EOFD>'
    XMLEVENT                             NEXT *****           CHARACTER            
        Maximum field length is 2000000
        Terminator string : '<EOFD>'
    value used for ROWS parameter changed from 250 to 1
    
    Table ADVENTUREWORKS.DATABASELOG:
      1596 Rows successfully loaded.
      0 Rows not loaded due to data errors.
      0 Rows not loaded because all WHEN clauses were failed.
      0 Rows not loaded because all fields were null.
    
    
    Space allocated for bind array:                4001572 bytes(1 rows)
    Read   buffer bytes: 1048576
    
    Total logical records skipped:          0
    Total logical records read:          1596
    Total logical records rejected:         0
    Total logical records discarded:        0
    
    Run began on Thu Mar 04 07:39:44 2021
    Run ended on Thu Mar 04 07:39:56 2021
    
    Elapsed time was:     00:00:12.44
    CPU time was:         00:00:01.79
    

Migration testen

Je nach Komplexität der zu migrierenden Datenbank kann ein Großteil des Migrationsprojekts getestet werden.

Oracle bietet keine Tools, mit denen Sie eine migrierte Datenbank automatisch validieren können. Diese Migrationsphase sollte vor Beginn der Migration geplant und berücksichtigt werden. Folgendes sollte Bestandteil Ihres Projektplans sein:

  1. Prüfen Sie die Datenbankstruktur.
  2. Prüfen Sie die Datenbanksicherheit.
  3. Prüfen Sie die Daten.
  4. Prüfen Sie die logische Korrektheit von Ansichten.
  5. Testen Sie die Anwendungen.