Em um banco de dados Oracle 12c, quero reorganizar um segmento LOB. Eu costumava seguir o sql para gerar o comando alter move:
select 'ALTER TABLE '||s.owner||'.'||l.table_name||' move to('||l.column_name||') store as (TABLESPACE NAME1);'
from dba_segments s, dba_lobs l
where s.segment_name = l.segment_name
and s.tablespace_name = 'NAME1'
and segment_type='LOBSEGMENT'
and partition_name is null;
O segmento de lob que quero reconstruir é de cerca de 200 Gb. Posso usar o mesmo tablespace em que o lob está? O espaço livre total nesse tablespace precisa ser de 200Gb? Durante a movimentação o lob fica travado?
Sim.
Não. Depende da quantidade de dados em seu segmento LOB. Se o seu segmento tiver 200 GB, mas você tiver apenas 5 GB de dados (porque o restante dos dados foi excluído), não precisará de 200 GB.
Não necessariamente. A partir do 12.2,
alter table
tem amove online
opção:A opção acima não está disponível em 12.1.