Excluí vários dados antigos de um esquema, incluindo dados BLOB, e depois tentei reduzir e compactar tudo. Consegui reduzir todas as tabelas (habilitar movimento de linha, diminuir espaço compacto, desabilitar movimento de linha), exceto a coluna BLOB, que é armazenada em um segmento separado:
SELECT
segment_name,
SUM(bytes) / 1024 / 1024 / 1024 AS "GB_SIZE"
FROM
dba_segments
WHERE
owner = 'MY_OWNER'
GROUP BY
segment_name
ORDER BY
SUM(bytes) / 1024 / 1024 / 1024 DESC;
Segmento em questão:
SEGMENT_NAME GB_SIZE
SYS_LOB0000072887C00005$$ 0,35955810546875
Nota: este é um banco de dados de teste, em prod DB, isso é cerca de 660 GB.
Quando tento reduzi-lo, recebo este erro:
ALTER TABLE my_table MODIFY LOB ( my_blob ) ( SHRINK SPACE );
Error starting at line : 1 in command -
alter table my_table modify lob (my_blob) (shrink space)
Error report -
ORA-10635: Invalid segment or tablespace type
10635. 00000 - "Invalid segment or tablespace type"
*Cause: Cannot shrink the segment because it is not in auto segment space
managed tablespace or it is not a data, index or lob segment.
*Action: Check the tablespace and segment type and reissue the statement
Detalhes do segmento:
SELECT
*
FROM
dba_segments
WHERE
segment_name = 'SYS_LOB0000072887C00005$$';
Detalhes relevantes:
- Tipo de segmento: LOBSEGMENT
- Subtipo de segmento: SECUREFILE
- Nome do tablespace: MY_DATA
Detalhes do espaço de tabela:
SELECT
*
FROM
dba_tablespaces
WHERE
tablespace_name = 'MY_DATA';
Detalhes relevantes:
- Gerenciamento de extensão: LOCAL
- Tipo de alocação: SISTEMA
- Gerenciamento de espaço de segmento: AUTO
Versão exata do Oracle:
Oracle Database 19c Enterprise Edition Versão 19.0.0.0.0 - Produção
Tanto quanto eu posso dizer, tudo está como deveria ser, então não tenho certeza do que está faltando.
A
SHRINK SPACE
opção não é compatível com LOBs Securefile.Você pode usar
DBMS_REDEFINITION
(principalmente online) ouALTER TABLE ... MOVE LOB (...)
(offline, a mesa é bloqueada durante a movimentação).ORA-10635: Erro de tipo de tablespace ou segmento inválido ao tentar reduzir SOA-INFRA LOB [To Free Tablespace] (Doc ID 2382484.1)