Database
 sql >> Base de données >  >> RDS >> Database

Migrer des données à l'aide de Network_link

Source :exa01dm05 (Oracle 11g)
Cible :exa02dm06  (Oracle 18c)

1. Créez le répertoire de vidage sur la PDB et la CDB

exa02dm06 :. oraenvORACLE_SID =[oracle] ? CDBGPAORACLE_HOME =[/home/oracle] ? /u01/app/oracle/product/18.0.0.0/dbhome_1La base Oracle reste inchangée avec la valeur /u01/app/oracleexa02dm06 :export ORACLE_SID=CDBGPA1exa02dm06 :sqlplus / as sysdbaSQL*Plus :Release 18.0.0.0.0 - Production on Thu Jan 28 15:29:13 2021Version 18.2.0.0.0Copyright (c) 1982, 2018, Oracle. Tous droits réservés.Connecté à :Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - ProductionVersion 18.2.0.0.0SQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- -------- ---------------------- ---------- ----------2 PDB$SEED LECTURE SEULE NO3 PPDBTESTE LIRE ÉCRIRE NO4 HPDBGDA LIRE ÉCRIRE NOSQL> alter session set container =HPDBGDA;Session modified.SQL> CRÉER OU REMPLACER RÉPERTOIRE MIG AS '/exp';Répertoire créé.

2. Ajoutez l'entrée tnsnames de SOURCE dans le serveur de base de données CIBLE exa02dm06

gda_mig =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =exa01dm05)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =gda)(UR=A)))$ tnsping gda_migTNS Utilitaire Ping pour Linux :Version 18.0.0.0.0 - Production le 28-JAN-2021 11:38:40Copyright (c) 1997, 2017, Oracle. Tous droits réservés.Fichiers de paramètres utilisés :Adaptateur TNSNAMES utilisé pour résoudre l'aliasTentative de contact (DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =exa01dm05)(PORT =1521)) (CONNECT_DATA =(SERVER =DEDICATED) (SERVICE_NAME =gda) (UR=A)))OK (10 ms)

3. Créez le dblink dans le PDB à la cible.

SQL> créer un lien de base de données public gda_link se connecter au système identifié par xxxxx en utilisant 'gda_mig';Lien de base de données créé.SQL> sélectionner sysdate à partir de dual@gda_link;SYSDATE--------------- 02-FEV-21

4. Crée le fichier sql avec le DDL pour tous les tablespaces

exa01dm05 :répertoire impdp=MIG dumpfile=gda.dmp sqlfile=tablespaces.sql include=TABLESPACE full=yesImport :version 11.2.0.4.0 - Production le jeudi 28 janvier 15:42:35 2021Copyright (c) 1982, 2011 , Oracle et/ou ses filiales. Tous droits réservés. Nom d'utilisateur :system Mot de passe :Connecté à :Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production 64 bits Avec les options Partitionnement, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining et Real Application Testing Table principale "SYSTEM". "SYS_SQL_FILE_FULL_01" chargé/déchargé avec succèsDémarrage de "SYSTEM"."SYS_SQL_FILE_FULL_01":system/******** directory=DM_TESTE_MIG dumpfile=hsbd.dmp sqlfile=tablespaces.sql include=TABLESPACE full=yesTraitement du type d'objet DATABASE_EXPORT/TABLESPACEJob " SYSTEM"."SYS_SQL_FILE_FULL_01" terminé avec succès le jeudi 28 janvier 15:42:48 2021 écoulé 0 00:00:01

5. Renommez le chemin des fichiers de données dans le fichier sql (tablespaces.sql) en fonction de la cible.

6. Créez des tablespaces sur la cible :

exa01dm06 :sqlplus "/ as sysdba" @tablespaces.sql

7. Effectuez l'importation à l'aide de network_link. J'utilise le parfile "imp_gda.par".

# cat imp_gda.pardirectory=MIGnetwork_link=gda_linklogfile=import_gda.logcluster=Nparallel=4full=yesexclude=schema:"IN ('SCOTT','SYS','SYSTEM','WMSYS','XDB','OJVMSYS ','ORDDATA','ORDSYS','OUTLN','AUDSYS','CTXSYS')"$ impdp \'sys@HPDBGDA as sysdba\' parfile=imp_gda.parImport :version 18.0.0.0.0 - Production le mar. 2 février 12:13:35 2021Version 18.2.0.0.0Copyright (c) 1982, 2018, Oracle et/ou ses filiales. Tous droits réservés. parEstimation en cours à l'aide de la méthode BLOCKS...Traitement du type d'objet DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATAEstimation totale à l'aide de la méthode BLOCKS :375,9 Mo

8. Recompilez les objets invalides :

SQL> alter session set container =HPDBGDA;Session modified.SQL> EXEC DBMS_UTILITY.compile_schema(schema => 'DBGDA', compile_all => FALSE);Procédure PL/SQL terminée avec succès.

9. Collectez des statistiques :

DECLAREBEGINDBMS_STATS.GATHER_SCHEMA_STATS (ownname => 'DBGDA',method_opt => 'for all columns size auto',granularity => 'ALL',cascade => TRUE);END;/La procédure PL/SQL s'est terminée avec succès.