Importa un file DMP Oracle in una nuova installazione di Oracle


30

Un client ci ha inviato un database Oracle che dobbiamo testare. Non utilizziamo Oracle o non abbiamo alcuna competenza Oracle interna.

Dobbiamo configurare il database in modo da poterci connettere e debug di un problema.

Ho eseguito una nuova installazione di Oracle 9 (la versione in esecuzione sul client) e gli strumenti di gestione.

Per la mia vita, non riesco a farlo importare i dati. Non dovrebbe essere così complicato. Devo sbagliare qualcosa.

Ho provato:

imp 'sys/password AS SYSDBA' file=c:\database.dmp full=yes log=implog.txt

e ottenuto:

Connected to: Personal Oracle9i Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

Export file created by EXPORT:V09.02.00 via conventional path

Warning: the objects were exported by SYSTEM, not by you

import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
. importing SYSTEM's objects into SYS
. importing ABCDE's objects into ABCDE
IMP-00003: ORACLE error 1435 encountered
ORA-01435: user does not exist
Import terminated successfully with warnings.

Ma nel gestore non viene visualizzato nulla per quanto riguarda le tabelle in qualsiasi schema e sono alla fine.


Grazie, problema esatto qui. Ho una discarica dell'oracolo e dobbiamo importare. Estremamente controintuitivo rispetto, praticamente, a qualsiasi altro sistema di database
namezero del

Risposte:


28

Dovrai prima creare un utente (o uno schema)

C:\>sqlplus system/password

SQL> create user CLIENT_TEST identified by client_test_password;
SQL> grant connect, unlimited tablespace, resource to CLIENT_TEST;
SQL> exit

Quindi è possibile utilizzare le opzioni fromuser=e touser=IMP per importare i dati nel nuovo utente / schema:

C:\>imp system/password FROMUSER=ABCDE TOUSER=client_test file=c:\database.dmp full=yes

Spero che sia d'aiuto!


ORA-65096: nome utente o ruolo comune non valido
Kvasi,

12

Non è comune creare tabelle come SYS o SYSTEM in Oracle, poiché questi due account sono amministratori.

Errore significa che il client ha creato le tabelle come utente ABCDE.

Devi creare quell'utente prima dell'importazione, quindi importare i dati come tale utente,

Ciò dovrebbe eliminare l'errore perché il file esportato contiene autorizzazioni e altre informazioni relative all'utente ABCDEche non esiste nel database.

Controlla questa domanda per ulteriori suggerimenti: Come determinare gli schemi all'interno di un file di esportazione Oracle Data Pump.


7

Devi prima creare l'utente "ABCDE"

Qualcosa di simile a

In SQL * PLUS:

create user ABCDE identified by password;
grant connect, resource to ABCDE;

Ci sono un milione di opzioni su "crea utente" ma questo userebbe le impostazioni predefinite.


3

Il client ha fornito i dettagli di come ha generato il file di dump? In particolare, sei sicuro che si tratti di un'esportazione completa piuttosto che di un'esportazione a livello di schema, un'esportazione a livello di tablespace o un'esportazione a livello di tabella?


Ho una domanda in merito. Sei disposto a commentarlo? Ecco il link: dba.stackexchange.com/questions/130515/…
CodeMed

3

Invece di "sys / password AS SYSDBA", prova "system / password".

Lo strumento Oracle richiede l'importazione dello stesso utente creato dall'esportazione, anche se sys è l'utente "onnipotente".


1

È stato fornito un avviso riguardo al fatto che i dati che si stanno importando sono stati effettivamente esportati dall'utente SYS come file .dmo. Prova questo..

C:\oracle\ora92\bin>imp sys/pwd@dbname file=c:\database.dmp full=yes

dbname è il nome del database che hai fornito


0
c:\\ imp database name/password@oracle9i file=xyz,dmp grants=n ignore=y 
  fromuser=database name touser=database name

1
Dovresti chiarire la tua risposta spiegando come funziona, quali sono i parametri, qualsiasi cosa al di là di una semplice riga di comando.
Max Vernon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.