› Fóruns › Banco de dados Oracle › Duvida DATAPUMP › Duvida DATAPUMP
Olá DOUG
Não sei já conseguiu resolver esse problema mas já aconteceu algo semelhante comigo e consegui resolver usando rebuild em index e move nas tables.
Eu tinha um schema com várias tabelas já definido seu storage initial 500mb e mesmo que no exp colocasse o parâmetro rows=n sempre me criava todas as tabelas com seu initial a 500mb e somente depois de o imp realizado eu reorganizava os index e as tables assim já definia todas as tabelas com 100kb desta forma conseguia diminuir.
Vou postar o meu procedimento de como consegui resolver esse problema.
Obs: Só usar o parâmetro IGNORE=y se seu schema já tiver as tabelas identicas as que vai importar.
exp schema/schema@db file=file_name.dump log=exp_file_name.log full=y
imp schema/schema@db file=file_name.dump log=imp_file_name.log tablespaces=n trasport_tablespace=n ignore=y
Após importação use o select abaixo para diminuir e organizar as tabelas e index.
— Este select vai te retornar a informação do tamanho de todas as suas Tabelas e Index referente ao schema definido, eguarde o valor todal que aparece na coluna MB para comparar no fuinal.
SELECT t1.owner, SUM (t1.BYTES / 1024 / 1024) MB
FROM dba_segments t1
WHERE t1.BYTES / 1024 / 1024 > 5
AND t1.segment_type IN (‘TABLE’, ‘INDEX’)
AND owner = ‘SCHEMA’ — Definir aqui o schema
GROUP BY t1.owner
ORDER BY 2 DESC
— Este select vai gerar os comando DDL para Tabelas
SELECT ‘ALTER TABLE ‘
||owner||’.’||segment_name
||’ move STORAGE (INITIAL 100K);’
FROM dba_segments
WHERE owner=’SCHEMA’ — Qui coloque o nome do seu schema
AND segment_name NOT LIKE ‘%0%’
AND segment_type=’TABLE’;
— Este select vai gerar os comando DDL para Index
SELECT ‘ALTER INDEX ‘
||owner||’.’|| segment_name
||’ rebuild STORAGE (INITIAL 100K);’
FROM dba_segments
WHERE owner = ‘SCHEMA’ — Qui coloque o nome do seu schema
AND segment_name NOT LIKE ‘%0%’
AND segment_type = ‘INDEX’
Agora é só executar os scrips gerados por esses selects e assim poderá fazer novamente o exp com os tamanhos redefinidos.
Execute novamente o select para ter ver o quanto de espaço foi diminuido
Foi assim que consegui resolver o problema de espaço em schemas.