PDA

View Full Version : importare .sql in oracle


mistergks
08-02-2017, 20:38
ho un database creato in un pc...
ora voglio passarlo su un altro pc e quindi una nuova installazione...
il dbms è oracle 11g express edition...tramite sql developer esporto il file .sql dal vecchio pc...
e non so come fare per importarlo sul nuovo!

ho provato a creare un nuovo foglio sql e incollare il contenuto del file .sql da importare ma mi da errore.
Uno tra tanti: "Report error -
ORA-01435: user does not exist
01435. 00000 - "user does not exist" "

come risolvo? ho provato anche tramite sql developer da file-data modeler-importa...
ma non vengono importate

les2
09-02-2017, 09:35
ciao, non ho capito.

hai già il db di arrivo e devi solo copiare delle parti? (nel caso devi creare l'utente con i permessi)
oppure devi creare anche il db?

pabloski
09-02-2017, 11:19
visto che il dbms e' oracle su entrambe le macchine, perche' non usare un dump? http://oracolodeidb.blogspot.it/2008/10/oracle-e-i-backup-parte-ii.html

mistergks
09-02-2017, 12:03
ciao, non ho capito.



hai già il db di arrivo e devi solo copiare delle parti? (nel caso devi creare l'utente con i permessi)

oppure devi creare anche il db?



Devo copiarlo tutto

mistergks
09-02-2017, 12:04
visto che il dbms e' oracle su entrambe le macchine, perche' non usare un dump? http://oracolodeidb.blogspot.it/2008/10/oracle-e-i-backup-parte-ii.html



Ho trovato anche il comando da interfaccia grafica in sql developer senza usare il prompt!
Va bene uguale?

pabloski
09-02-2017, 14:51
Ho trovato anche il comando da interfaccia grafica in sql developer senza usare il prompt!
Va bene uguale?

E' un IDE creato da Oracle per il suo DBMS, quindi suppongo implementati le medesime funzionalita' di sqlplus.

les2
09-02-2017, 14:52
Ciao,
se usi il comando è più veloce ;)
la guida di pabloski va benone :)

mistergks
09-02-2017, 17:04
Ciao,

se usi il comando è più veloce ;)

la guida di pabloski va benone :)



Ma cosi esporta tutto il database completo di dati!? Non ho capito

pabloski
10-02-2017, 08:32
Ma cosi esporta tutto il database completo di dati!? Non ho capito

si, il dump comprende schema e dati

mistergks
21-02-2017, 17:07
si, il dump comprende schema e dati



Ho provato ad effettuare il dump del database completo
Ho aperto sql developer e cliccato su view e poi DBA
Comparsa la finestra DBA, ho inserito connessione e ho avviato data pump export wizard. A quel punto ho selezionato database (dovevo fare schemi o tabelle?) e pare l'abbia creata..
Non ho capito come fare per salvare il dump e importarlo su un altro pc!
Non riesco a trovare il percorso del file

pabloski
22-02-2017, 11:04
A quel punto ho selezionato database (dovevo fare schemi o tabelle?)

dipende da cosa vuoi fare

schemi significa che esporta solo la struttura delle tabelle, senza i dati contenuti

riguardo il file non saprei dove lo mette, personalmente preferisco usare sqlplus da riga di comando

mistergks
22-02-2017, 12:00
dipende da cosa vuoi fare



schemi significa che esporta solo la struttura delle tabelle, senza i dati contenuti



riguardo il file non saprei dove lo mette, personalmente preferisco usare sqlplus da riga di comando



Voglio semplicemente trasferire tutto da un computer ad un altro computer e quindi nuova macchina e nuova installazione.
Sarebbe per una web application.
Ho provato ad esportare un file .sql ma non so se è il db completo.

mistergks
22-02-2017, 15:24
Voglio semplicemente trasferire tutto da un computer ad un altro computer e quindi nuova macchina e nuova installazione.
Sarebbe per una web application.
Ho provato ad esportare un file .sql ma non so se è il db completo.



Il data pump non so in quale cartella esporta...

pabloski
22-02-2017, 18:00
Ho provato ad esportare un file .sql ma non so se è il db completo.

Aprilo con un editor e vedi se ci sono anche le istruzioni DML.

mistergks
22-02-2017, 18:29
Aprilo con un editor e vedi se ci sono anche le istruzioni DML.

L'ho aperto e ci sono istruzioni DDL e c'è anche l'inserimento dei valori tipo INSERT TO. Ma come faccio a importare il file .sql? ho incollato tutto il file in un foglio bianco di sql developer e ho cliccato su "esegui script" ma ricevo una marea di errori tipo:

Report error -
ORA-01435: user does not exist
01435. 00000 - "user does not exist"
*Cause:
*Action:


comunque sono riuscito a trovare la directory e quindi ho esportato il database in un file .DMP
Ho preso il file (di circa 100 mb) e ho cercato di importarlo su oracle sql developer del nuovo computer...ma ricevo un errore:

