Импортируйте файл Oracle DMP в Fresh-установку oracle

30

Клиент отправил нам базу данных Oracle, с которой мы должны проверить. Мы не используем 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.

Но в менеджере ничего не отображается, кроме таблиц в любой схеме, и я в своем уме.

RolandoMySQLDBA
источник
Спасибо, точная проблема здесь. Есть свалка оракула, и мы должны импортировать. Чрезвычайно нелогично по сравнению с практически любой другой системой баз данных
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

В Oracle не принято создавать таблицы как SYS или SYSTEM, поскольку эти две учетные записи являются администраторами.

Ошибка означает, что ваш клиент создал таблицы как пользователь ABCDE.

Вы должны создать этого пользователя перед импортом, затем вы должны импортировать данные как этот пользователь,

Это должно устранить ошибку, поскольку экспортированный файл содержит разрешения и другую информацию, относящуюся к пользователю ABCDE, которой нет в базе данных.

Проверьте этот вопрос для дополнительных советов: Как определить схемы в файле экспорта Oracle Data Pump.

Zendar
источник
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 является «всемогущим» пользователем.

dacracot
источник
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
Вы должны уточнить свой ответ, объяснив, как это работает, каковы параметры, что-нибудь действительно за пределами командной строки.
Макс Вернон