Conceitos de Arquitetura de Bancos de Dados Oracle

Conceitos de Arquitetura de Bancos de Dados Oracle

A arquitetura de sistemas de bancos de dados Oracle pode parecer muito complexa para quem está iniciando seus estudos nessa tecnologia. Existem muitos termos específicos, siglas e nomes de serviços e aplicações, e isso pode acabar confundindo os iniciantes na plataforma Oracle Database.

Para auxiliar estudantes e profissionais que desejam aprender a trabalhar com essa plataforma, listamos a seguir uma série de termos e conceitos importantes relacionados a bancos de dados Oracle e seus significados.

Os conceitos estão listados em ordem alfabética, e a lista não é definitiva – listamos apenas os conceitos mais comuns e importantes.

Conceitos Básicos de Oracle Database

  • Archiver – Processo que copia os redo log files para um dispositivo de storage especificado para serem arquivados, antes que os arquivos de redo sejam sobrescritos.
  • CKPT
    • Checkpoint. Processo que define um SCN – System Change Number – na thread de redo de um BD. Informações de checkpoint são gravadas no arquivo de controle e em cada cabeçalho de data file. Também sinaliza para que o processo DBWn escreva blocos em disco, quando houver dirty buffers.
      Os checkpoints são muito importantes para recuperação de dados.
  • Conexão
    • Comunicação estabelecida entre um processo de usuário (aplicação / ferramenta) e uma instância de banco de dado
  • Control file
    • Contém dados sobre o banco de dados em si, no que concerne às informações de estrutura física. Mantém informações como o nome do banco de dados, onmes e localização dos tablespaces, local dos redo log files, e muitas outras. Podemos manter várias cópias desse arquivo para proteção contra perda total. Também possui metadados relacionados a backups.
    • Sem um control file, não é possível abrir o banco de dados.
  • Database Buffer Cache
    • Estrutura na SGA que armazena em cache blocos de dados recuperados do banco de dados, lidos a partir dos datafiles. Esses dados são compartilhados por todos os usuários conectados à instância de forma concorrente.
    • Quando esse buffer é modificado, mas ainda não foi gravado em disco, diz-e que é um Dirty Buffer (“buffer sujo”).
  • Database Writer (DBWn)
    • Processos que escrevem em disco o conteúdo dos  buffers do database buffer cache, que estejam marcados como dirty buffers, de modo que as próximas declarações SELECT e outros comandos DML possam ter acesso a esses buffers.
  • Data Block
    • Um data block – bloco de dados – corresponde a um número específico de bytes de espaço físico em disco. Cada tablespace tem um tamanho de blocos especificado, quando é criada. Os blocos de dados são mapeados em blocos de disco.
    • O tamanho de um data block adequado para a maioria dos bancos de dados é de 8 kB.
  • Datafiles
    • Os datafiles são estruturas físicas que contém todos os dados do banco de dados, assim como metadados e o dicionário de dados. Cada datafile pertence a um (unico) tablespace. 
  • DBCA
    • Database Configuration Assistant. Utilitário padrão usado para criar, configurar e remover bancos de dados Oracle.
  • DBWn
    • Database Writer Process.
    • Processo que escreve o conteúdo dos buffers modificados do database buffer cache para o disco (nos datafiles). O número de processos DBWn é especificado pelo parâmetro de inicialização DB_WRITER_PROCESSES. O número máximo de processos é 100.
  • Dicionário de Dados
    • Coleção de tabelas e views do banco de dados que contém informações de referência sobre o banco de dados, suas estruturas e seus usuários. Está presente no Shared Pool da SGA.
  • Dirty Buffer
    • Buffer no Database Buffer Cache que contém dados de um bloco do banco de dados que foi alterado por uma instrução INSERT, UPDATE ou DELETE, mas que ainda não foi escrito em disco.
  • Extent
    • Um extent é um espaço lógico que engloba um número específico de blocos de dados contíguos, usados para armazenar um tipo específicod e informação.
  • INIT.ORA
    • Arquivo de parâmetros que define configurações gerais de uma instância, como por exemplo quantidade de memória a ser alocada, localização de arquivos, parâmetros de otimização, tamanhos de caches e outras.
  • Instância
    • Uma instância consiste em estruturas de memória e processos em background associados. Uma instância é associada a um único banco de dados específico após ser iniciada, no processo denominado “Montagem do Banco de Dados”
  • Java Pool
    • O Java Pool (na SGA) é uma área utilizada para armazenar dados e código Java específicos de sessão na JVM.
  • Large Pool
    • Estrutura de memória na SGA que fornece alocação de memória extensa para processos de E/S de servidor, operações de consulta paralelas e operações de backup e restauração do banco de dados. Esta área de memória é opcional.
  • LGWR
    • Log Writer Background Process – Processo que escreve o conteúdo do redo log buffer no arquivo redo log file ativo, em disco, por exemplo, quando um usuário realiza commit em uma transação ou quando o redo log buffer está 1/3 cheio ou contém 1MB de dados em buffer, ou inda três segundos após a última operação de escrita realizada..
  • Listener
    • Processo que gerencia conexões entre as aplicações e o servido de bancos de dados. É configurado pode meio da edição de um arquivo de texto de nome listener.ora.
  • listener.ora
    • Arquivo de configuração de Listener, que contém elementos tais como nome dos listeners, protocolos e endereços para conexão, serviços de banco de dados, parâmetros de controle e outros relacionados à rede e conexão aos bancos de dados.
  • LRU – Least Recently Used. Algoritmo usado para determinar quando reutilizar os buffers no cache de buffers do banco de dados que não estejam “sujos” (que não sejam dirty buffers). Quanto menos um bloco for usado, mais provável que ele seja substituído por um novo bloco do banco de dados lido a partir do disco.
  • MEMORY_TARGET
    • Parâmetro de inicialização de tamanho para criação e gerenciamento de estruturas de memória, como a SGA e a PGA.
  • ORACLE_HOME
    • Diretório onde o software de bancos de dados Oracle está instalado em um sistema. Também pode se referir a uma variável de ambiente que aponta para esse diretório.
  • Oracle Enterprise Manager
    • OEM. Conjunto de ferramentas de gerenciamento de sistemas para gerenciar ambientes Oracle.
  • oraInventory
    • Diretório onde é armazenado um inventário de todas as aplicações Oracle que estão instaladas em um sistema.
  • PFILE
    • Arquivo de parâmetros de inicialização do Oracle. Também conhecido como INIT.ORA. Trata-se de um arquivo de texto, editável com qualquer editor de textos comum, como o vim ou bloco de notas.
  • PGA
    • Program Global Area. As PGAs são regiões de memória privadas que contém dados e informações de controle para um servidor ou processo em background. Não são compartilhadas, ou seja, o acesso à PGA é exclusivo do processo em execução no servidor. Cada processo tem sua própria PGA.
    • Uma PGA é dividida em duas grandes áreas: Espaço de Pilha (Stack Space) e User Global Area (UGA), que por sua vez é dividida em áreas menores, como a área de Sort (para operações de classificação, como ORDER BY e GROUP BY) e a área de Hash (para joins hash de tabelas).
  • PL/SQL
    • Extensão de linguagem procedural da Oracle que complementa a linguagem SQL padrão. Permite realizar operações aritméticas, operações em datas e horas, realizar controle condicional e iterativo, implementar cursores, criar funções, stored procedures e outros recursos.
  • PMON
    • Process Monitor Process – Processo que realiza recuperação quando um processo de usuário falha. Também limpa o database buffer cache, libera recursos utilizados pelo processo de usuário e monitora sessões para descobrir sessões ociosas em timeout.
  • Processos – Há três tipos de processos em um sistema de banco de dados Oracle:
    • Processos de Usuário – Rodam Aplicações e Ferramentas, local ou remotamente. Se comunica com um processo listener, o qual cria um processo de servidor.
    • Processos de Banco de Dados – Divididos em:
      • Processos de Servidor – Realizam Parse e executam os comandos emitidos pelo processo de usuário, além de le dados nos datafiles e retornar resultados obtidos a partir de consultas.
      • Processos de Background – Permitem à instância interagir com outras instâncias e com o S.O., por exemplo para gerenciamento de estruturas de memória e escrita de dados em discos. Exemplos de processos: LGWR e DBWn.
    • Daemons – Processos de aplicação não específicos de um banco de dados, como por exemplo listeners de rede.
  • Redo Log Buffer
    • Estrutura de buffer circular na SGA que armazena em cache informações de redo (informações sobre mudanças feitas no banco de dados) até que sejam escritas nos arquivos redo log files físicos em disco.
  • Redo log files
    • Arquivos físicos de log que permitem a recuperação da instância do banco de dados. Esses arquivos contém um registro de todas as alterações feitas nos dados nas tabelas e índices do banco, assim como mudanças realizadas na estrutura do banco de dados em si. A instância pode recuperar o banco com as informações contidas nesses arquivos – se os datafiles não forem perdidos.
  • Segment
    • Um segmento é um conjunto de extents alocado para uma determinada estrutura lógica. Por exemplo, segmentos de dados (dados de tabelas) ou índices. Os segmentos existem em um tablespace.
  • Sessão
    • Uma sessão é uma conexão específica de um usuário a uma instância, por meio de um processo de usuário. Uma sessão se inicia quando um usuário se conecta a uma instância e termina quando o usuário se desconecta da instância ou fecha a aplicação de banco de dados emprega. 
  • SGA
    • System Global Area. Área de memória compartilhada por todos os usuários conectados ao banco de dados, e alocada para os processos de segundo plano de uma instância, quando iniciada. Grupo de estruturas de memória compartilhadas, que contém dados e informações de controle para uma instância do Oracle Database.
  • Shared Pool
    • Área da SGA que armazena dados como declarações SQL executadas, cópias do dicionário de dados do banco e cache de resultados de consultas SQL e PL/SQL para reuso. Também contém dados das tabelas de sistema, como informações do conjunto de caracteres e informações de segurança.
  • Shared SQL Area
    • Área na SGA (dentro do Shared Pool) que armazena declarações SQL executadas no banco de dados. Quando dois usuários executam a mesma declaração SQL, ela é reutilizada a partir desta área.
    • Contém a árvore de Parse e o Plano de Execução da declarações SQL.
  • SMON
    • System Monitor Process – Processo que realiza recuperação durante a inicialização de uma instância. Também limpa segmentos temporários não mais utilizados.
  • SPFILE
    • Arquivo de parâmetros de inicialização do Oracle. Trata-se de um arquivo binário, somente alterável por meio de comandos como ALTER SYSTEM SET.
  • SQL Developer
    • Ferramenta IDE gráfica, escrita em Java, empregada para o desenvolvimento de códigos SQL e PL/SQL, para sistemas Oracle Database. Esta ferramenta não tem custo e pode ser baixada gratuitamente do site da Oracle.
  • SQL*Plus
    • Ferramenta de linha de comandos empregada para executar declarações SQL, PL/SQL e comandos especiais em sistemas Oracle Database.
  • Tablespace
    • As tablespaces são unidades de armazenamento lógico em em banco de dados, usadas para agrupar estruturas lógicas relacionadas (segmentos) ou ainda data files (físicos).
    • Cada banco de dados Oracle sempre deve conter no mínimo os tablespaces SYSTEM e SYSAUX, os quais são criados automaticamente quando um banco é criado.
      O tablespace SYSTEM possui funcionalidade primordial para o banco, como o armazenamento das tabelas do dicionário de dados. Já o tablespace SYSAUX é auxiliar, armazenando vários outros componentes do banco de dados. Esses dois tablespaces não devem armazenar dados de aplicações e usuários.
  • tnsnames.ora
    • Arquivo de configuração que define endereços dos bancos de dados para que seja possível estabelecer conexões com eles.

É isso aí! Nos próximos artigos vamos abordar de forma mais aprofundada diversos dos conceitos abordados aqui. Até!

 

Sobre Fábio dos Reis (1344 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

1 Comentário em Conceitos de Arquitetura de Bancos de Dados Oracle

  1. Obrigado pela aula!

Escreva um comentário

Seu e-mail não será divulgado


*