Eccezione: ORA-39002: invalid operation
dbms_datapump.get_status(44...)
ORA-39002: invalid operation
ORA-39059: dump file set is incomplete
ORA-39246: cannot locate master table within provided dump files

Come posso risolvere?

pabloski
23-02-2017, 08:23
Nel primo caso dice che manca l'utente. Ovviamente devi ricreare lo stesso utente che avevi sull'altro dbms.

Nel secondo caso dice che mancano delle tabelle, quindi il dump non e' stato fatto correttamente.

Se usi la riga di comando, puoi usare i comandi EXP e IMP per gestire i dump.

EXP system/systempwd file=nomedump.dmp owner=utente_proprietario_db

IMP system/systempwd FILE=nomedump.dmp FROMUSER=utente_proprietario_db TOUSER=nuovo_utente_proprietario_db

utente_proprietario_db e nuovo_utente_proprietario_db possono benissimo coincidere, cioe' semplicemente crei il medesimo utente in entrambi i dbms

caso mai stessi testando l'operazione sullo stesso computer, tieni presente che l'importazione di un dump non elimina le tabelle preesistenti di un utente, per cui ti darebbe errore durante l'importazione...le tabelle vanno eliminate, oppure elimini direttamente l'utente e poi procedi a ricrearlo e successivamente all'importazione

mistergks
23-02-2017, 10:25
Nel primo caso dice che manca l'utente. Ovviamente devi ricreare lo stesso utente che avevi sull'altro dbms.

Nel secondo caso dice che mancano delle tabelle, quindi il dump non e' stato fatto correttamente.

Se usi la riga di comando, puoi usare i comandi EXP e IMP per gestire i dump.

EXP system/systempwd file=nomedump.dmp owner=utente_proprietario_db

IMP system/systempwd FILE=nomedump.dmp FROMUSER=utente_proprietario_db TOUSER=nuovo_utente_proprietario_db

utente_proprietario_db e nuovo_utente_proprietario_db possono benissimo coincidere, cioe' semplicemente crei il medesimo utente in entrambi i dbms

caso mai stessi testando l'operazione sullo stesso computer, tieni presente che l'importazione di un dump non elimina le tabelle preesistenti di un utente, per cui ti darebbe errore durante l'importazione...le tabelle vanno eliminate, oppure elimini direttamente l'utente e poi procedi a ricrearlo e successivamente all'importazione



Basta creare solo lo stesso utente e poi dovrebbe importare il tutto col file sql?
Quindi è come fare il dump?

Il dump è un unico file solitamente? Perche io prima non trovando la directory, ho esportato piu volte e ora che l'ho trovata ho notato che ci sono parecchi files.
Peró io ho preso quello piu recente

pabloski
23-02-2017, 12:18
Basta creare solo lo stesso utente e poi dovrebbe importare il tutto col file sql?
Quindi è come fare il dump?


Puoi creare un qualsiasi utente, cioe' puoi benissimo cambiare nome utente. L'importante e' che ti logghi con quell'username quando accedi per eseguire lo script SQL.

Il dump invece viene gestito da due utility di Oracle, che ti permettono di scegliere l'username da usare.

Entrambi i metodi fanno la stessa cosa, ma il dump e' binario, quindi piu' veloce. Ma se e' un db con pochi dati, uno vale l'altro.


Il dump è un unico file solitamente?


Si.


Perche io prima non trovando la directory, ho esportato piu volte e ora che l'ho trovata ho notato che ci sono parecchi files.
Peró io ho preso quello piu recente

No, dipende dalla quantita' di dati. Comunque un dump multifile e' facilmente riconoscibile per il fatto che i file hanno lo stesso nome e un suffisso numerico.

mistergks
23-02-2017, 16:37
Puoi creare un qualsiasi utente, cioe' puoi benissimo cambiare nome utente. L'importante e' che ti logghi con quell'username quando accedi per eseguire lo script SQL.



Il dump invece viene gestito da due utility di Oracle, che ti permettono di scegliere l'username da usare.



Entrambi i metodi fanno la stessa cosa, ma il dump e' binario, quindi piu' veloce. Ma se e' un db con pochi dati, uno vale l'altro.







Si.







No, dipende dalla quantita' di dati. Comunque un dump multifile e' facilmente riconoscibile per il fatto che i file hanno lo stesso nome e un suffisso numerico.



Ho messo lo stesso utente e ho eseguito lo script...
Peró ora mi da errori diversi.
Ha copiato le tabelle ma su alcune viste e trigger c'è una crocetta rossa.
Allego foto del log
https://uploads.tapatalk-cdn.com/20170223/2a02c4d87e8bce851d0059516e3166b5.jpg

pabloski
23-02-2017, 17:20
Manca qualcosa https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_smtp.htm#CHDHHBJD

mistergks
23-02-2017, 17:37
Manca qualcosa https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_smtp.htm#CHDHHBJD



Cosa? Puo essere che uso una porta diversa? O che vada modificato il file xml di configurazione?