sexta-feira, 30 de março de 2012

Estrutura de memória (Oracle OCA)

Conforme vou estudando para OCA, vou passsando um resumo, um caminho das pedras tirado do material oficial da Oracle. Caso desejem se aprofundar mais de algum dos assuntos, podem ir pesquisando especificamente pelo Google a fora.

System Global Area (SGA): Grupo de estrutura de memória compartilhada, contêm dados e informações de controle para uma instância, compartilhada por todos servidores e processos de fundo.


- Database Buffer Cache: detém cópias de blocos de dados, lidas do arquivo de dados, acessada por todos usuários conectados simultaneamente.

- Redo Log Buffer: buffer circular que armazena informações sobre mudanças no banco, contendo informações necessárias para reconstruir as alterações efetuadas

- Shared Pool: onde o processo de servidor verifica se existe um comando idêntico, alocando área privada SQL do lado da sessão. É dividida em três partes
   - Library: Biblioteca utilizada para o Oracle armazenar SQL
      - Shared SQL Area: Contêm plano de execução SQL
   - Data Dicionary: coleção de bancos, tabelas e views, contendo informações referentes ao banco
   - Other: outro

- Large Pool: memória opcional, dividida em quatro partes:
   - I/O :
   - Free memory:
   - Response:
   - Request:

- Java Pool: usado para sessões específicas de código Java

- Stream Pool: usado por Oracle Stream (Ferramenta Oracle de processo e gerenciamento de eventos)

Program Global Area (PGA): Região de memória que contém dados e controle de informações para um servidor de processos de fundo, não compartilhada criada pelo banco quando servidor ou processo de fundo é iniciado, sendo seu acesso exclusivo para servidor de processos.

segunda-feira, 26 de março de 2012

Conexão Oracle (Oracle OCA)

Retornando, depois de um período de muita correria, uma breve introdução do Administration Workshop I

Um servidor de banco Oracle consiste em banco e uma ou mais instâncias.

A instância consiste em estrutura de memória e processos de fundo

Quando uma instância é iniciada, a área de memória compartilhada é chamada, SGA alocada e processos de fundo iniciados

Um banco de dados consiste na estrutura física e lógica.

Uma conexão é a comunicação entre um processo de usuário e uma instância

Uma sessão é uma conexão específica de um usuário para uma instância através de um processo de usuário, representa o estado do login do usuário, como por exemplo validação de usuário e senha.

Conexão
1) Uma instância é iniciada no nó aonde o banco é instalado,

2) Um usuário inicia uma aplicação, que tenta estabelecer conexão com o servidor

3) O servidor inicia um ouvinte apropriado, que detecta a conexão requisitada para a aplicação e cria processo dedicado

4) O usuário inicia uma DML (select, insert, update, delete, merge)

5) O processo de servidor recebe a afirmação e checa ‘chared pool’ (componente SGA), se não existe SQL idêntico compartilhado, se existir, verifica os privilégios do usuário para dados requeridos

6) O processo do servidor recupera o valor necessário, ou para atual tabela ou armazenados no ‘buffer cache’

7) O servidor de processos modifica as informações no SGA, por que a transação é ‘commitada’, o LGWR grava a transação no ‘redo log file’ e o DWBn modifica os blocos permanentemente no disco

8) Se a transação ocorre com sucesso, o servidor de processo encaminha mensagem através da rede para aplicação, senão uma mensagem de erro é transmitida

9) Através desse procedimento, outros processos de fundo são iniciados

Após iniciada instância, a mesma é associada com o banco específico ( ‘monta o banco’), o banco está pronto para ser aberto quando acessível para usuários autorizados. Múltiplas instancias podem ser executadas de forma concorrente em um mesmo computador, cada acesso é o próprio banco físico.


Uma instância Oracle usa estrutura de memória e processos para gerenciar o acesso ao banco. Toda estrutura de memória existente na memória principal do computador que constitui o servidor do banco. Processos são programados para trabalhar na memória desse computador