Pesquisar este blog

segunda-feira, 16 de agosto de 2010

Entendendo a arquitetura ORACLE



Temos no produto Oracle uma instancia e um banco. Claro, você pode usar varias instancias para acessar um banco de dados Oracle o que ocorre no Real Aplication Cluster ou cluster de aplicativos reais. Também é possível editar links para a instancia acessar outros bancos Oracle, mas iremos focar no um-para-um, ou seja, uma instancia para um banco.

Estrutura da instancia: Memória e Processos.

Uma instancia Oracle consiste em um bloco de memória compartilhada, conhecida como SGA (System Global Área) a que possui basicamente três elementos obrigatórios: Pool compartilhado, cachê de buffer do banco e o buffer de log. Opcionalmente poderá ter pool extenso, Java pool e um pool de streams.

O Pool compartilhado:

No pool compartilhado iremos abordar dois componentes de sua estrutura: O cachê da biblioteca de dados e o cachê de dicionário de dados.
O cachê de biblioteca de dados consiste em armazenar as instruções SQL na sua forma interpretada. Ajuda no desempenho para evitar que se interprete sempre instruções mais usadas no banco. Quando um usuário fornece uma instrução para o banco, ela será armazenada no cachê de biblioteca de dados para que seja usada posteriormente pelo mesmo usuário ou por outros evitando assim processos para a interpretação da mesma.
O cachê de dicionário de dados armazena objetos, descrições de tabelas, índices usuários e outras definições de metadados.

Cachê de buffer do banco:

O cachê de buffer do banco de dados é uma área onde são executados as instruções SQL. Antes dos dados irem para parte física são armazenados na cachê de buffer aguardando uma confirmação para acesso ao disco. Isto evita E/S em disco desnecessário alem de ser uma segurança para os dados.

Buffer de log:

Usado para armazenamento de todas as modificações aplicadas aos dados presentes no cachê de banco de dados. Está parte da memória só é usada quando os dados armazenados no cachê de banco são manipulados.

Pool extenso:

Uma área opcional a ser criada. Usada automaticamente por vários processos que de uma forma tomaria a memória do pool compartilhado. O gerenciador de recuperação (Recovery Manager, RMAN), também usará o pool extenso para seus processos de E/S.

Pool Java:

Requerido para instanciar os objetos do Java.

DICA Exame:  Os três principais elementos da instancia Oracle são: Pool compartilhado, cachê de buffer do banco e pool de log.



SMON Monitor de sistema,
Função de habilitar as conexões entre o banco e a instancia.

PMON Monitor de processos,
Procura e organiza sessões de usuários, mantendo até mesmo historio de sessão caso desconexão imprevista de algum usuário para que o mesmo ao se conectar novamente, volte aos seus processos.

DBWn Escritor do bano de dados,
Escreve as atualizações do cachê de buffer do banco para o disco fisico. Normalmente o Oracle mantém essas atualizações no mínimo de nível possível para evitar assim E/S o que ajuda substancialmente o desempenho do banco.

LGWR Escritor de logs,
Envia todas as modificações que foram feitas entre o cachê de buffer de banco para o disco, atualizando os redo on-line. Ao efetivar uma modificação com o COMMIT, será escrito nos arquivos de redo log on-line a modificação que foi realizada e a partir daí efetivada no banco físico. Isso garante um auto backup onde podemos dizer que o Oracle efetivamente garante que seus dados não serão perdidos.

CKPT checkpoint.
De tempos em tempos o banco atualiza os arquivos de cachê do banco de dados para o disco, este processo é feito pelo CKPT.



Nenhum comentário:

Postar um comentário