Transportable Tablespaces

E' una caratteristica dei tablespace che permette ad un tablespace di essere trasportato da un db ad un altro in maniera più veloce rispetto ad export/import o copiare le righe.
Viene utilizzato per
- Database migrations
- Condividere il tablespace con db remoti
- TSPITR
- Archiviare dati da un db ad un altro
- Export e import di partizioni.


Durante il processo di trasporto il tbs deve essere in modalità read-only.
Non si può trasportare il tbs System o oggetti posseduti da sys.

1) Il db sorgente e destinazione devono avere lo stesso character set e national character set.

2) Inoltre devono avere lo steso endian format altrimenti usare il comando Rman di conversione.

 select d.platform_name "Source", t.platform_name "Compatible Targets", endian_format
 from v$transportable_platform t, v$database d
 where t.endian_format = 
 (select endian_format
 from v$transportable_platform t, v$database d
 where d.platform_name = t.platform_name)
   
"Endian format" è legato all'architettura hardware usata, e indica la modalità con cui i calcolatori immagazzinano in memoria dati maggiori dei byte (es. word). Ha influenza nella decodifica delle stringhe di caratteri multy-byte come UTF8.

3) Gli oggetti all'interno del tbs non devono contenere riferimenti ad altri tbs.
Ad esempio se si vuole trasportare il tablespace TS_PEPT_DATA
eseguire il comano
SQL> exec dbms_tts.transport_set_check('TS_PEPT_DATA');

Verificare che non ci siano errori.
SELECT * FROM TRANSPORT_SET_VIOLATIONS;

ORA-39908: L'indice PIP.T1401R_ACOL_PK nella tablespace TS_PIP_INDEX applica i vincoli primari  della tabella PIP.T1401R_ACOL nella tablespace TS_PIP_DATA.
ORA-39907: L'indice PIP.T1401R_ACOL_COGNOME_IDX nella tablespace TS_PIP_INDEX punta alla tabella PIP.T1401R_ACOL nella tablespace TS_PIP_DATA.

Quindi per eliminare i suddetti errori, occorre effettuare il rebuild degli indici sul tablespace TS_PIP_DATA.


4) Generare un tasportable tablespace set
   a) impostare i tablespace read-only
   b) usare datapump per esportare i tbs
   c) usare Rman per la conversione endan se necessario

5) Trasferire il tbs sul db target ed effettuare l'import con datapump.

Post popolari in questo blog

Create e Drop Pluggable Database

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione