2015-04-26 80 views
2

我已经导出了一个Oracle 11g数据库(完整)的实例而不关闭它,只发现有400多个表丢失(未导出)。 此数据库由应用程序使用,可能有用户。Oracle数据库导出缺少表

我使用的命令是

exp [email protected] FULL=y FILE="C:\backup.dmp" GRANTS=y ROWS=y log="C:\backup.log" 

会不会将其关闭出口,使其跳过所有这些表之前?

+0

什么是您用来导出数据库的** exact **命令? –

+0

@a_horse_with_no_name 我使用的命令是: exp SYSTEM @ db1 FULL = y FILE =“C:\ backup.dmp”GRANTS = y ROWS = y log =“C:\ backup.log” – AuthenticReplica

+0

无法导出当数据库关闭时,你如何分析表(400+)缺失? – anudeepks

回答

1

exp不理解deferred segment creation,可能并不包括这些表:

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; 
0

我有同样的问题。在我的情况下,问题是表空间没有更多的可用空间(并且没有自动扩展)。

的解决方案是使用下面的命令,以增加表空间大小

ALTER DATABASE DATAFILE '../stuff01.dbf' RESIZE 100M;

查看此link了解更多详情。

RECOMENDATIONS

  • 使用AUTOEXTEND ON的表空间。
  • 将来使用expdp和impdp命令以便在日志中获得更多详细信息。