48
Banco de Dados Oracle AESO

Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Embed Size (px)

Citation preview

Page 1: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados Oracle

AESO

Page 2: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados Oracle

Visão Geral dos Componentes Principais da Arquitetura Oracle

Page 3: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleServidor Oracle

É o nome que a Oracle deu ao seu SGBD. Ele consiste de uma Instância e um Banco de Dados Oracle.

Page 4: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleInstância Oracle

É uma forma de acessar um Banco de Dados Oracle.

Sempre abre um único Banco de Dados. Consiste em estruturas de memórias e

processos de segundo plano (background).

Estruturas de Memória

Estruturas de Processos de Segundo Plano

Page 5: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleInstância Oracle

É preciso iniciar a instância para acessar os dados contidos no banco de dados.

Sempre que uma instância é iniciada, uma SGA (System Global Area) é alocada e os processos de segundo plano do Oracle também são iniciados.

Os processos de segundo plano executam funções para o processo que faz a chamada. Ex: operações de entrada/saída (E/S)

Page 6: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleBanco de Dados Oracle

É um conjunto de dados tratados como uma unidade.

Consiste em três tipos de arquivos

Page 7: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleArquivos do Banco de Dados:

Os arquivos de dados

Contêm os dados reais do banco de dado

Os arquivos de redo log on-lineContêm um registro das alterações feitas no banco de dados para permitir a recuperação dos dados em caso de falha

Os arquivos de controle Contêm as informações necessárias para manter e verificar integridade do banco de dados

Page 8: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleOutras Estruturas Importantes de Arquivos: O Servidor Oracle também usa outros arquivos que

não fazem parte do banco de dados: Os Arquivos de Parâmetros

Define as características de uma instância Oracle. Ex: parâmetros que dimensionam algumas das estruturas da memória na SGA.

O Arquivo de Senhas Autentica os usuários com privilégios para

iniciar e desativar uma instância Oracle.

Os Arquivos de Redo Log Arquivados São cópias off-line dos arquivos de redo log on-

line quepodem ser necessários para a recuperação após falhas de mídia.

Page 9: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleProcessos da Arquitetura Oracle:

Processos do usuário e do servidor.

Os processos do usuário e do servidor são os principais processos envolvidos na execução de uma instrução SQL. No entanto, outros processos (obrigatórios) podem ajudar o servidor a concluir o processamento da instrução SQL.

Outros processos: Existem vários outros processos usados por

outras opções, como: Advanced Queuing, Real Application Clusters, Shared Server, Advanced Replication, etc.

Page 10: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstabelecendo uma Conexão e Criando uma

Sessão

Page 11: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstabelecendo uma Conexão e Criando uma

Sessão

Antes de submeterem instruções SQL a um banco de dados Oracle, os usuários devem se conectar a uma instância.

O usuário inicia uma ferramenta, como o SQL*Plus, ou executa uma aplicação. Essa ferramenta ou essa aplicação é executada como um processo do usuário.

Na maioria das configurações básicas, quando um usuário efetua logon no servidor Oracle, é criado um processo no computador que executa esse servidor. Esse processo denomina-se processo do servidor.

Page 12: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstabelecendo uma Conexão e Criando uma

Sessão

Conexão

Uma conexão é um caminho de comunicação entre um processo do usuário e um servidor Oracle.

Há três maneiras de conexão para o usuário: Logon no SO onde está instalado o Servidor

Oracle. Conexão via rede (duas camadas) Conexão via rede (três camadas)

Page 13: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstabelecendo uma Conexão e Criando uma

Sessão

A conexão pode ser :

Dedicada - Para cada processo do usuário se tem um processo de servidor.

Compartilhada - Um processo de servidor atende a vários processos de usuário.

Sessões

Uma sessão é uma conexão específica de um usuário com um servidor Oracle.

Page 14: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstrutura Lógica e Física da Arquitetura

Oracle

Page 15: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstrutura Lógica e Física da Arquitetura

Oracle

A arquitetura do banco de dados Oracle inclui estruturas lógicas e físicas que formam o banco de dados.

A estrutura física Inclui os arquivos que formam o banco de

dados (3 tipos de arquivos).

A estrutura lógica Inclui tablespaces, segmentos, extensões e

blocos de dados.

Page 16: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstrutura Lógica e Física da Arquitetura

Oracle

Existe a seguinte hierarquia de estruturas lógicas:

Um banco de dados Oracle contém no mínimo um tablespace.

Um tablespace contém um ou mais segmentos.

Um segmento é composto de extensões. Uma extensão é composta de blocos lógicos. Um bloco é a menor unidade para operações

de leitura e gravação.

Page 17: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstrutura Lógica e Física da Arquitetura

Oracle

Page 18: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstrutura Lógica

Page 19: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstrutura Física

A estrutura física de um banco de dados Oracle inclui três tipos de arquivos:

Page 20: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstrutura da Memória

Page 21: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleEstrutura da Memória

A estrutura da memória do Oracle consiste em duas áreas denominadas:

SGA – System Global Area (alocada na inicialização da instância)

PGA – Program Global Area (alocada quando um processo de servidor é iniciado)

Page 22: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSystem Global Area

Ela é usada para armazenar informações do banco de dados compartilhadas pelos processos do banco de dados.

