EXPDP не распознает имена пользователей

Я пытаюсь запустить EXPDP в базе данных Oracle 19, но она не распознает ни одно из имен схемы, кроме sys.

select * from dba_users;

EXPDP не распознает имена пользователей

при запуске в Oracle SQL Developers возвращаются все пользователи, которых я ожидал увидеть, но тот же запрос, запущенный в sqlplus/as sysdba, возвращает множество записей, таких как прикрепленное изображение, в которых, похоже, отсутствуют какие-либо фактические данные о пользователе.

Я новичок в резервном копировании и экспорте баз данных, поэтому, скорее всего, я упускаю что-то очевидное, но не смог этого понять.

expdp username/password schemas=user_1 directory=DATA_PUMP_DIR dumpfile=export_08_07_2024.dmp logfile=export_08_07_2024_export.log

ORA-39001: неверное значение аргумента ORA-39170: Выражение схемы «USER_1» не соответствует ни одной схеме.

Я надеюсь настроить запуск раз в месяц и сохранять резервные копии, но пока мне не удалось заставить его работать.

--РЕДАКТИРОВАТЬ ДЛЯ БОЛЬШЕ ПОДРОБНОСТИ--

выберите dbid, name, cdb из базы данных v$; Выдает тот же результат в sqlplus, что и в SQL Dev, поэтому они должны просматривать одну и ту же базу данных.

expdp system/passwd Schemas=каталог user_1=DATA_PUMP_DIR dumpfile=export.dmp logfile=export.log ORA-39001: неверное значение аргумента ORA-39170: Выражение схемы «USER_1» не соответствует ни одной схеме.

Я попытался запустить его от имени системного пользователя, поскольку он не распознает учетную запись, которую я на самом деле пытаюсь экспортировать.

Как ни странно, я могу запустить его, используя exp вместо expdp, но он терпит неудачу, когда попадает в таблицу, которая ему не нравится. Таким образом, exp распознает пользователя/схему, а expdp — нет.

Это проблема с expdp или с выводом sqlplus? Если последнее, я думаю, что причина, по которой вы считаете, что детали отсутствуют, - это просто побочный эффект форматирования. sqlplus учитывает максимальную ширину каждого определенного типа данных, что создает огромные эффекты переноса из-за отсутствия полосы прокрутки. В сочетании с выводом имен столбцов в качестве заголовков вы в конечном итоге визуально видите почти только заголовки столбцов, а не данные. Данные, безусловно, есть, просто их нелегко просмотреть.

Paul W 23.07.2024 12:10

(продолжение)... Чтобы исправить, задайте ширину столбцов для очень широких столбцов с помощью команды col .. format a30 и т. д., установите длинный размер строки set linesize ... и выберите только те несколько столбцов, которые вам нужны, не выбирайте *. Обычно вы можете перенести его туда, где он будет хорошо читаем и не завернут. Однако это показывает, насколько нежелателен sqlplus в качестве инструмента специальных запросов. Его лучше всего использовать для выполнения сценариев в файлах, пакетных заданий и т. д.

Paul W 23.07.2024 12:10

Вы подключаетесь к той же базе данных? Я предполагаю, что SQL Developer подключен к PDB, а SQL*Plus подключается к CDB, если он видит разные данные. И expdp точно так же может быть подключение к неправильной БД; или пользователь, которого вы пытаетесь экспортировать, не имеет прав на экспорт другой схемы. Я не могу сразу вспомнить, какую ошибку это может вызвать, но есть ли у этого пользователя роль DATAPUMP_EXP_FULL_DATABASE?

Alex Poole 23.07.2024 17:12

Вы можете попробовать запустить select dbid, name, cdb from v$database как в SQL Developer, так и в SQL*Plus, чтобы проверить, являются ли они одной и той же базой данных или нет. Они должны совпадать, если они одинаковы.

kfinity 23.07.2024 17:38

выберите dbid, name, cdb из базы данных v$; Выдает тот же результат в sqlplus, что и в SQL Dev, поэтому они должны просматривать одну и ту же базу данных. expdp system/passwd Schemas=user_1 каталог=DATA_PUMP_DIR dumpfile=export.dmp logfile=export.log ORA-39001: неверное значение аргумента ORA-39170: выражение схемы 'USER_1' не соответствует ни одной схеме. Я попытался запустить его от имени системного пользователя, поскольку он не распознает учетную запись, которую я на самом деле пытаюсь экспортировать. Как ни странно, я могу запустить его, используя exp вместо expdp, но он терпит неудачу, когда попадает в таблицу, которая ему не нравится.

GMcS 24.07.2024 08:23
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
5
67
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

запустите следующий cmd из строки cmd.

expdp scott/****@db_name(имя PDB ex orclpdb) схемы=каталог Скотта=DATA_PUMP_DIR файл дампа=scott_07232024.dmp logfile=scott_07232024.log

Экспорт: выпуск 21.0.0.0.0 — выпуск во вторник, 23 июля, 16:27:44 2024 г. Версия 21.3.0.0.0

Авторские права (c) 1982, 2021, Oracle и/или ее дочерние компании. Все права защищены.

Подключено к: Oracle Database 21c Enterprise Edition, выпуск 21.0.0.0.0 — рабочая среда Запуск "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/********@orclpdb Schemas=scott Directory=JAGAN_DIR dumpfile=scott_07232024.dmp logfile=scott_07232024.log Тип объекта обработки SCHEMA_EXPORT/TABLE/TABLE_DATA Тип объекта обработки SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY Тип объекта обработки SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Тип объекта обработки SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS Тип объекта обработки SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Тип объекта обработки SCHEMA_EXPORT/STATISTICS/MARKER Тип объекта обработки SCHEMA_EXPORT/USER ...ТАК ДОЛЖНО до конца сценария Основная таблица «SCOTT». «SYS_EXPORT_SCHEMA_01» успешно загружена/выгружена.


Набор файлов дампа для SCOTT.SYS_EXPORT_SCHEMA_01: C:\JAGAN\ORACLE_SCRIPTS\SCOTT_07232024.DMP Задание "SCOTT"."SYS_EXPORT_SCHEMA_01" успешно завершено во вторник, 23 июля, 16:29:56. 2024 год истек 0 00:02:07.

Спасибо! Кажется, это приближает меня к решению. Теперь он отклоняет каталог data_pump_dir как недействительный, что означает, что он, по крайней мере, принимает имя пользователя/схемы! Я предполагаю, что мне нужно создать каталог DATA_PUMP_DIR где-нибудь, чтобы expdp мог его видеть, но не уверен, где expdp будет искать его по умолчанию.

GMcS 24.07.2024 08:39

да, необходимо создать DATA_PUMP_DIR.

Обратитесь к своей команде администраторов баз данных, чтобы создать каталог и предоставить разрешения для вашего каталога DATA_PUMP_DIR для пользовательской схемы.

Другие вопросы по теме