Artigo SQL Magazine 13 - Introdução ao Oracle 9i – Parte II

Veremos neste artigo a arquitetura do servidor Oracle.

Clique aqui para ler esse artigo em PDF.

Clique aqui para ler todos os artigos desta edição

Introdução ao Oracle 9i – Parte II

Entendendo o Oracle Server

por Ricardo Rezende

Leitura Obrigatória: SQL Magazine 12, artigo Introdução ao Oracle 9i – Abordagem passo-a-passo.

 

Dando continuidade à introdução ao Oracle 9i, veremos neste artigo a arquitetura do servidor Oracle. Serão abordadas as estruturas físicas, lógicas, de memória e de processos que estão presentes na conexão, criação de sessões e na execução de instruções SQL. Muitos dos tópicos que veremos neste artigo são importantes e necessários para a criação de uma base de dados Oracle. Você notará que utilizamos muitos desses conceitos no passo-a-passo apresentado na edição 12. Boa leitura e bom divertimento.

Visão geral do Oracle Server

O servidor Oracle deve gerenciar de forma confiável e com alta performance uma grande quantidade de informações em um ambiente multiusuário com muitos acessos simultâneos. Deve também, dentre outras tarefas, evitar o acesso não autorizado ao BD e prover soluções eficientes e eficazes na recuperação por falhas de hardware ou software.

Para lidar com isto, o Oracle mantém uma série de arquivos, processos e estruturas em memória. Basicamente, um servidor Oracle (Oracle Server) é formado por dois componentes bem definidos. São eles:

·Estrutura em memória: composta pela instância (Oracle Instance) e pela área global do programa (PGA – Program Global Area), e;

·Banco de dados (Oracle DataBase).

 

A Figura 1 ilustra estes dois componentes e suas estruturas formadoras.

 

Figura 1. Visão geral de um servidor Oracle.

Uma instância Oracle nada mais é do que a alocação de memória principal (RAM) feita pelo servidor Oracle para interagir com a estrutura física (arquivos em disco) e interface de usuário (Delphi ou SQL*Plus, por exemplo), juntamente com os processos em segundo plano (Process Monitor – PMON, System Monitor – SMON, Database Writer – DBWR, Log Writer – LGWR, Checkpoint – CKPT entre outros). Já o banco de dados é composto pela estrutura física dos arquivos no sistema operacional. Veremos a seguir cada um destes componentes em detalhe.

A instância

A instância é o mecanismo que o Oracle utiliza para gerenciar as requisições de usuário e o BD propriamente dito (arquivos físicos e sistema operacional) (Figura 1). Sempre que há uma interação com o banco de dados, é necessário que uma instância seja iniciada. Quando isso acontece, é alocada uma porção da memória conhecida como SGA (System Global Area – Área Global do Sistema) e os processos em segundo plano são “colocados no ar”. Uma particularidade da instância é que ela poderá acessar um e somente um banco de dados Oracle.

System Global Area – SGA

A SGA é usada para armazenar informações que são compartilhadas com os processos do BD. Ela contém dados e informações de controle utilizadas pelo servidor Oracle. A SGA é formada por várias subdivisões: Shared Pool (Pool compartilhado), Database Buffer Cache (Cache de Buffer de banco de dados), Redo Log Buffer (Buffer de Redo Log) e outras estruturas menores como estrutura de gerenciamento de trava e tranca (lock and latch), estrutura de dados estatísticos, etc.

A partir do Oracle 9i, a SGA passou a ser dinâmica, ou seja, pode-se alterar suas configurações sem a necessidade de finalizar a instância.

Shared Pool

Shared Pool é onde são armazenados os objetos compartilhados globalmente como os planos de execução de instruções SQL, pacotes PL/SQL, procedimentos, funções, etc. Pelo fato de armazenar estes objetos que interagem com o dicionário de dados ou com os objetos dos usuários (tabelas, índices, etc.), ela é dividida em duas áreas específicas (Figura 1):

·Library Cache (Cache de biblioteca): é determinada de acordo com o tamanho da Shared Poll e é alocada quando uma instrução é compilada ou uma unidade de programa é chamada. Se a Shared Pool estiver configurada com um tamanho muito pequeno, as instruções serão recarregadas constantemente, comprometendo a performance. A Library Cache é dividida em outras duas áreas: a área de SQL compartilhado, que são todas as instruções SQL que podem ser usadas por qualquer sessão de usuário e a área de PL/SQL compartilhado que são as instruções da linguagem procedural compartilhadas pelas sessões. O gerenciamento do tamanho dessas áreas é feito pelo próprio servidor Oracle, cabendo ao DBA apenas configurar o tamanho da Shared Pool." [...] continue lendo...

Artigos relacionados