Pular para o conteúdo principal

Arquivos de Redo Log - Estruturas de Armazenamento no Oracle


#40
A função do arquivo de Redo Log é ajudar na recuperação do banco de dados caso o banco de dados for danificado ou destruído.

Exitem dois tipos de arquivos de Redo Log, o tipo Online e o tipo Arquivado. O arquivo Redo de Log Online é obrigatório e o arquivo Redo Log Arquivado é opcional, esse último só existe se o Archiver estiver ativado.

O arquivo de Redo Log Online é usado pelo processo LGWR, esse processo grava no arquivo em disco os vetores de alteração gerados pelo Cache de Buffer do Banco de Dados que são enviados para o Buffer de Log de onde são coletados pelo LGWR para gravação, dentro do arquivo de Redo Log Online os vetores de alteração são armazenados em uma cadeia continua em ordem cronológica.

O funcionamento do arquivo de Redo Log é bem interessante, então atenção. O arquivo de Redo Log Online é de tamanho fixo e deve obrigatoriamente pertencer a um grupo, os arquivos dentro desse grupo são chamados de membros e podem existir vários membros em um mesmo grupo, mas não pode existir nenhum grupo sem um membro. O Oracle obriga ao banco de dados a ter no mínimo dois grupos e ao menos um membro em cada grupo.

Agora vamos entender como LGWR realiza a gravação, nesse exemplo vamos usar a quantidade padrão, que são dois grupos e um membro em cada grupo. Sempre que for citado a palavra "membro" isso se referência a um "arquivo do Redo Log Online".

O LGWR acessa um dos grupos, esse grupo acessado é conhecido como atual (current), então, de forma continua o LGWR grava os vetores de alteração no membro desse grupo, lembrando que esses vetores de alteração vem de todas as sessões de usuários ativas, desta forma o membro que tem tamanho fixo é preenchido muito rápido, quando o membro é completamente preenchido o LGWR então sai desse grupo e vai para o proxímo grupo, isso transforma esse novo grupo em atual (current), e o LGWR inicia a gravação nele, essa ação de mudança de grupo do LGWR é chamada de "alternância de log". O LGWR realiza essa ação de forma continua, sempre alternando entre os grupos e gravando os vetores de alteração nos membros. Cada vez que o LGWR grava em um membro ele sobrescreve as informações antigas que estavam gravadas naquele membro.

Entendemos como funciona usando a quantidade padrão de grupos e membros, agora vamos entender como funciona quando definimos quantidades maiores para grupos e membros.

Vamos supor que no nosso banco de dados temos 4 grupos e em cada grupo possui 3 membros, o LGWR irá funcionar da mesma forma realizando a alternância de grupos, a diferença que ele irá gravar simultaneamente em cada membro do grupo, o que isso quer dizer, cada membro de um grupo irá possuir a mesma informação, eles serão idênticos, a vantagem desse modelo é que se você perder um membro desse grupo, o banco de dados vai continuar funcionando sem problema com os demais membros ativos.

Agora qual a vantagem de se ter mais de dois grupos? Para explicar isso melhor agora vamos falar sobre o outro tipo de arquivo de Redo Log, o Redo Log Arquivado.

Como se pode observar, os membros tem tamanho fixo e podem ser preenchidos de forma rápida dependendo do tamanho do banco de dados e sessão de usuários ativas, as informações desses membros sempre são sobrescritas, isso significa que um arquivo de Redo Log mantém apenas informações recentes de vetores de alterações, dessa forma pode ocorrer perda de dados caso o banco de dados for danificado, para evitar isso o Redo Log Arquivado entra em ação, a função do Redo Log Arquivado é fazer uma cópia do arquivo de Redo Log Online e manter as informações salvas de forma permanente. O Redo Log Arquivado só funciona se o processo Archiver estiver ativado. Quando o Archiver esta ativado se torna obrigatório a gravação dos arquivos de Redo Log Online, com isso um membro não pode ser sobrescrito até ele ser copiado pelo Archiver. Essa é uma das vantagens de se ter mais de dois grupos, pois o LGWR não corre o risco de ficar esperando o Archiver liberar o grupo para gravação, porque quando tem mais grupos aumenta o tempo de alternância entre o grupo que acabou de ser usado, até ele ser requisitado novamente, com isso o Archiver consegue realizar a gravação e liberar o grupo antes dele ser requisitado.

