domingo, 31 de agosto de 2008

Oracle Armazenamentos!

Oracle: Dinâmica -> update





O desenho representa o servidor de banco de dados. O que está dentro do quadrado pontilhado é a Instância que é composta pela System Global Area (quadrados azuis) e os Processos em Background (bolas verdes e amarelas). Os arquivos são representados pelos cilindros marrons.

Para montar o BD de forma que seja utilizável pelos usuários (modo open), o servidor utilizará o Control File para saber onde estão os arquivos, e o Parameter File para alocar a memória.

Após ser validado, o usuário se conectará ao BD através de um processo servidor dedicado ou compartilhado. Um pouco sobre como a conexão acontece já foi tratado aqui.

Ao receber a solicitação de update do usuário, o BD checará se o usuário tem direito de fazer isto nesta tabela. Se não tiver, o BD retornará um erro e estará encerrada a solicitação.

Caso o usuário tenha este direito, o BD tratará o update submetido, verificando se este já se encontra na Library Cache (biblioteca para códigos) e, se já estiver, será imediatamente executado. Se não estiver, será feito a análise sintática (parse), o plano de execução, armazenamento na biblioteca de códigos, e a execução.

Na execução, o Oracle primeiramente checa se os dados necessários estão no Database Buffer Cache e, caso não estejam lá, os dados serão buscados nos datafiles e transferidos para este cache.

É feito o update.

Imediatamente é aplicado um row-level lock para impedir que outros usuários tentem alterar a mesma linha, e também é registrada a transação no Redo Log Buffer.

O usuário faz então um commit para validar a transação.

Neste momento o servidor altera o dado no Database Buffer Cache, o processo Log Writer escreve a transação no Redo Log File e é retornada a mensagem de sucesso na transação para o usuário.

Outros processos ainda vão trabalhar para direta, ou indiretamente, garantir a integridade do BD:

- O processo ARC0 transferirá o on line redo log file para a área destinada aos Archive Files a cada log switch;

- O processo DBW0 escreverá o dado do Database Buffer Cache para o Datafile;

- O CKPT auxiliará a sincronia do Database Buffer Cache com os Data Files, anotando o SCN nos Control Files.

Oracle: Armazenamento Físico






ESTRUTURA FÍSICA:
Control Files

Contêm dados sobre o próprio BD, também conhecidos como metadados, que são informações sobre a estrutura física. Sua leitura é essencial para que o software do banco de dados consiga abrir os arquivos de dados.

Estes arquivos podem ser multiplexados para dar mais segurança, mas somente um será utilizado como primário.

Os Control Files (arquivos de controle) também guardam informações utilizadas pelo RMAN (Recovery Manager), solução de backup da Oracle.

Data Files

Arquivos de armazenamento final dos dados dos usuários ou das aplicações no BD.

Lembrando o post “Estrutura Física e Lógica”, um banco de dados pode ter múltiplos tablespaces que, cada um, pode estar armazenado em um ou mais arquivos de dados. No entanto, um arquivo é associado a um único tablespace.

Redo Log Files (on line)

Se um banco de dados parar por qualquer motivo, desde que não ocorra perda de arquivos de dados, a instância poderá voltar ao estado que estava antes do travamento aplicando os Redo Log Files.

Para uma transação ser completada e retornar uma confirmação que está ok para o usuário, o processo LGW0 precisa gravá-la no arquivo de log de redo.

ARQUIVOS ADICIONAIS:
Parameter File

Defini a configuração da instância na inicialização do BD. Entre outras coisas este arquivo contém informações de:

1. Localização dos arquivos;

2. Configurações do SGA;

3. Número de usuários que podem se conectar.

Password File

Arquivo que guarda informações de autenticação do SYSDBA e SYSOPER para administração remota.

Backup Files

Cópias de segurança utilizadas para a recuperação de banco de dados quando o arquivo original é danificado.

Archive Log Files

O processo ARC0 faz o armazenamento contínuo dos Red Log Files nos Archive Log Files, com estes arquivos têm-se um histórico das alterações de um BD. Usando o backup mais este histórico pode-se recuperar um datafile perdido.


MULTIPLEXAÇÃO
A multiplexação de um arquivo para diversos discos é uma forma de proteger o BD de falhas de mídia.

Pode-se:

1. Usar um sistema automatizado com RAID ou o ASM (produto da Oracle);

2. Multiplexar manualmente, que é fazer o Oracle gravar em diversos locais arquivos de:

a. Control Files;

b. Log de redo;

c. Archive Log Files.

Nenhum comentário: