Chiappa e Companhia, boa tarde,
Gostaria de entender um conceito importante no Db Oracle. Estava 
lendo um material da sybex sobre Oracle e no capítulo de 
gerenciamento de undo, fui fazendo os exercícios. A versão do Oracle 
é a 10.2.0.1.0 - 64 bits, rodando em um Centos 5.0 64 bits por 
vmware. Quando alterei o parâmetro undo_management para manual ( 
utilizando spfile) e iniciei novamente a instance, recebi o erro: 
ORA-01552: cannot use system rollback segment for non-system 
tablespace 'yyy' ao tentar fazer um update na base. Aí, voltei o 
parâmetro para auto e reiniciei a instância e tentei efetuar o mesmo 
update e ele deu certo. Voltei o parâmetro para o manual e voltou a 
dar o mesmo erro ( p.s: parâmetro undo_tablespace setado para uma 
tablespace de UNDO corretamente e undo_retention=900, para guardar 
por 15 minutos). aí dando uma olhada a mais no material que possuo, 
eu vi que aparentemente( digo isso, pois ainda não entendi o conceito 
de "segmento de rollback") "segmento de rollback" é como se fosse 
divisórias na tablespace de undo? Este erro me ocorreu porque? Quando 
consultei a v$undotbs ele havia me retornado que os segmentos de 
rollback estavam na system, seria por isso que estava dando o erro 
então? 
criei então um novo segmento de rollback através do dbconsole ( pois 
não conhecia esse conceito até então): 
create rollback segment "rollbs2" tablespace "undotbs1" storage ( 
inicial 1M next 5M)/
alter rollback segment "rollbs2" online;

pelo que entendi, este comando me criou um "novo" segmento de 
rollback e o ativou em seguida correto?

sendo assim, minhas perguntas são:
O que é segmento de rollback? é como eu "presumi" agora pouco como 
sendo divisórias na tablespace de undo?
quando o tamanho que devo definir em initial, next e optimal size ?
é possível ter mais que 1 segmento de undo?
Obrigado.



Responder a