Экспорт отсутствующих таблиц базы данных Oracle

Я экспортировал экземпляр базы данных Oracle 11g (полный), не закрывая его, и обнаружил, что отсутствует более 400 таблиц (не экспортировались). Эта база данных используется приложением и, возможно, в ней есть пользователи.

Команда, которую я использовал, была

exp SYSTEM@db1 FULL=y FILE="C:\backup.dmp" GRANTS=y ROWS=y log="C:\backup.log" 

Не приведет ли его закрытие перед экспортом к пропуску всех этих таблиц?


person AuthenticReplica    schedule 26.04.2015    source источник
comment
Какую команду точно вы использовали для экспорта базы данных?   -  person a_horse_with_no_name    schedule 26.04.2015
comment
@a_horse_with_no_name Я использовал следующую команду: exp SYSTEM@db1 FULL=y FILE=C:\backup.dmp GRANTS=y ROWS=y log=C:\backup.log   -  person AuthenticReplica    schedule 26.04.2015
comment
экспорт невозможен, когда БД закрыта, как вы анализируете отсутствие таблиц (400+)?   -  person anudeepks    schedule 26.04.2015
comment
@anudeepks Я имею в виду выключение и повторный запуск в ограниченном режиме, чтобы убедиться, что пользователи не обращаются к базе данных. В базе данных моего приложения есть таблица, в которой хранятся все данные таблицы, поэтому я сверил этот список с таблицами, которые у меня есть.   -  person AuthenticReplica    schedule 26.04.2015
comment
Ваш опубликованный CL включает параметр log. Итак, вы проверили содержимое этого файла?   -  person APC    schedule 26.04.2015
comment
Можете ли вы выбрать имена отсутствующих таблиц и запустить SELECT object_name, object_type FROM dba_objects WHERE object_name in ( {your list} ). Возвращенные результаты запроса могут помочь вам/нам решить эту проблему.   -  person TenG    schedule 27.04.2015


Ответы (2)


exp не понимает создание отложенных сегментов и может не включать эти таблицы:

select owner, table_name from dba_tables where segment_created = 'NO' order by 1, 2;

Вы пробовали expdp вместо этого? exp устарел в версии 10g, хотя в новом инструменте есть ошибки, и обходной путь часто заключается в использовании exp. Если вам действительно нужно использовать exp, вам может понадобиться выполнить эту команду для таблиц:

alter table unexported_table allocate extent;
person Jon Heller    schedule 26.04.2015

Я была такая же проблема. В моем случае проблема заключалась в том, что в табличном пространстве не было свободного места (и оно не расширялось автоматически).

Решение состояло в том, чтобы увеличить размер табличного пространства с помощью следующей команды

ИЗМЕНИТЬ ФАЙЛ ДАННЫХ БАЗЫ ДАННЫХ '../stuff01.dbf' ИЗМЕНИТЬ РАЗМЕР 100M;

проверьте эту ссылку для получения дополнительной информации.

РЕКОМЕНДАЦИИ

  • Используйте AUTOEXTEND ON для табличного пространства.
  • В будущем используйте команды expdp и impdp, чтобы иметь больше подробностей в журналах.
person Pablishe    schedule 04.11.2016