Oracle – Arquitetura de banco de dados

Resumo: neste post, você verá informações sobre a arquitetura do banco de dados Oracle e componentes.

Antes de qualquer coisa, Oracle Database é um sistema de gerenciamento de banco de dados relacional desenvolvido pela Oracle Corporation. O banco de dados Oracle é comumente referido como SGBD Oracle ou simplesmente Oracle.

Banco de dados e instância

Um banco de dados Oracle é constituído por um banco de dados e pelo menos uma instância.

Instância, é a combinação de memória e processos que fazem parte de uma instalação em execução.
Banco de dados é um conjunto de arquivos onde os dados estão armazenados.

A figura abaixo mostra a arquitetura de um servidor de banco de dados Oracle:

Oracle Database Architecture
Arquitetura de banco de dados Oracle

As vezes, a instância é referida como um banco de dados inteiro em execução. Porém, é muito importante saber a diferença entre os dois.

Instância Oracle

1. Você pode iniciar uma instância sem que ela acesse nenhum arquivo do banco. O banco de dados é criado assim, você iniciando uma instância e depois cria o banco de dados de dentro dessa instância.

2. Uma instância pode acessar apenas um banco de dados por vez. Ao iniciar uma instância, a próxima etapa é montá-la em um banco de dados. E uma instância pode montar apenas um banco de dados em um único momento. Não tenho certeza, mas isso parece que mudou a partir da versão 12C, onde a instancia pode criar mais de um Banco de dados.

3. várias instâncias de banco de dados podem acessar o mesmo banco de dados. Em um ambiente de cluster, muitas instâncias em vários servidores podem acessar um banco de dados central para permitir alta disponibilidade e escalabilidade.

Banco de dados Oracle – Estruturas de armazenamento físico

As estruturas de armazenamento físico são simplesmente arquivos que armazenam dados. Quando você executa uma instrução para criar um novo banco de dados (CREATE DATABASE), o Oracle cria os seguintes arquivos:

  • Data files: contêm dados reais, por exemplo, pedidos de vendas e dados do cliente. Os dados de estruturas lógicas de banco de dados, como tabelas e índices, são armazenados fisicamente nos data files.
  • Control files: todo banco de dados possui um arquivo de controle que contém metadados. Os metadados descrevem a estrutura física do banco de dados, incluindo o nome do banco de dados e as localizações dos arquivos de dados.
  • Redo log files: todo banco de dados possui um redo log online que consiste em dois ou mais arquivos de redo log online. Um log de redo online é composto de entradas de redo que registram todas as alterações feitas nos dados.

Além desses arquivos, um banco de dados Oracle inclui outros arquivos importantes, como arquivos de parâmetros, arquivos de rede, arquivos de backup e arquivos de redo log arquivados para backup e recuperação.

Banco de dados Oracle - arquivo de sistema de banco de dados
Arquivo de Sistema de Banco de dados

Estruturas de armazenamento lógico

O banco de dados Oracle usa uma estrutura de armazenamento lógica para controle refinado do uso do espaço em disco. A seguir estão as estruturas de armazenamento lógico em um banco de dados Oracle:

  • Data blocks ou Blocos de dados: um bloco de dados corresponde a um número de bytes no disco. O Oracle armazena dados em blocos de dados. Os blocos de dados também são chamados de blocos lógicos, blocos Oracle ou páginas.
  • Extensões: uma extensão é um número específico de blocos de dados logicamente contíguos usados ​​para armazenar o tipo particular de informação.
  • Segmentos: um segmento é um conjunto de extensões alocadas para armazenar objetos de banco de dados, por exemplo, uma tabela ou um índice.
  • Tablespaces: um banco de dados é dividido em unidades lógicas de armazenamento chamadas de tablespaces . Uma tablespaces é um contêiner lógico para um segmento. Cada tablespaces consiste em pelo menos um arquivo de dados.

A imagem a seguir ilustra segmentos, extensões e blocos de dados em uma tablespaces:

Segmentos, extensões e blocos de dados em uma tablespaces

E a figura abaixo mostra a relação entre as estruturas de armazenamento lógico e físico:

Armazenamento lógico e físico

Instância de banco de dados

Uma instância de banco de dados é uma interface entre os aplicativos cliente (usuários) e o banco de dados. Uma instância Oracle consiste em três partes principais: System Global Area (SGA), Program Global Area (PGA) e processos em segundo plano.

Arquitetura de banco de dados Oracle - instância de banco de dados

A SGA é uma estrutura de memória compartilhada alocada quando a instância é inicializada e liberada quando é desligada . O SGA é um grupo de estruturas de memória compartilhada que contém dados e informações de controle para uma instância de banco de dados.
Diferente do SGA, que está disponível para todos os processos, o PGA é uma área de memória privada alocada para cada sessão quando a sessão é iniciada e liberada quando a sessão termina.

Principais processos de segundo plano do banco de dados Oracle

A seguir estão os principais processos de segundo plano de uma instância Oracle:

  • PMON: é o monitor de processo que regula todos os outros processos. PMON limpa conexões de banco de dados conectadas de forma anormal e registra automaticamente uma instância de banco de dados com o processo listener. PMON é um processo que deve estar ativo em um banco de dados Oracle.
  • SMON: é o processo do monitor do sistema que executa a operação de limpeza no nível do sistema. Ele tem duas responsabilidades principais, incluindo a recuperação automática da instância no caso de uma instância com falha, por exemplo, falta de energia e limpeza de arquivos temporários.
  • DBWn: é o gravador do banco de dados. O Oracle executa todas as operações na memória em vez do disco porque o processamento na memória é mais rápido e eficiente do que no disco. O processo DBWn lê dados do disco e os grava de volta no disco. Uma instância Oracle tem muitos gravadores de banco de dados DBW0, DBW1, DBW2 e assim por diante. O ‘n’ significa que pode haver vários processos DBW
  • CKPT: é o processo de checkpoint. No Oracle, os dados que estão no disco são chamados de bloco e os dados que estão na memória são chamados de buffer. Quando um bloco é gravado no buffer e alterado, o buffer fica sujo e precisa ser gravado no disco. O processo CKPT atualiza os cabeçalhos do arquivo de controle e de dados com informações de checkpoint e sinaliza a gravação de buffers sujos no disco. Uma observação é que o Oracle 12c permite pontos de verificação completos e incrementais.
CKPT ou processo CheckPoint
  • LGWR: é o processo de gravação de log, que é a chave para a arquitetura de capacidade de recuperação. Cada mudança que ocorre no banco de dados é gravada em um arquivo chamado redo log para fins de recuperação. E essas mudanças são escritas e registradas pelo processo LGWR. O processo LGWR primeiro grava as alterações na memória e depois no disco como redo logs que podem ser usados ​​para recuperação.
  • ARCn: é o processo de arquivamento que copia o conteúdo dos redo logs para arquivar arquivos de redo log. O processo de arquivamento pode ter vários processos, como ARC0, ARC1 e ARC3, que permitem ao arquivador gravar em vários destinos, como unidade D:, unidade E ou outro armazenamento. O ‘n’ significa que pode haver vários processos ARC.
  • MMON: é o processo de monitoramento de capacidade de gerenciamento que reúne métricas de desempenho.
  • MMAN: é o gerenciador de memória que gerencia automaticamente a memória em um banco de dados Oracle.
  • LREG: é o processo de registro do listener que registra informações na instância do banco de dados e nos processos do dispatcher com o Oracle Net Listener.

Espero que tenha ajudado a entender um pouco sobre estrutura Oracle. Até a próxima.

fonte: www.oracletutorial.com/