O Oracle 11gR2 exp não exporta algumas tabelas

4

Eu tenho um banco de dados Oracle 11g (11.2.0.1) em execução no Linux (x64). Dentro do banco de dados eu tenho um esquema e 33 tabelas para ele (todos no mesmo tablespace). Quando eu logar via sqlplus eu posso listar todas as tabelas via

SELECT OBJECT_NAME FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE';

Mas quando eu exporto o Tablespace usando

exp ... BUFFER=65536 FULL=N COMPRESS=N CONSISTENT=Y TABLESPACES=... FILE=...

Só exporta 24 das 33 tabelas. Eu tentei exportar as tabelas ausentes via

exp ... TABLES=<missing_table> ...

Mas então recebo um erro:

 EXP-00011: <schema>.<missing_table> does not exist

Como posso descobrir o que há de errado aqui?
Como posso exportar todas as tabelas?

ATUALIZAÇÃO:

Depois de seguir o conselho de Gary, encontrei a seguinte diferença entre as tabelas exportadas e ausentes. DDL de uma tabela exportada:

CREATE TABLE "MY_SCHEMA"."EXPORTED_TABLE" ( ... ) TABLESPACE "MY_TS" PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K BUFFER_POOL DEFAULT) LOGGING NOCOMPRESS

E agora o DDL de uma tabela não exportada:

CREATE  TABLE "MY_SCHEMA"."MISSING_TABLE" ( ... ) TABLESPACE "MY_TS" PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( BUFFER_POOL DEFAULT) LOGGING NOCOMPRESS

Os DDLs acima foram gerados pelo Enterprise Manager. Os criados com o sqlplus continham nenhuma seção de ARMAZENAMENTO para as tabelas que faltavam.

Descobri que as tabelas são exportadas quando eu as reorganizo e coloco o valor de STORAGE INITIAL em 64K.

Problema resolvido. (Esperançoso;))

    
por Tilo Prütz 20.05.2010 / 17:46

8 respostas

1

Faça um SELECT DBMS_METADATA.GET_DDL('TABLE','yourTableName') para uma das tabelas que funciona e outra que não funciona. Em seguida, jogue a diferença. (Observe que yourTableName faz distinção entre maiúsculas e minúsculas).

Pode ser algo como BLOBs / CLOBs ou partições em um espaço de tabela diferente, uma dependência em um TYPE pertencente a outro esquema que não está sendo exportado ...

    
por 22.05.2010 / 00:03
6

A partir do Oracle 11gR2 (11.2.0.1) existe um novo recurso: Criação de Segmento Diferido: a criação de uma tabela enviada é adiada até a primeira linha ser inserida. Isso resulta como tabelas vazias não sendo listadas em dba_segments e não sendo exportadas pelo utilitário exp.

A solução mais fácil é usar o utilitário expdp.

Se você tiver que usar o utilitário exp, você deve executar este comando para todas as suas tabelas vazias:

ALTER TABLE tablename ALLOCATE EXTENTS
    
por 12.04.2011 / 16:06
1

Existe uma tabela no banco de dados, mas você não pode exportá-la, a menos que aloque uma extensão para essa tabela….

Decorrido: 00: 00: 00.04 14:44:54 PIMUSER @ mdmqa > alter table RECORDAPPROVALHISTORY alocar extensão;

    
por 24.03.2011 / 21:23
1

Estou recebendo um erro semelhante e acho que também tem algo a ver com sinônimos.

Eu posso descrever a tabela específica no banco de dados e selecionar a partir dela (zero linhas). Eu também posso descrever a seleção do sinônimo público

Mas quando eu exporto essa tabela, eu recebo o 011 não existe erro, nome ou synoynm. Quando insiro uma linha (que resolve um problema), posso exportar via nome da tabela, mas não via sinônimo.

Claro, tudo isso costumava funcionar em 11.1

Primeiro eu ouvi falar do expdp. Vai olhar para isso

    
por 07.12.2011 / 17:49
0

são as tabelas nos mesmos espaços de tabela que você exporta? Verifique com esta consulta:

SELECT table_name, tablespace_name FROM user_tables
    
por 20.05.2010 / 18:05
0

É um novo recurso do Oracle11. apenas na edição Enterprise. A tabela vazia não será exportada.

    
por 09.07.2010 / 10:30
0

Sim, as tabelas existem no mesmo esquema. Algumas tabelas que não são exportadas contêm dados, apenas algumas tabelas estão lá, cuja contagem é zero, e todas contêm dados nelas.

Atenciosamente

    
por 28.10.2011 / 17:56
0

A extensão de alocação funciona. Você pode encontrar as tabelas com esta declaração:

select 'alter table '||table_Name||' allocate extent;' from user_Tables where temporary='N' and table_name not in (select segment_name from user_segments)

    
por 25.03.2013 / 11:40

Tags