arquitetura oracle
TRANSCRIPT
-
8/3/2019 Arquitetura Oracle
1/33
Explorando a Arquitetura doOracle Database
-
8/3/2019 Arquitetura Oracle
2/33
Arquitetura Oracle
-
8/3/2019 Arquitetura Oracle
3/33
Arquitetura Oracle
O RDBMS (Relational Database ManagerSystem) Oracle um sistema degerenciamento de banco de dados relacional.
O servidor Oracle consiste de:- Instncia Oracle (Oracle Instance)- Arquivos do Banco de Dados (DatabaseFiles)
-
8/3/2019 Arquitetura Oracle
4/33
Arquitetura Oracle
-
8/3/2019 Arquitetura Oracle
5/33
Arquitetura Oracle
Arquivos do Banco de Dados Oracle
- Um banco de dados Oracle (Database files) so umconjunto de dados tratados como uma unidade.
- Um banco de dados possui uma estrutura lgica efsica.- A estrutura fsica do banco de dados um conjunto dearquivos do sistema operacional. Um banco de dadosOracle eles so compostos de trs tipos de arquivos:
- Arquivos de Dados (Data Files)- Arquivos de Logs (Redo Logs)- Arquivos de Controle (Control Files)
-
8/3/2019 Arquitetura Oracle
6/33
Arquitetura Oracle
Arquivos de Dados (Data Files)
Os arquivos de dados contm os dados do banco, e eles soarmazenados em tabelas definidas pelo usurio. Alm disto,nos arquivos de dados tambm so armazenados o dicionriode dados, as imagens anteriores de dados alterados, ndices eoutros tipos de estruturas. Um banco de dados Oracle deveconter no mnimo um arquivo de dados.
-
8/3/2019 Arquitetura Oracle
7/33
Arquitetura Oracle
Caractersticas dos Arquivos de Dados:- Os arquivos de dados podem estar associados aapenas um banco de dados Oracle.
- Um ou mais arquivos de dados formam umaunidade lgica chamada tablespace.
Redo Logs- Os redo logs armazenam as mudanas efetuadas no
banco de dados para possibilitar a recuperao dosdados em caso de falhas. Um banco de dados Oracledeve possuir no mnimo dois arquivos de redo log.
-
8/3/2019 Arquitetura Oracle
8/33
Arquitetura Oracle
Arquivos de Controle (Control Files)- Os arquivos de controle contm asinformaes necessrias para manter e
verificar a integridade do banco de dados. Porexemplo, o arquivo de controle utilizado paraidentificar os arquivos de dados e os arquivos
de redo log. Um banco de dados Oracle devepossuir no mnimo um arquivo de controle.
-
8/3/2019 Arquitetura Oracle
9/33
Arquitetura Oracle Outros Arquivos Importantes
O servidor Oracle tambm faz uso de outros arquivos queno fazem parte do banco de dados:
Arquivo de Parmetros (Parameter File)Define as caractersticas da instncia Oracle. Por exemplo, ele
contm parmetros que definem o tamanho das estruturas dememria da SGA
Arquivo de Senhas (Password File)Faz a validao de quais usurios tem permisso de fazer start
up e shutdown na instncia Oracle Arquivos de Redo Log Arquivados (Archived Redo Log Files)
So cpias off-line dos arquivos de redo log, que podem sernecessrios em um processo de recuperao de falhas de mdia
-
8/3/2019 Arquitetura Oracle
10/33
Arquitetura Oracle
-
8/3/2019 Arquitetura Oracle
11/33
Arquitetura Oracle
Instncia Oracle (Oracle Instance)
Uma Instncia Oracle consiste na estrutura dememria chamada de SGA (System Global Area) enos processos em segundo plano (background
processes) utilizados para gerenciar o banco de
dadosUma Instncia Oracle somente pode abrir eutilizar um banco de dados de cada vez
-
8/3/2019 Arquitetura Oracle
12/33
Arquitetura Oracle
rea Global do Sistema (System Global Area) rea de memria utilizada para armazenar as
informaes do banco de dados que so
compartilhadas pelos processos Contm dados e informaes de controle e alocada na
memria do computador onde o servidor Oracle estaoperando
Dinmica e definida pelo parmetro SGA_MAX_SIZE
Definida em pores (granule)
Consiste de diversas estruturas de memria
-
8/3/2019 Arquitetura Oracle
13/33
Arquitetura Oracle
Oracle Database Memory Structures Shared Pool
utilizada para armazenar os comandos SQL executadosrecentemente, e as informaes dodicionrio de dados. Estes comandos SQL podem ser solicitados
por processos do usurio ou no caso de stored procedures, lidosdo dicionrio de dados. Database Buffer Cache
utilizada para armazenar os dados recentemente utilizados. Osdados so lidos e gravados nos arquivos de dados
Redo Log Bufferutilizado para armazenar as alteraes feitas no banco de dadospelos processos e servidores pelos processos em segundo plano.
-
8/3/2019 Arquitetura Oracle
14/33
Arquitetura Oracle
Java PoolUtilizado para armazenar cdigo Java.
Large Poolutilizado para armazenar grandes estruturas de
memria que no esto relacionadasdiretamente ao processamento de instrues SQL,como por exemplo blocos de dadoscopiados durante operaes de backup e recovery.
Streams Poolutilizado para manter estruturas de dados e controledo recurso Oracle Streams
-
8/3/2019 Arquitetura Oracle
15/33
Arquitetura Oracle
Processos em Segundo Plano
- Os processos em segundo plano (background processes)de uma instncia executam funes comuns que sonecessrias para atender as solicitaes de servio deusurios simultneos, sem comprometer a integridade e odesempenho do sistema.- Eles consolidam funes que, de outra forma, seriamtratadas por diversos programas Oracle executados paracada usurio.
- Ele executam tarefas de I/O e monitoram outros processosOracle para oferecer maior paralelismo, o que aumenta odesempenho e a confiabilidade.
-
8/3/2019 Arquitetura Oracle
16/33
Arquitetura Oracle
- Dependendo da configurao, uma instncia Oracle pode incluirvrios processos de segundo plano, no entanto cada instnciainclui cinco processos de segundo plano fundamentais. So Eles: O Database Writer (DBW0) responsvel por gravar dados alterados
do buffer cache do banco de dados nos arquivos de dados.
O Log Writer (LGWR) grava as alteraes registradas no buffer deredo log nos arquivos de redo log. O Monitor de Sistema (SMON, System Monitor) verifica a consistncia
no banco de dados e, se necessrio, inicia a recuperao do banco dedados quando ele aberto.
O Monitor de Processo (PMON, Process Monitor) disponibilizarecursos se um dos processos Oracle falhar.
O Checkpoint Process (CKPT) responsvel pela atualizao dasinformaes de status do banco de dados nos arquivos de controle enos arquivos de dados, sempre que as alteraes efetuadas no cachede buffer ficam registradas no banco de dados de forma permanente.
-
8/3/2019 Arquitetura Oracle
17/33
Arquitetura Oracle
-
8/3/2019 Arquitetura Oracle
18/33
Arquitetura Oracle
O Database Writer (DBW0) grava os bufferssujos do Buffer Cache do banco de dados nosarquivos de dados. Ele garante que um
nmero suficiente de buffers livres estejadisponvel no Buffer Cache de buffer. Odesempenho do banco de dados melhorado,
porque os processos de servidor efetuamalteraes somente no cache de buffer.
-
8/3/2019 Arquitetura Oracle
19/33
Arquitetura Oracle
-
8/3/2019 Arquitetura Oracle
20/33
Arquitetura Oracle
O LGWR executa gravaes seqenciais do bufferde redo log no arquivo de redo log nas situaes aseguir: Quando uma transao efetua commit.
Quando 1/3 do buffer de redo log est cheio. Quando h mais de um megabyte de alteraes
registradas no buffer de redo log. Antes de o DBW0 gravar blocos modificados do cache
de buffer do banco de dados nos arquivos de dados. Como o redo necessrio para a recuperao, o LGWR
confirma o COMMIT somente aps o redo estargravado em disco
-
8/3/2019 Arquitetura Oracle
21/33
Arquitetura Oracle
Se a instncia Oracle falhar, qualquerinformao na SGA que no foi gravada emdisco se perder. Por exemplo, a falha do
sistema operacional causa uma falha nainstncia. Depois da perda da instncia, o
processo de segundo plano SMONexecutar
automaticamente a recuperao da instnciaquando o banco de dados for reaberto.
-
8/3/2019 Arquitetura Oracle
22/33
Arquitetura Oracle
O processo de segundo plano PMONefetuauma limpeza aps falha dos processos daseguinte maneira:
- Submete a rollback a transao atual dousurio- Libera todos bloqueios de tabela ou linha que
existem no momento- Libera outros recursos que estejamreservados pelo usurio
-
8/3/2019 Arquitetura Oracle
23/33
Arquitetura Oracle
Durante um checkpoint:
Vrios buffers de banco de dados sujos includosno log que est sendo submetido a um checkpoint
so gravados nos arquivos de dados pelo DBWn. O processo de segundo plano de checkpoint CKPT
atualiza os cabealhos de todos os arquivos dedados e arquivos de controle para que reflitam aconcluso com xito.
-
8/3/2019 Arquitetura Oracle
24/33
Arquitetura Oracle
-
8/3/2019 Arquitetura Oracle
25/33
Arquitetura Oracle
Conectando a uma Instancia ORACLE
Conexo, comunicao entre o User process e o
Server process
Sesso, conexo especifica entre o User e a
Instancia atraves do User process.
-
8/3/2019 Arquitetura Oracle
26/33
Arquitetura Oracle
-
8/3/2019 Arquitetura Oracle
27/33
Arquitetura Oracle
-
8/3/2019 Arquitetura Oracle
28/33
Arquitetura Oracle
O Oracle armazena dados logicamente em
tablespaces e fisicamente em arquivos de
dados (datafiles). Apesar dos arquivos de
dados e os tablespaces estarem muito "inter-relacionados", os mesmos possuem diferenasimportantes:
Um banco de dados Oracle consiste em uma ou maisunidades de armazenamento lgicas denominadas
tablespaces, que armazenam coletivamente todos os
dados do banco de dados.
-
8/3/2019 Arquitetura Oracle
29/33
Arquitetura Oracle
Cada tablespace em um banco de dados Oracle
consiste em um ou mais arquivos denominados
arquivos de dados (datafiles), que so estruturas
fsicas compatveis com o sistema operacional noqual o Oracle executado.
Os dados de um banco de dados so armazenados
coletivamente nos arquivos de dados que
constituem cada tablespace do banco de dados.
-
8/3/2019 Arquitetura Oracle
30/33
Arquitetura Oracle
Como um banco de dados um conjunto de arquivosde dados, muito importante entender como um
banco de dados Oracle agrupa esses arquivos. Como
dito anteriormente, o Oracle faz isso sob a proteo
de um objeto de banco de dados chamado
tablespace. Antes de poder inserir dados em um
banco de dados Oracle, primeiro necessrio criar
um tablespace e depois uma tabela dentro desse
tablespace que conter os dados.
-
8/3/2019 Arquitetura Oracle
31/33
Arquitetura Oracle
Podemos observar que na criao de um
banco de dados utilizando o DBCA, o Oracle
como padro sempre cria um tablespace de
dados chamado USERS. Ao criar uma tabela necessrio incluir todas as informaes sobre
o tipo de dados que deseja manter. O cdigo
abaixo, gerado para criar a tabela CLIENTE,ilustra como o Oracle armazena informaes
sobre o tipo de dado que ir registrar:
-
8/3/2019 Arquitetura Oracle
32/33
Arquitetura Oracle
-
8/3/2019 Arquitetura Oracle
33/33
Arquitetura Oracle