Эта проблема:
Я пытался восстановить этот файл дампа, но, к сожалению, тот, кто выполнял экспорт, не прояснил, какие пользователи, привилегии и роли требуются для базы данных.
Поэтому я подумал, что просто создам случайного пользователя, импортирую его туда, посмотрю на ошибки и посмотрю, что я могу сделать.
В процессе импорта Oracle запросила system
имя пользователя и пароль. Я, подумав, что это просто необходимо для аутентификации, согласился.
Вместо этого произошло то, что таблицы базы данных файла дампа были восстановлены пользователю. system
.
Возможно, я мало что знаю об Oracle, но могу предположить, что это, вероятно, плохой. Действительно плохо. Я смотрю на Oracle SQL Developer и вижу МНОГО таблиц, которых, вероятно, не должно быть - я почти уверен, что ACCRUALRULE не является системной таблицей Oracle.
Как это исправить? Есть ли способ сбросить пользователя system
вернуться к настройкам по умолчанию? Мне бы очень не хотелось вручную избавляться от каждого стола, особенно учитывая, что я не знаю, какие из них должны там оставаться.
Спасибо.
Моя система:
Если у меня нет резервной копии и Flashback отключен, я бы сделал что-то вроде этого:
select 'drop table ' || table_name || ' cascade constraints purge;'
from dba_tables
where table_name in (
select object_name
from dba_objects
where owner = 'SYS'
and object_type = 'TABLE'
and created > 'DATE-OF-IMPORT-HERE');
Конечно, вам нужно дважды проверить перед запуском этих DDL (ищите системные таблицы, у вас не должно быть много их, созданных после импорта). И повторить это для других объектов.
И конечно же тест и бэкап!
Удалите созданные объекты вручную (убедившись, что они действительно созданы из дампа) или восстановите из резервной копии ...
PS: Сделайте резервную копию и проверьте эту резервную копию на другой машине или в виртуальной машине, прежде чем что-либо делать с SYS !!!
Если у вас включен ретроспективный просмотр и архивный журнал, вы можете выполнить ретроспективный возврат базы данных на момент времени до импорта с помощью RMAN.
Oracle Flashback в "Перемотка базы данных с помощью Flashback Database"