Імпортуйте файл DMP Oracle у свіжу установку Oracle


30

Клієнт надіслав нам базу даних Oracle, на яку нам потрібно перевірити. Ми не використовуємо Oracle або не маємо жодних внутрішніх експертних знань.

Нам потрібно налаштувати базу даних, щоб ми могли підключитися до неї та налагодити проблему.

Я зробив нову установку Oracle 9 (версія, яку працює клієнт) та інструменти управління.

За все життя я не можу змусити його імпортувати дані. Це не повинно бути таким складним. Я, мабуть, щось не так.

Я спробував:

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

і отримав:

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.

Але нічого не відображається в менеджері, що стосується таблиць у будь-якій схемі, і я на своєму розумі закінчую.


Дякую, точна проблема тут. Отримав звалище оракула, і нам доведеться імпортувати. Надзвичайно протиінтуїтивний порівняно з, ну, практично будь-якою іншою системою баз даних
namezero

Відповіді:


28

Спочатку потрібно створити користувача (або схему)

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

Потім ви можете використовувати комутатори fromuser=та touser=IMP для імпорту даних у новий користувач / схему:

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

Сподіваюся, що це допомагає!


ORA-65096: недійсний загальний користувач або ім’я ролі
Квасі

12

Створювати таблиці як SYS або SYSTEM в Oracle не часто, оскільки ці два облікові записи є адміністраторами.

Помилка означає, що ваш клієнт створив таблиці як користувач ABCDE.

Ви повинні створити цього користувача перед імпортом, а потім імпортувати дані як цього користувача,

Це повинно усунути помилку, оскільки експортований файл містить дозволи та іншу інформацію, пов’язану з користувачем ABCDE, яка не існує в базі даних.

Перевірте це питання, щоб отримати додаткові підказки: Як визначити схеми в експортному файлі Oracle Data Pump Data Pump.


7

Спочатку потрібно створити користувача "ABCDE"

Щось на зразок

У SQL * PLUS:

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

Існує кілька мільйонів варіантів "створити користувача", але це використовує значення за замовчуванням.


3

Чи надав клієнт інформацію про те, як вони генерували дамп-файл? Зокрема, ви впевнені, що це повний експорт, а не експорт на рівні схеми, експорт на рівні табличного простору або експорт на рівні таблиці?


У мене пов'язане питання. Чи готові ви прокоментувати це? Ось посилання: dba.stackexchange.com/questions/130515/…
CodeMed

3

Замість того, щоб "sys / password AS SYSDBA", спробуйте "system / password".

Інструмент Oracle вимагає того ж користувача, щоб імпортувати, як створений експорт, навіть якщо sys є "всім потужним" користувачем.


1

Було подано попередження про те, що дані, які ви імпортуєте, були фактично експортовані користувачем SYS як файл .dmo. Спробуйте це..

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

dbname - ім'я бази даних, яке ви вказали


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

1
Ви повинні уточнити свою відповідь, пояснивши, як це працює, які параметри є, що насправді виходить за межі лише командного рядка.
Макс Вернон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.