paolo@bimodesign.com | +34 608 61 64 10

DB Relational

        

Comandi utili Oracle per creare ed importare un DB

In questo articolo illustro alcuni comandi Oracle utili, per effettuare una creazione ed un import di dati su un database Oracle, per la versione 10 (dovrebbero comunque essere valide anche per le altre versioni). Le istruzioni sono state eseguito su ambiente DOS.

1) Creare le tablesapces
Collegarsi a Sql*Plus come system/manager
Creare una o piu' tablespaces, usando una sintassi del tipo

CREATE TABLESPACE "TS_PAOLO_DATI" 
    LOGGING 
    DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\TS_PAOLO_DATI.ora' SIZE 1000M 
    EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE "TS_PAOLO_INDX" 
    LOGGING 
    DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\TS_PAOLO_INDX.ora' SIZE 1250M 
    EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE "TS_PAOLO_DATI" 
    LOGGING 
    DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\TS_PAOLO_DATI_BCK.ora' SIZE 1000M 
    EXTENT MANAGEMENT LOCAL;


2) Crea gli utenti

CREATE USER testpaolo IDENTIFIED BY testpaolo
DEFAULT TABLESPACE TS_PAOLO_DATI;

ALTER USER testpaolo
QUOTA UNLIMITED ON TS_PAOLO_INDX;

grant connect,resource,dba to testpaolo;


3) Eseguire l'import
Scompattare i files .zip e quindi avremo un file .dmp e da linea di comando

C:> IMP nomeUtente/Password

EXPDAT.DMP > C:\PATH_DEL_FILE\PAOLO.DMP

Dimensione buffer di inserimento (dim. minima 8192) 30720> (DAI INVIO)
Solo elenco del contenuto del file di importazione (si/no): no >(DAI INVIO)
Ignora errori in creazione dovuti all'esistenza dell'oggetto (si/no): no > (DAI INVIO)
Importa autorizzazioni (si/no): si >(DAI INVIO)
Importa dati di tabella (si/no): si >(DAI INVIO)
Importare l'intero file di esportazione (si/no): no >(DAI INVIO)
Nomeutente: PAOLO


4) Drop utente
Nel caso fosse necessario ricreare tutto, eseguire il comando drop

DROP USER PAOLO CASCADE;

e quindi ripartire dal punto 2)
Di seguito altre istruzioni utili

5) Ridimensionare le Tablespace(ControlFile)

select tablespace_name, file_name, autoextensible
from dba_data_files
where tablespace_name = 'TS_PAOLO_DATI'; 

// e quindi dopo aver prelevato il nome del control file

ALTER DATABASE
DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\TS_PAOLO_DATI.ora' RESIZE 5M


6) Drop delle Tablespace

DROP TABLESPACE TS_PAOLO_DATI INCLUDING CONTENTS AND DATAFILES;


Infine vi consiglio la lettura di questi due link, che riguardano la frammentazione dei dati in una tablespace
Link 1
Link 2