Consiste em várias estruturas de memória: Shared Pool Cache de Buffer do Banco de Dados Buffer de Redo Log etc

Page 23: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSystem Global Area

A partir do 9i a SGA é dinâmica sendo dimensionada pelo parâmetro SGA_MAX_SIZE.

Page 24: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Shared Pool

Usado para armazenar: As instruções SQL executadas mais

recentemente. As definições de dados usadas mais

recentemente.

Page 25: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Shared Pool

Dimensionado pelo parâmetro SHARED_POOL_SIZE

Ele consiste em duas estruturas principais de memórias relacionadas ao desempenho:

Cache de Biblioteca Cache de Dicionário de Dados

Page 26: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA – Shared Pool - Cache de Biblioteca

Armazena as informações sobre as instruções SQL e PL/SQL mais usadas recentemente.

Permite o compartilhamento de instruções usadas normalmente.

É gerenciado por um algoritmo LRU (Least Recently Used).

Consiste em duas estruturas de memória: Área SQL compartilhada Área PL/SQL compartilhada

Tamanho determinado pelo dimensionamento da SHARED POOL.

Page 27: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA – Shared Pool - Cache de Dicionário de

Dados

As informações sobre o banco de dados (dados de contas de usuários, nomes de arquivos de dados, nomes de segmentos, locais de extensões, descrições de tabelas e privilégios de usuários) são armazenadas nas tabelas do dicionário de dados.

Quando o servidor necessita dessas informações, as tabelas do dicionário de dados são lidas e os dados retornados são armazenados no Cache de Dicionário de Dados.

Page 28: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Cache de Buffer do Banco de Dados

Page 29: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Cache de Buffer do Banco de Dados

Quando uma consulta é processada, o processo do servidor Oracle consulta os blocos necessários no Cache de Buffer do Banco de Dados.

Se o bloco não é encontrado nesse cache, o processo do servidor lê o bloco no arquivo de dados e coloca uma cópia no Cache de Buffer do Banco de Dados.

Como as solicitações subseqüentes do mesmo bloco podem encontrar esse bloco na memória, talvez elas não precisem de leituras físicas.

O servidor Oracle usa um algoritmo LRU.

Page 30: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Buffer de Redo Log

Page 31: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Buffer de Redo Log

O Buffer de Redo Log é um buffer circular que contém alterações feitas em blocos de arquivos de dados.

As entradas de redo contêm as informações necessárias para recriar os dados anteriores às alterações feitas pelas operações INSERT, UPDATE, DELETE, CREATE, ALTER ou DROP.

O objetivo principal é a recuperação.

Page 32: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Large Pool

Page 33: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Large Pool

Área de memória opcional da SGA. Usado para:

Memória de sessão para o servidor compartilhado.

Processos do servidor de E/S. Operações de backup e restauração ou RMAN.

Pode ser dimensionado dinamicamente com LARGE_POOL_SIZE.

Page 34: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Program Global Area

Page 35: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Program Global Area

A PGA (Program Global Area ou Process Global Area) é uma região da memória que contém os dados e as informações de controle de um único processo do servidor ou de um único processo de segundo plano.

Alocada quando um processo é criado.

Page 36: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Program Global Area

Desalocada quando o processo é encerrado.

Usada somente por um processo ao contrário da SGA.

Page 37: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Processos de Segundo Plano

Page 38: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - Processos de Segundo Plano

A arquitetura Oracle tem cinco processos de segundo plano obrigatórios: DBWn, PMON, CKPT, LGWR, SMON.

Além da lista obrigatória, o Oracle tem vários processos de segundo plano opcionais iniciados quando sua respectiva opção é usada. Ex:Advanced Queuing, Real Application Clusters, Shared Server, Advanced Replication, etc.

Page 39: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - DBWn (Database Writer)

Page 40: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - DBWn (Database Writer)

Grava as alterações feitas no Cache de Buffer do Banco de Dados nos arquivos de Dados.

Isto ocorre quando: Não há buffers livres. Os buffers sujos atingem um limite. Ocorre um checkpoint. Etc.

Page 41: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - LGWR (Log Writer)

Page 42: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - LGWR (Log Writer)

O LGWR grava: No commit Quando 1/3 está cheio Quando há 1 MB de redo A cada 3 segundos Antes que o DBWn grave

Page 43: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - SMON (System Monitor)

Page 44: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - SMON (System Monitor)

Responsabilidades: Recuperação de instância Aglutina o espaço livre (arquivos de

dados) Desaloca segmentos temporários

(arquivos de dados)

Page 45: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - PMON (Processor Monitor)

Page 46: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - PMON (Processor Monitor)

Realiza uma limpeza após falhas de processos por meio de:

Faz rollback da transação atual do usuário Libera todos os bloqueios de tabela ou linha

mantidos no momento Libera outros recursos reservados pelo usuário

no momento Etc.

Page 47: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - CKPT (Checkpoint)

Page 48: Banco de Dados Oracle AESO. Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle

Banco de Dados OracleSGA - CKPT (Checkpoint)

Responsável por: Sinalizar o DBWn em checkpoints Atualizar as informações de ckeckpoint nos

cabeçalhos dos arquivos de dados. Atualizar as informações de ckepoints nos

arquivos de controle.