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
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo