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.