Arquivos

Posts Etiquetados ‘processos’

Processos

24 de julho de 2010 Deixe um comentário

Como já foi dito anteriormente, um banco de dados Oracle de ter no mínimo cinco processos que são:

SMON, System Monitor

A sua principal função é abrir a conexão entre a instância e o banco de dados, além realizar funções de monitoramento e organização.

PMON, Process Monitor

Se certifica se as seções de usuários tenha alguma problema. Um exemplo bastante prático disso é se um PC de um usuário reiniciar enquanto estava logado no banco de dados.

DBWn, Database Writer

Lembra-se que as sessões nunca atualizam os dados direto no disco? Então o DBWn é responsável por todas as operações de escrita no disco. O Oracle tenta manter as operações de I/O no disco o mínimo o possível, uma vez que se assume que isso é ruim para o desempenho do banco.

LGWR, Log Writer

O LGWR tem a responsabilidade de aplicar todas as modificações que são realizadas no cache do buffer do banco de dados para o log de redo online. Ao contrário do DBWn, o LGWR faz a escrita no disco sempre que possível, do buffer de log na SGA para o log de redo online. Isso garante com que o Oracle nunca perca quaisquer dados.

CKPT

Em intervalos de tempos regulares o CKPT sincroniza a instância com o banco de dados.

CategoriasSem categoria Tags:, , , , ,

Arquitetura

17 de julho de 2010 Deixe um comentário

Em um servidor com o Oracle instalado existe duas entidades: a instância e o banco de dados.

Em ambientes normais a relação é de um pra um. Mas em ambientes corporativos um pouco mais robustos isso muda. A relação pode ser de muitos para um. Ou seja: existe diversas instâncias em vários servidores usando o mesmo banco de dados em um sistema com disco compartilhado. Isso se chama Real Application Clusters ou apenas RAC. O RAC melhora o desempenho, tolerância a erros e maior escalabilidade. Também é possível que uma instância conectar-se a diversos bancos.

Primeiro vamos falar um pouco da instância. Ela consiste de estruturas de memória e processos. Ela existe na memória RAM e na CPU do servidor, ela pode ser inicializada e finalizada. Já o banco de dados consiste de arquivos físicos no disco e existe indefinidamente até ele seja apagado de propósito.  A relação entre as estruturas físicas e lógicas é gerencia pelo dicionário de dados.

A instância consiste do System Global Area, ou apenas SGA e também de alguns processos. O SGA conterá no mínimo três estruturas, que são: o pool compartilhado, o cache de buffer do banco de dados e o buffer de log. Poderá também ter opcionalmente: pool extenso, pool Java e o pool de streams. Algumas dessas estruturas tem um tamanho fixado assim que você inicia elas. Outras você poderá modificar quando necessário.

Vamos falar agora um pouco sobre as estruturas que compõem a SGA.

Pool compartilhado

Existe duas estruturas principais; o cache da biblioteca e o cache do dicionário de dados. O cache da biblioteca armazena os códigos que são recentemente executados, isso por que o código é algo lento que o Oracle realiza. Ao armazenar então esse código já interpretado o desempenho é aprimorado. O cache do dicionário de dados armazena descrições de tabelas, índices, usuários e etc, ao se armazenar isso também o desempenho é aprimorado.

Cache de buffer do banco de dados

É o onde o Oracle executa SQL. Uma vez que os usuários nunca escrevem diretamente no disco e sim no cache de buffer do banco de dados. Diminuindo assim a necessidade de I/O no disco.

Buffer de log

Armazena todas as modificações no cache de buffer do banco de dados.

O tamanho das estruturas do SGA deve ser grande o suficiente mas, não grande demais para não haver desperdício de memória e nem degradar o desempenho.

Além das estruturas que compõem o SGA a instância do banco terá no mínimo cinco processos que irei falar no próximo post.

CategoriasSem categoria Tags:, , , , ,
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.