- This topic has 4 replies, 2 voices, and was last updated 10 years, 1 month ago by rman.
-
AuthorPosts
-
29 de setembro de 2014 at 10:44 pm #107011WenderParticipant
Boa Tarde pessoal tudo blz?
Bom preciso de uma ajuda, recentemente fiz uma manutenção em algumas tablespace, e justamente na ultima tablespace após mover todos os segmentos para outro tablespace, ainda restaram 50 segmentos do tipo lobindex, logsegment e index na dba_segments para aquela tablespace.O problema que não consigo mover estes segmentos para a tablespace que foram movidos as tabelas, também não consigo encontrar a referência destes objetos para alguma tabela que tenha alguma coluna do tipo lob.
Esta são as 5 primeiras colunas da dba_segments de dois objetos:
owner segment_name partition_name segment_type segment_subtype
PRODDTA SYS_IL0000093593C00006$$ null LOBINDEX ASSM
PRODDTA SYS_IL0000093596C00005$$ null LOBINDEX ASSMAbraços.
29 de setembro de 2014 at 11:05 pm #107012rmanParticipant@Wender
Para encontrar a referencia consulte DBA_LOBS.
Esses segmentos me parece ser os INDEX de coluna CLOB/BLOB que são criados automaticamente.
Para gerenciamento de tablespace eu divido da seguinte forma:
- TABLESPACE DATA
- TABLESPACE INDEX
- TABLESPACE LOB
O tratamento para segmentos do tipo LOBSEGMENT e LOBINDEX é um pouco diferente. Não dá para mantê-los em tablespace separados, como por exemplo LOBINDEX na tablespace de INDEX e LOBSEGMENT na tablespace de DATA. Por isso mantenho uma tablespace separada para LOB.
Segue um artigo para mover os segmentos LOBSEGMENT E LOBINDEX.
http://decipherinfosys.wordpress.com/2007/11/21/moving-lob-column-to-a-different-tablespace/DETALHE IMPORTANTE: Cuidado ao movimentar esse tipo de segmento, isso provoca alteração do ROWID da tabela, isso invalida os INDEXES da tabela. Após mover esses segmentos é necessário recompilar os INDEXES. Eu já vi aplicações pararem por causa de INDEX invalido.
30 de setembro de 2014 at 1:00 am #107015WenderParticipant@rman
Irei fazer o procedimento hoje a noite no DB, bom isso foi um aprendizado pois não tinha conhecimento da dba_lobs, esta era minha dificuldade de movê-los pois não sabia a referência.
Obrigado amanha postarei se deu certo.
30 de setembro de 2014 at 6:19 am #107016WenderParticipant@rman
Boa Noite,
Fiz o procedimento, bom foi fácil conseguir achar a coluna da tabela do tipo lob para mover na dba_lobs, realmente os índices ficaram não utilizáveis, de qualquer forma fiz o rebuild e esta tudo normal.Obrigado,
Abraços.30 de setembro de 2014 at 3:16 pm #107017rmanParticipant@Wender
Segue a sintaxe do CREATE TABLE. Desta forma é possível dar nomes aos segmentos e especificar as tablespaces.
CREATE TABLE EMAIL_ATTACHMENTS(
ID NUMBER NOT NULL
,EMAIL_SENT_ID NUMBER NOT NULL
,ATTACHMENT CLOB NOT NULL
,ORDER_ATTACHMENT NUMBER NOT NULL
)
LOB(ATTACHMENT) STORE AS LOB_EMAIL_ATTACHMENTS_ATTACH (TABLESPACE TS_GUARD_LOB INDEX IDX_EMAIL_ATTACHMENTS_ATTACH)
TABLESPACE TS_GUARD_DATA;ALTER TABLE EMAIL_ATTACHMENTS ADD CONSTRAINT PK_EMAIL_ATTACHMENTS PRIMARY KEY(ID) USING INDEX TABLESPACE TS_GUARD_IDX;
TS_GUARD_DATA:
* EMAIL_ATTACHMENTS = nome da TABLETS_GUARD_INDEX:
* PK_EMAIL_ATTACHMENTS = nome do INDEXTS_GUARD_LOB:
* LOB_EMAIL_ATTACHMENTS_ATTACH = nome do LOBSEGMENT
* IDX_EMAIL_ATTACHMENTS_ATTACH = nome do LOBINDEXSe você seguir um padrão rigoroso de nome dos segmentos fica fácil de identificar as referencias sem consultar a DBA_LOBS.
-
AuthorPosts
- You must be logged in to reply to this topic.