Zaimportuj plik Oracle DMP do nowej instalacji Oracle

30

Klient przesłał nam bazę danych Oracle, z którą musimy przetestować. Nie korzystamy z Oracle ani nie posiadamy specjalistycznej wiedzy Oracle.

Musimy skonfigurować bazę danych, abyśmy mogli się z nią połączyć i debugować problem.

Zrobiłem nową instalację Oracle 9 (wersji uruchomionej przez klienta) i narzędzi zarządzania.

Przez całe życie nie mogę zmusić go do zaimportowania danych. To nie powinno być takie skomplikowane. Coś nie tak.

Próbowałem:

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

i dostał:

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.

Ale nic nie pojawia się w menedżerze, jeśli chodzi o tabele w dowolnym schemacie, a ja jestem na ukończeniu.

RolandoMySQLDBA
źródło
Dzięki, dokładny problem tutaj. Mam zrzut oracle i musimy zaimportować. Niezwykle intuicyjny w porównaniu do, właściwie, praktycznie każdego innego systemu baz danych
namezero

Odpowiedzi:

28

Najpierw musisz utworzyć użytkownika (lub schemat)

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

Następnie możesz użyć przełączników fromuser=i touser=IMP, aby zaimportować dane do nowego użytkownika / schematu:

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

Mam nadzieję, że to pomaga!

Andrzej
źródło
ORA-65096: nieprawidłowa nazwa użytkownika lub roli
Kvasi
12

Tworzenie tabel jako SYS lub SYSTEM w Oracle nie jest powszechne, ponieważ te dwa konta są administratorami.

Błąd oznacza, że ​​klient utworzył tabele jako użytkownik ABCDE.

Przed zaimportowaniem należy utworzyć tego użytkownika, a następnie zaimportować dane jako ten użytkownik,

Powinno to wyeliminować błąd, ponieważ wyeksportowany plik zawiera uprawnienia i inne informacje związane z użytkownikiem ABCDE, który nie istnieje w bazie danych.

Sprawdź to pytanie, aby uzyskać dodatkowe wskazówki: Jak określić schematy w pliku eksportu Oracle Data Pump.

zendar
źródło
7

Najpierw musisz utworzyć użytkownika „ABCDE”

Coś jak

W SQL * PLUS:

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

Istnieje wiele opcji na „utwórz użytkownika”, ale użyłoby to ustawień domyślnych.

Nick Pierpoint
źródło
3

Czy klient podał szczegóły, w jaki sposób wygenerował plik zrzutu? W szczególności, czy jesteś pewien, że jest to pełny eksport, a nie eksport na poziomie schematu, eksport na poziomie obszaru tabel lub eksport na poziomie tabeli?

Justin Cave
źródło
Mam powiązane pytanie. Czy chcesz to skomentować? Oto link: dba.stackexchange.com/questions/130515/…
CodeMed
3

Zamiast „sys / password AS SYSDBA”, spróbuj „system / hasło”.

Narzędzie Oracle wymaga tego samego użytkownika do importu, który utworzył eksport, mimo że sys jest „wszechmocnym” użytkownikiem.

dakrakot
źródło
1

Ostrzegano, że importowane dane zostały w rzeczywistości wyeksportowane przez użytkownika SYS jako plik .dmo. Spróbuj tego..

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

dbname to nazwa bazy danych, którą podałeś


źródło
0
c:\\ imp database name/password@oracle9i file=xyz,dmp grants=n ignore=y 
  fromuser=database name touser=database name
Vikas
źródło
1
Powinieneś wyjaśnić swoją odpowiedź, wyjaśniając, jak to działa, jakie są parametry, wszystko tak naprawdę poza wierszem poleceń.
Max Vernon