Как я могу импортировать или открыть файл.dmp?
Обновить:
Я попробовал команду impdp и дал мне понять, что он не может создать пользователя. Я также пытался создать пользователя
Я никогда не использовал базу данных оракула раньше. У меня есть файл.dmp, который имеет 50 ГБ. Я не знаю, как он был экспортирован или из какой версии он был экспортирован. Я скачал oracle 12c realease 2 и попытался выполнить импорт, но я получаю сообщение об ошибке ".dmp может быть файлом дампа экспорта Data Pump". Что мне нужно сделать, чтобы я мог запускать sql запросы к нему в конце концов. Пожалуйста, смотрите прикрепленное изображение.
ОБНОВЛЕНИЕ: Я попробовал команду: IMP SYSTEM/ пароль ПОКАЗАТЬ =Y ФАЙЛ =DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.dmp fromuser=SYSTEM touser=SYSTEM
Он дал мне сообщение о том, что импорт успешно завершен с предупреждениями. что это делает? Также, где я могу просмотреть данные, если они импортированы?
2 ответа
В sqlplus как СИСТЕМА:
CREATE DIRECTORY IMPDIR as 'C:\Users\negink\Documents\databasewrigley';
вернуться в командную строку:
impdp SYSTEM/Password DUMPFILE=IMPDIR:DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.dmp logfile=IMPDIR:DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.log FULL=Y
когда вы закончите, вы можете удалить объект DIRECTORY
в базе данных CDB (как в вашем случае) это не будет работать, если вы предварительно не создадите всех пользователей и роли в SQLPLUS после выполнения этой команды:
alter session set "_ORACLE_SCRIPT"=true;
create user x identified by pwdx;
create user y identified by pwdy;
create role r1;
create role r2;
...
В противном случае вы можете создать PDB внутри CDB и импортировать файл DMP в PDB. В этом случае вам нужно изменить соединение в команде IMPDP следующим образом (измените SYSTEM/Password на SYSTEM/Password @ // localhost / pdb_name):
impdp SYSTEM/Password@//localhost/pdb_name DUMPFILE=IMPDIR:DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.dmp logfile=IMPDIR:DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.log FULL=Y
Прежде всего, вы должны использовать impdp вместо imp. И не забывайте делать резервные копии, прежде чем делать что-либо. Кроме того, у вас должен быть файл dmp в локальном каталоге вашего сервера. Я видел людей, пытающихся импортировать файлы dmp, расположенные на жестком диске их компьютера. Это не так, как все работает.
Я рекомендую вам отбросить схему, если вы импортируете в существующую схему для лучших результатов.
Чтобы удалить существующую схему, войдите в sqlplus с учетной записью администратора
имя пользователя / пароль sqlplus @connect_identifier
Затем вы можете использовать эту команду для удаления схемы:
DROP USER <SCHEMA_NAME> CASCADE;
Запросите вашу БД, чтобы увидеть, определен ли каталог насоса данных
SELECT directory_name, directory_path FROM dba_directories WHERE directory_name='DATA_PUMP_DIR'
Если каталог не определен, используйте эту команду для определения (кстати, "D:\orcl12" - это мой путь к экземпляру оракула, вы должны использовать свой собственный путь)
CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS 'D:\orcl12c/admin/<ORA_INSTANCE_NAME>/dpdump/';
Выйдите из sqlplus в командную строку и запустите impdp с правами администратора (убедитесь, что в исходном каталоге нет другого файла журнала с таким же именем - в этом случае операция будет прервана)
impdp имя пользователя / пароль @ каталог_соединения_соединения =DATA_PUMP_DIR dumpfile=filename.dmp logfile=filename.log
Если операция прошла успешно, вам, возможно, придется обновить пользовательские типы данных вручную, потому что они импортируются неправильно.