Migrer les données

Vous pouvez migrer les données de deux manières : en ligne ou hors ligne.
  • Déplacement de données en ligne : Vous pouvez créer une connexion à partir d'Oracle SQL Developer vers la base de données source Microsoft SQL Server et migrer les données.
  • Déplacement de données hors ligne : vous pouvez exporter les données à partir de Microsoft SQL Server. SQL Developer créera une série de fichiers BCP et sqlldr que vous pouvez exécuter à partir d'un fichier batch.

Les déplacements de données en ligne conviennent aux petits jeux de données, tandis que les déplacements de données hors ligne sont utiles pour déplacer de grands volumes de données. En outre, en cas de volumes importants de données, il est recommandé d'utiliser Oracle Cloud Infrastructure File Storage pour améliorer les performances globales du déplacement des données au cours du processus de migration.

Migrer les données hors ligne

Au cours du processus de capture, le script de déplacement de données hors ligne aurait été généré et les données auraient été extraites dans le répertoire de sortie du projet nommé datamove. L'exécution de ces scripts est ce qui migre les données de la machine hôte Windows serveur sql vers Oracle Autonomous Database.

Le répertoire datamove doit se présenter comme suit :
Wkdir
	projectName
		datamove
			YYYY-MM-DD_HH-MI-SS
				AdventureWorks

Dans le répertoire AdventureWorks, vous devez voir six sous-dossiers correspondant à tous les utilisateurs dans la base de données AdventureWorks SQL Server.

Les répertoires suivants doivent apparaître dans le dossier AdventureWorks :

  • ADVENTUREWORKS
  • SALES_ADVENTUREWORKS
  • PERSON_ADVENTUREWORKS
  • PURCHASING_ADVENTUREWORKS
  • HUMANRESOURCES_ADVENTUREWORKS
  • PRODUCTION_ADVENTUREWORKS

Vous devez voir les fichiers suivants dans le dossier AdventureWorks :

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

Le script MicrosoftSqlServer_data.bat est le script de batch système Windows maître qui appelle d'autres scripts de batch créés dans chacun des répertoires de schéma. Voici un exemple d'exécution :

  1. Lancez le script MicrosoftSqlServer_data.bat à l'invite système Windows source. A l'invite, accédez au répertoire et entrez le nom d'hôte du serveur Windows, le compte administrateur système Windows (généralement sa) et le mot de passe SA.
    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

    Au cours de l'exécution ci-dessus, les journaux respectifs sont générés pour chaque table de base de données par schéma et stockés dans chacun des dossiers de schéma sous le journal des sous-répertoires.

  2. (Facultatif) Consultez ces journaux lors de la migration des données ou après la fin du traitement, puis validez le mouvement de données.
    Il est fortement recommandé de consulter les journaux et de valider la migration des données. Voici un exemple de journal avec le récapitulatif du chargement en gras.
    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
    

Tester la migration

Selon la complexité de la base de données en cours de migration, une grande partie du projet de migration peut être testée.

Oracle ne fournit aucun outil capable de valider automatiquement une base de données migrée pour vous. Cette phase de la migration devrait être planifiée et prise en compte avant le début de la migration. Les éléments suivants doivent faire partie de votre plan de projet :

  1. Vérifier la structure de la base de données.
  2. Vérifier la sécurité de la base de données.
  3. Vérifiez les données.
  4. Vérifiez l'exactitude logique des vues.
  5. Testez les applications.