Je migre d'un serveur Oracle 11.2.0.4 su un autre serveur en 19.6, en multitenant
Une des tables prenant plus de 400Gb, je souhaite le faire via Datapump et Transportable tablespaces
Je passe mes tablespaces souces en lecture seule
J'exporte le metamodèle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 alter tablespace DVP_BLOB READ ONLY; alter tablespace DVP_INDEX_SMALL READ ONLY; alter tablespace DVP_SHBLOB READ ONLY; alter tablespace DVP_SHINDEX_SMALL READ ONLY; alter tablespace DVP_SHSTAMM_MEDIUM READ ONLY; alter tablespace DVP_SHSTAMM_SMALL READ ONLY; alter tablespace DVP_STAMM_MEDIUM READ ONLY; alter tablespace DVP_STAMM_SMALL READ ONLY; create directory dg as '+ORA_DBSOURCE_DAT/DBSOURCE/datafile' ;
et effectue l'extraction de ASM à un share nfs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 expdp userid=mondvp/*** transport_tablespaces=DVP_BLOB,DVP_INDEX_SMALL,DVP_SHBLOB,DVP_SHINDEX_SMALL,DVP_SHSTAMM_MEDIUM,DVP_SHSTAMM_SMALL,DVP_STAMM_MEDIUM,DVP_STAMM_SMALL dumpfile=dvp.dmp logfile=expdvp.log Connect▒ ▒ : Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options D▒marrage de "mondvp"."SYS_EXPORT_TRANSPORTABLE_01" : userid=mondvp/******** transport_tablespaces=DVP_BLOB,DVP_INDEX_SMALL,DVP_SHBLOB,DVP_SHINDEX_SMALL,DVP_SHSTAMM_MEDIUM,DVP_SHSTAMM_SMALL,DVP_STAMM_MEDIUM,DVP_STAMM_SMALL dumpfile=rola.dmp logfile=exprola.log Traitement du type d'objet TRANSPORTABLE_EXPORT/PLUGTS_BLK Traitement du type d'objet TRANSPORTABLE_EXPORT/TABLE Traitement du type d'objet TRANSPORTABLE_EXPORT/GRANT/OWNER_GRANT/OBJECT_GRANT Traitement du type d'objet TRANSPORTABLE_EXPORT/INDEX/INDEX Traitement du type d'objet TRANSPORTABLE_EXPORT/INDEX/FUNCTIONAL_INDEX/INDEX Traitement du type d'objet TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT Traitement du type d'objet TRANSPORTABLE_EXPORT/INDEX_STATISTICS Traitement du type d'objet TRANSPORTABLE_EXPORT/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS Traitement du type d'objet TRANSPORTABLE_EXPORT/COMMENT Traitement du type d'objet TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT Traitement du type d'objet TRANSPORTABLE_EXPORT/TRIGGER Traitement du type d'objet TRANSPORTABLE_EXPORT/TABLE_STATISTICS Traitement du type d'objet TRANSPORTABLE_EXPORT/DOMAIN_INDEX/TABLE Traitement du type d'objet TRANSPORTABLE_EXPORT/DOMAIN_INDEX/SECONDARY_TABLE/INDEX Traitement du type d'objet TRANSPORTABLE_EXPORT/DOMAIN_INDEX/INDEX Traitement du type d'objet TRANSPORTABLE_EXPORT/MATERIALIZED_VIEW Traitement du type d'objet TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK Table ma▒tre "mondvp"."SYS_EXPORT_TRANSPORTABLE_01" charg▒e/d▒charg▒e avec succ▒s ****************************************************************************** L'ensemble de fichiers de vidage de mondvp.SYS_EXPORT_TRANSPORTABLE_01 est : /export/DBSOURCE/rDVP.dmp ****************************************************************************** Fichiers de donn▒es requis pour le tablespace transportable DVP_BLOB : +ORA_DBSOURCE_DAT/DBSOURCE/datafile/DVP_blob.281.848942105 Fichiers de donn▒es requis pour le tablespace transportable DVP_INDEX_SMALL : +ORA_DBSOURCE_DAT/DBSOURCE/datafile/DVP_index_small.275.848942099 Fichiers de donn▒es requis pour le tablespace transportable DVP_SHBLOB : +ORA_DBSOURCE_DAT/DBSOURCE/datafile/DVP_shblob.285.848942109 Fichiers de donn▒es requis pour le tablespace transportable DVP_SHINDEX_SMALL : +ORA_DBSOURCE_DAT/DBSOURCE/datafile/DVP_shindex_small.284.848942107 Fichiers de donn▒es requis pour le tablespace transportable DVP_SHSTAMM_MEDIUM : +ORA_DBSOURCE_DAT/DBSOURCE/datafile/DVP_shstamm_medium.282.848942107 Fichiers de donn▒es requis pour le tablespace transportable DVP_SHSTAMM_SMALL : +ORA_DBSOURCE_DAT/DBSOURCE/datafile/DVP_shstamm_small.283.848942107 Fichiers de donn▒es requis pour le tablespace transportable DVP_STAMM_MEDIUM : +ORA_DBSOURCE_DAT/DBSOURCE/datafile/DVP_stamm_medium.276.848942101 Fichiers de donn▒es requis pour le tablespace transportable DVP_STAMM_SMALL : +ORA_DBSOURCE_DAT/DBSOURCE/datafile/DVP_stamm_small.277.848942101 L'ex▒cution du travail "mondvp"."SYS_EXPORT_TRANSPORTABLE_01" a abouti ▒ Lun. Juin 15 14:04:06 2020 elapsed 0 00:02:08
Après quelques heures, les fichiers sont présent sur mon share nfs. Je repasse en lecture écriture
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 BEGIN DBMS_FILE_TRANSFER.COPY_FILE('dg','DVP_blob.281.848942105', 'DATA_PUMP_DIR','DVP_blob.281.848942105'); DBMS_FILE_TRANSFER.COPY_FILE('dg','DVP_index_small.275.848942099', 'DATA_PUMP_DIR','DVP_index_small.275.848942099'); DBMS_FILE_TRANSFER.COPY_FILE('dg','DVP_shblob.285.848942109', 'DATA_PUMP_DIR','DVP_shblob.285.848942109'); DBMS_FILE_TRANSFER.COPY_FILE('dg','DVP_shindex_small.284.848942107', 'DATA_PUMP_DIR','DVP_shindex_small.284.848942107'); DBMS_FILE_TRANSFER.COPY_FILE('dg','DVP_shstamm_medium.282.848942107', 'DATA_PUMP_DIR','DVP_shstamm_medium.282.848942107'); DBMS_FILE_TRANSFER.COPY_FILE('dg','DVP_shstamm_small.283.848942107', 'DATA_PUMP_DIR','DVP_shstamm_small.283.848942107'); DBMS_FILE_TRANSFER.COPY_FILE('dg','DVP_stamm_medium.276.848942101', 'DATA_PUMP_DIR','DVP_stamm_medium.276.848942101'); DBMS_FILE_TRANSFER.COPY_FILE('dg','DVP_stamm_small.277.848942101', 'DATA_PUMP_DIR','DVP_stamm_small.277.848942101'); END; /
J'effectue alors la procédure inverse sur ma nouvelle pluggable database que je crée ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 alter tablespace DVP_BLOB READ WRITE; alter tablespace DVP_INDEX_SMALL READ WRITE; alter tablespace DVP_SHBLOB READ WRITE; alter tablespace DVP_SHINDEX_SMALL READ WRITE; alter tablespace DVP_SHSTAMM_MEDIUM READ WRITE; alter tablespace DVP_SHSTAMM_SMALL READ WRITE; alter tablespace DVP_STAMM_MEDIUM READ WRITE; alter tablespace DVP_STAMM_SMALL READ WRITE;
Je recopie mes datafiles du share nfs à mon nouvel ASM
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 create pluggable database DBCIBLE from WINDB ; alter pluggable database DBCIBLE open instances=all ; alter session set container=DBCIBLE ; create or replace directory DATA_DIR as '+DATA/DBCIBLE/A72E45AA1AB31968E053AFE94D0AC00C/DATAFILE/' ; create or replace directory DBSOURCE as '/export/DBSOURCE' ;
Après de nouvelles heures, les fichiers sont créés sur ASM
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 BEGIN DBMS_FILE_TRANSFER.COPY_FILE('DBSOURCE','DVP_blob.281.848942105', 'DATA_DIR','DVP_blob'); DBMS_FILE_TRANSFER.COPY_FILE('DBSOURCE','DVP_index_small.275.848942099', 'DATA_DIR','DVP_index_small'); DBMS_FILE_TRANSFER.COPY_FILE('DBSOURCE','DVP_shblob.285.848942109', 'DATA_DIR','DVP_shblob'); DBMS_FILE_TRANSFER.COPY_FILE('DBSOURCE','DVP_shindex_small.284.848942107', 'DATA_DIR','DVP_shindex_small'); DBMS_FILE_TRANSFER.COPY_FILE('DBSOURCE','DVP_shstamm_medium.282.848942107', 'DATA_DIR','DVP_shstamm_medium'); DBMS_FILE_TRANSFER.COPY_FILE('DBSOURCE','DVP_shstamm_small.283.848942107', 'DATA_DIR','DVP_shstamm_small'); DBMS_FILE_TRANSFER.COPY_FILE('DBSOURCE','DVP_stamm_medium.276.848942101', 'DATA_DIR','DVP_stamm_medium'); DBMS_FILE_TRANSFER.COPY_FILE('DBSOURCE','DVP_stamm_small.277.848942101', 'DATA_DIR','DVP_stamm_small'); END; /
Je souhaite maintenant restaurer les métadonnées afin de retrouver toute ma base
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 ASMCMD> pwd +data/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE ASMCMD> ls -l Type Redund Striped Time Sys Name DATAFILE MIRROR COARSE JUN 16 16:00:00 Y COPY_FILE.385.1043236217 DATAFILE MIRROR COARSE JUN 16 16:00:00 Y COPY_FILE.435.1043228731 DATAFILE MIRROR COARSE JUN 16 16:00:00 Y COPY_FILE.457.1043236225 DATAFILE MIRROR COARSE JUN 16 16:00:00 Y COPY_FILE.458.1043253433 DATAFILE MIRROR COARSE JUN 16 11:00:00 Y COPY_FILE.459.1043228815 DATAFILE MIRROR COARSE JUN 16 16:00:00 Y COPY_FILE.466.1043235847 DATAFILE MIRROR COARSE JUN 16 16:00:00 Y COPY_FILE.479.1043253679 DATAFILE MIRROR COARSE JUN 16 16:00:00 Y COPY_FILE.487.1043236221 DATAFILE MIRROR COARSE JUN 16 16:00:00 Y SYSAUX.471.1043158153 DATAFILE MIRROR COARSE JUN 15 14:00:00 Y SYSTEM.495.1043158153 DATAFILE MIRROR COARSE JUN 15 14:00:00 Y UNDOTBS1.541.1043158153 DATAFILE MIRROR COARSE JUN 15 14:00:00 Y UNDO_2.543.1043158203 DATAFILE MIRROR COARSE JUN 16 16:00:00 Y USERS.515.1043158153 DATAFILE MIRROR COARSE JUN 16 11:00:00 N dvp_blob => +DATA/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/COPY_FILE.459.1043228815 DATAFILE MIRROR COARSE JUN 16 16:00:00 N dvp_index_small => +DATA/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/COPY_FILE.466.1043235847 DATAFILE MIRROR COARSE JUN 16 16:00:00 N dvp_shblob => +DATA/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/COPY_FILE.385.1043236217 DATAFILE MIRROR COARSE JUN 16 16:00:00 N dvp_shindex_small => +DATA/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/COPY_FILE.487.1043236221 DATAFILE MIRROR COARSE JUN 16 16:00:00 N dvp_shstamm_medium => +DATA/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/COPY_FILE.457.1043236225 DATAFILE MIRROR COARSE JUN 16 16:00:00 N dvp_shstamm_small => +DATA/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/COPY_FILE.435.1043228731 DATAFILE MIRROR COARSE JUN 16 16:00:00 N dvp_stamm_medium => +DATA/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/COPY_FILE.458.1043253433 DATAFILE MIRROR COARSE JUN 16 16:00:00 N dvp_stamm_small => +DATA/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/COPY_FILE.479.1043253679
Déjà là premier malaise : il me demande de créer au préalable les utilisateurs... mais sans les tablspaces, il faut les créer sur USERS ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part impdp mondvp/***@//oradvp-scan:1521/DBCIBLE DIRECTORY=DBCIBLE DUMPFILE=dvp.dmp logfile=impDvp.log TRANSPORSPORT_DATAFILES=+data/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp_index_small,+data/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp_shindex_small,+data/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp_shstamm_medium,+1F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp_shstamm_small,+data/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp_stamm_medium,+data/DBCIBLE/A3FE053AFE94D0AFA9D/DATAFILE/dvp_stamm_small
Si je le fais, l'ordre passe mais crash
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Import: Release 19.0.0.0.0 - Production on Tue Jun 16 16:57:09 2020 Version 19.6.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Master table "MONDVP"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded Source time zone is +01:00 and target time zone is +02:00. Starting "MONDVP"."SYS_IMPORT_TRANSPORTABLE_01": MONDVP/********@//oradvp-scan:1521/DBCIBE DIRECTORY=DBCIBLE DUMPFILE=dvp.dmp logfile=impDvp.log TRANSPORT_DATAFILES=+data/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp_index_small,+data/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/rota/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp_shindex_small,+data/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp_shstamm_medium,81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp_shstamm_small,+data/DBCIBLE/A81F4A4BE83E2F3FE053AFE94D0AFA9D/DATAFILE/dvp_stamm_medium,+data/DBCIBLE/F3FE053AFE94D0AFA9D/DATAFILE/dvp_stamm_small Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK ORA-39123: Data Pump transportable tablespace job aborted ORA-19721: Cannot find data file with absolute file number 23 in tablespace dvp_BLOB Job "MONDVP"."SYS_IMPORT_TRANSPORTABLE_01" stopped due to fatal error at Tue Jun 16 16:57:18 2020 elapsed 0 00:00:07
Partager