Import - Export di un database Oracle

Programmazione Web e Database Visite: 22948
document_2 Import - Export di un database Oracle
Vediamo come, da linea di comando, si possano eseguire procedure di Export e di Import per un database Oracle.

Vediamo come si possa fare sia la export che la import di un database Oracle. I seguenti comandi sono validi a partire da Oracle 8 fino a Oracle 9 (dovrebbero essere validi anche per le versioni successive di Oracle senza alcun problema).

-----------------------
EXPORT ORACLE
-----------------------
Per prima cosa vediamo gli step della export.
1. Fare l’export, da riga di comando dos, di tutti gli oggetti gestiti da un utente (in questo caso l'utente si chiama myuser, e il SID del Database oracle è ORA9):

C:\>exp system/manager@ORA9 file=dbmyuser.dmp owner=myuser

2. creare un file sql in cui siano presenti i commandi per rigenerare gli indici sul Database (in questo caso l'utente di origine si chiama myuser e quello di destinazione myuser2):


C:\>imp system/manager@ORA9 file=dbmyuser.dmp fromuser=myuser touser=myuser2 indexfile=dbmyuser-indexes.sql


----------------------------
IMPORT ORACLE

----------------------------
Vediamo ora gli step della import.
1. Assicurarsi che il tablespace prima e poi l'utente del database che si sta importando vengano cancellati e ricreati.
Il tutto può essere fatto da SqlPlus:

sqlplus system/manager@ora9

La sintassi del comando di cancellazione dell'utente e del tablespace è:

drop user [nome_utente_da_cancellare] cascade;
drop tablespace [nome_utente_da_cancellare];

Il file del tablespace va eliminato anche a mano.


La sintassi per la creazione del tablespace è:
create tablespace [come_nome_utente] logging datafile 'C:/oracle/oradata/ORA9/come_nome_utente.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;


La sintassi del comando di creazione è

create user [nome_utente] identified by [pwd_utente] default tablespace [nome_tblspace] quota unlimited on [nome_tblspace];


La sintassi del comando per dare i diritti all'utente è:

grant create session, create sequence, create procedure, create table, create trigger, create view, create any index to [nome_utente];


Effettuare la commit delle operazioni eseguite:

commit;



2. Importare il database senza creare gli indici SQL (fromuser è l'utente originale il touser è l'utente destinatario, fare attenzione che il file da importare db.dmp sia visibile):


imp system/manager@ora9 file=db.dmp fromuser=ORIGINALUSER touser=DESTINATIONUSER indexes=N commit=Y ignore=Y log=mylog.txt


3. sostituire nel file sql degli indici, il nome del tablespace originario con quello del tablespace di arrivo.
Inoltre, controllare che in tale file ci sia la riga:

CONNECT UTENTE/PASSWORD@ora9;

Cioè all’inizio vengono specificati i parametri della connessione. Fare attenzione alle maiuscole: nome e password vanno in caratteri maiuscoli!!!

4. ricreare gli indici lanciando l'apposito file da SQLPLUS con l'utente dello specifico tablespace e non più come system:

C:\> sqlplus myuser/myuser
sql> @dbmyuser-indexes
oppure
sql> @c:\dbmyuser-indexes.sql