580 likes | 970 Views
Banco de Dados Oracle. AESO. Banco de Dados Oracle. Visão Geral dos Componentes Principais da Arquitetura Oracle. Banco de Dados Oracle. Servidor Oracle É o nome que a Oracle deu ao seu SGBD. Ele consiste de uma Instância e um Banco de Dados Oracle. Banco de Dados Oracle.
E N D
Banco de Dados Oracle Visão Geral dos Componentes Principais da Arquitetura Oracle
Banco de Dados Oracle Servidor Oracle • É o nome que a Oracle deu ao seu SGBD. Ele consiste de uma Instância e um Banco de Dados Oracle.
Banco de Dados Oracle Instâ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
Banco de Dados Oracle Instâ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)
Banco de Dados Oracle Banco de Dados Oracle • É um conjunto de dados tratados como uma unidade. • Consiste em três tipos de arquivos
Banco de Dados Oracle Arquivos do Banco de Dados: • Os arquivos de dados Contêm os dados reais do banco de dado • Os arquivos de redo log on-line Contê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
Banco de Dados Oracle Outras 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.
Banco de Dados Oracle Processos 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.
Banco de Dados Oracle Estabelecendo uma Conexão e Criando uma Sessão
Banco de Dados Oracle Estabelecendo 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.
Banco de Dados Oracle Estabelecendo 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)
Banco de Dados Oracle Estabelecendo 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.
Banco de Dados Oracle Estrutura Lógica e Física da Arquitetura Oracle
Banco de Dados Oracle Estrutura 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.
Banco de Dados Oracle Estrutura 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.
Banco de Dados Oracle Estrutura Lógica e Física da Arquitetura Oracle
Banco de Dados Oracle Estrutura Lógica
Banco de Dados Oracle Estrutura Física • A estrutura física de um banco de dados Oracle inclui três tipos de arquivos:
Banco de Dados Oracle Estrutura da Memória
Banco de Dados Oracle Estrutura 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)
Banco de Dados Oracle System 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
Banco de Dados Oracle System Global Area • A partir do 9i a SGA é dinâmica sendo dimensionada pelo parâmetro SGA_MAX_SIZE.
Banco de Dados Oracle SGA - Shared Pool • Usado para armazenar: • As instruções SQL executadas mais recentemente. • As definições de dados usadas mais recentemente.
Banco de Dados Oracle SGA - 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
Banco de Dados Oracle SGA – 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.
Banco de Dados Oracle SGA – 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.
Banco de Dados Oracle SGA - Cache de Buffer do Banco de Dados
Banco de Dados Oracle SGA - 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.
Banco de Dados Oracle SGA - Buffer de Redo Log
Banco de Dados Oracle SGA - 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.
Banco de Dados Oracle SGA - Large Pool
Banco de Dados Oracle SGA - 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.
Banco de Dados Oracle SGA - Program Global Area
Banco de Dados Oracle SGA - 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.
Banco de Dados Oracle SGA - Program Global Area • Desalocada quando o processo é encerrado. • Usada somente por um processo ao contrário da SGA.
Banco de Dados Oracle SGA - Processos de Segundo Plano
Banco de Dados Oracle SGA - 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.
Banco de Dados Oracle SGA - DBWn (Database Writer)
Banco de Dados Oracle SGA - 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.
Banco de Dados Oracle SGA - LGWR (Log Writer)
Banco de Dados Oracle SGA - 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
Banco de Dados Oracle SGA - SMON (System Monitor)
Banco de Dados Oracle SGA - SMON (System Monitor) • Responsabilidades: • Recuperação de instância • Aglutina o espaço livre (arquivos de dados) • Desaloca segmentos temporários (arquivos de dados)
Banco de Dados Oracle SGA - PMON (Processor Monitor)
Banco de Dados Oracle SGA - 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.
Banco de Dados Oracle SGA - CKPT (Checkpoint)
Banco de Dados Oracle SGA - 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.