Você não precisa se preocupar com a quantidade de arquivos de Redo Log Online na criação do banco (respeitando a quantidade mínima), pois, você pode adicionar ou remover os arquivos com a instância ativa, com isso elas se tornam transparentes para o usuário final.

Se tiverem dúvidas realizem um INSERT nos comentários e depois dê um COMMIT que depois respondo.

Abraço e bons estudos.

Comentários

Postagens mais visitadas deste blog

Conhecendo a arquitetura do Banco de Dados Oracle

#15 Vamos focar mais no ambiente de banco de dados mais comum, que é uma instância em um computador, abrindo um banco de dados armazenado em discos locais. Sempre que for mensionado instância, esta se referindo ao banco de dados em funcionamento. Um banco Oracle é composto por duas estruturas, uma lógica e uma física. A estrutura lógica é chamada de instância e composta por estruturas de memória e processos, a sua existência é temporária na memória RAM e CPU e fica ativa enquanto o banco Oracle estiver ligado, se desligar o banco Oracle toda a informação ou vestígios de sua existência será apagado da memória, ao ligar o banco Oracle a instância é carregada novamente na memória. Os processos que compõem a instância trabalham em segundo plano e fica ativo o tempo todo enquanto a instância estiver ativa. A estrutura física é onde fica armazenado as informações, e uma vez criado, ele existe até que o DBA deliberadamente decida exclui-lo. Quando um banco Oracle é iniciado, na me...

O Cache de Buffer do Banco de dados - Estruturas de Memória no Oracle

#21 Vamos conhecer um pouco mais sobre o Cache de Buffer de Dados. O Cache de Buffer de Dados é o local de trabalho do Oracle, é nessa área que ele executa as SQLs. A função dessa área é otimizar e melhorar o desempenho das instruções DML. O maior gargalo de um banco de dados é o I/O dos arquivos em disco. Mas antes de explicar como funciona o Cache de Buffer de Banco de dados, vamos entender rápidamente o que é bloco, desta forma você não fica perdido, os arquivos de dados que contém os registros que são as linhas da tabela, indices e outros objetos de dados são formatados em blocos de tamanho fixo, o DBA pode definir um tamanho para esses blocos ou deixar de forma automática. A quantidade de linhas por bloco é indefinida, pois, as linhas possuem comprimento variável, o comprimento desta linha dependerá do número de colunas e os tipos de informações definidos para a tabela. De acordo com tamanho das linhas, pode haver várias linhas por bloco ou uma linha pode se estender por vár...

Shared Pool - Estruturas de Memória no Oracle

#23 O Shared Pool é considerada umas das estruturas de memórias mais complexas da SGA, ela é dividida em dezenas de subestruturas e todas são gerenciadas internamente pelo Oracle. Mas nesse momento vamos citar apenas os 4 principais componentes desta estrutura, as demais serão analizadas posteriormente. Quando uma aplicação executa uma DML, vários processos internos no Oracle são realizados até o retorno do resultado para o usuário. E esses 4 componentes tem participação direta na execução da DML e com isso gerando um bom desempenho do banco de dados. Os 4 principais componentes são: - O Cache de Biblioteca - O Cache de Dicionário de Dados - A Área PL/SQL - O Cache de Resultados de Funções PL/SQL e Consultas SQL Agora, vamos conhecer um pouco mais de cada um. - O Cache de Biblioteca (library cache) Todas instruções DML enviadas pela aplicação devem ser analizadas pelo Oracle. Quem realiza essa análise é o parse, o parse converte o código escrito pelos progra...