Baixe o app para aproveitar ainda mais
Prévia do material em texto
Oracle Database 10g: Workshop de Administração II Apresentação Eletrônica D17092BP30 Edição 3.0 Março de 2006 D45127 ® Autores Tom Best M.J. Billings Revisores e Colaboradores Técnicos Herbert Bradbury Howard Bradley Harald van Breederode M.J. Bryksa Donna Cooksey Joe Fong Andy Fortunak Gerlinde Frenzen Joel Goodman Sushma Jagannath Christine Jeal Pierre Labrousse Jerry Lee Stefan Lindblad Wendy Lo Yi Lu Andreas Reinhardt Ira Singer James Spiller Janet Stern Jean-Francois Verrier Redatores Aju Kumar Nita Pavitran Designers Gráficos Steve Elwood Sanjeev Sharma Editor Sujatha Nagendra Copyright © 2006, Oracle. Todos os direitos reservados. Isenção de Responsabilidade Esta documentação contém informações proprietárias e é protegida pela legislação de direitos autorais e por outras leis de propriedade intelectual. A cópia e a impressão deste documento são permitidas exclusivamente para uso durante os cursos de treinamento da Oracle. O documento não poderá ser modificado de nenhuma forma. Salvo quando o uso estiver em conformidade com a lei de direitos autorais, é vedado usar, compartilhar, fazer download ou upload, copiar, imprimir, exibir, reproduzir, publicar, licenciar, divulgar, transmitir ou distribuir o presente documento, no todo ou em parte, sem a expressa autorização da Oracle. As informações contidas neste documento estão sujeitas a alterações sem aviso prévio. Eventuais problemas encontrados no documento deverão ser reportados por escrito e enviados para: Oracle University, 500 Oracle Parkway, Redwood Shores, California 94065 EUA. Distribuidor no Brasil: Oracle do Brasil Sistemas Ltda. Av. Alfredo Egydio de Souza Aranha, 100, São Paulo, SP - 04726-170 - Brasil - CNPJ: 59.456.277/0001-76 Este documento pode conter erros. Aviso de Direitos Restritos Caso o destinatário do presente documento seja o Governo dos Estados Unidos ou qualquer pessoa que esteja usando o documento em seu nome, será aplicado o seguinte aviso: DIREITOS DO GOVERNO DOS EUA Os direitos do Governo dos EUA de usar, modificar, reproduzir, divulgar, exibir ou publicar estes materiais de treinamento são restritos pelas condições estabelecidas no contrato de licença da Oracle e/ou no contrato do Governo dos EUA aplicável. Aviso de Registro de Marca Oracle, JD Edwards e PeopleSoft são marcas comerciais da Oracle Corporation e/ou de suas coligadas. Outros nomes poderão constituir marcas comerciais de seus respectivos titulares. Copyright © 2006, Oracle. Todos os direitos reservados. Introdução Copyright © 2006, Oracle. Todos os direitos reservados. Objetivos da Lição Ao concluir esta lição, você será capaz de: • Listar os objetivos do curso e explicar a estrutura da aula • Rever a arquitetura do Oracle Database 10g Copyright © 2006, Oracle. Todos os direitos reservados. Objetivos do Curso Neste curso, você obterá experiência no: • Uso do RMAN (Recovery Manager) em backup e recuperação avançados • Emprego de práticas de monitoramento de banco de dados relacionadas a memória, desempenho e armazenamento • Gerenciamento de recursos, programações de jobs, segurança e problemas de globalização Copyright © 2006, Oracle. Todos os direitos reservados. Programação Sugerida 1: Introdução 2: Configurando o RMAN 3: Usando o RMAN 4: Recuperação Não Crítica 5: Recuperação 6: Flashback 7: Danos 8: Memória 9: Desempenho 10: Esquema 11: Armazenamento 12: ASM 13: Recursos 14: Scheduler 15: Segurança 16: Globalização 17: Workshop Apêndices Copyright © 2006, Oracle. Todos os direitos reservados. Conteúdo do Curso DBAI 1. Introdução 2. Instalação 3. Criação de Bando de Dados 4. Instância 5. Armazenamento 6. Usuários 7. Esquema 8. Dados e Concorrência 9. Operações de Undo 10. Segurança 11. Rede 12. Manutenção Pró-ativa 13. Desempenho 14. Conceitos de Backup e Recuperação 15. Backup 16. Recuperação 17. Flashback 18. Movendo Dados Copyright © 2006, Oracle. Todos os direitos reservados. Exemplos do Curso: O Esquema HR REGIONS REGION_ID (PK) REGION_NAME COUNTRIES COUNTRY_ID (PK) COUNTRY_NAME REGION_ID (FK) LOCATIONS LOCATION_ID (PK) STREET_ADDRESS POSTAL_CODE CITY STATE_PROVINCE COUNTRY_ID (FK) DEPARTMENTS DEPARTMENT_ID (PK) DEPARTMENT_NAME MANAGER_ID LOCATION_ID (FK) JOBS JOB_ID (PK) JOB_TITLE MIN_SALARY MAX_SALARY EMPLOYEES EMPLOYEE_ID (PK) FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE JOB_ID (FK) SALARY COMMISION_PCT MANAGER_ID (FK) DEPARTMENT_ID (FK) JOB_HISTORY EMPLOYEE_ID (PK) START_DATE (PK) END_DATE JOB_ID (FK) DEPARTMENT_ID (FK) REGIONS COUNTRIES LOCATIONS DEPARTMENTS JOBS EMPLOYEES JOB_HISTORY Copyright © 2006, Oracle. Todos os direitos reservados. Oracle Database 10g: O Banco de Dados para a Grade • ASM (Automatic Storage Management) • Clusterware portável • RAC (Real Application Clusters) e gerenciamento automático de carga de trabalho • Resource Manager • Oracle Streams • Gerenciamento centralizado com o Enterprise Manager Grid Control • Novos recursos de auto-gerenciamento do Oracle Database 10g Copyright © 2006, Oracle. Todos os direitos reservados. Arquitetura do Banco de Dados: Revisão Estruturas de armazenamento Estruturas de memória Estruturas do processo Instância SGA (System Global Area) Processos de background Arquivos do banco de dados Copyright © 2006, Oracle. Todos os direitos reservados. Estruturas de Memória Oracle Java pool Cache de bufferdo banco de dados Buffer de redo log Shared pool Large pool SGA Streams pool Processo do servidor 1 PGA Processo do servidor 2 PGA Processo debackground PGA Copyright © 2006, Oracle. Todos os direitos reservados. Processos Oracle System Monitor (SMON) Database Writer (DBWn) Check- point (CKPT) LogWriter (LGWR) Process Monitor (PMON) Archiver (ARCn) Processo do servidor Processo do servidor Processo do servidor Processo do servidor SGA (System Global Area) Processos de background Copyright © 2006, Oracle. Todos os direitos reservados. Revisando o Gerenciamento de Instâncias Oracle SGA Database Writer (DBWn) LogWriter (LGWR) Cache de buffer do banco de dados Buffer de redo log 1 Processo do usuário 2 Exemplo: Iniciando uma instância do banco de dados Estabelecendo uma conexão System Monitor (SMON) Process Monitor (PMON) Arquivos de dados Arquivos de redo log Instância Processo do servidor3 Copyright © 2006, Oracle. Todos os direitos reservados. O usuário atualiza uma linha. Arquivos de redo log Revisando o Gerenciamento de Instâncias Oracle Instância SGA Database Writer (DBWn) Cache de buffer do banco de dados Buffer de redo log Processo do servidor Processo do usuário 4 10 7 6 5 8 Exemplo: Processando uma instrução SQL Archiver (ARCn) 9 Checkpoint (CKPT) Arquivos de dados Logs de arquivamento Arquivo de controle LogWriter (LGWR) Copyright © 2006, Oracle. Todos os direitos reservados. Estrutura Física do Banco de Dados Arquivos de redo log on-line Arquivo de senha Arquivo de parâmetros Arquivos de log de arquivamento Arquivos de controle Arquivos de dados Arquivos de log de alerta e rastreamento Arquivos de backup Copyright © 2006, Oracle. Todos os direitos reservados. Exemplo: SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u01/oradata'; SQL> CREATE TABLESPACE tbs_1; OMF (Oracle Managed Files) Especificam operações de arquivos em termos de objetos do banco de dados, e não por nome de arquivo. Define o local dos backups do RMAN DB_RECOVERY_FILE_DEST Define o local dos arquivos de redo log e a criação do arquivo de controle DB_CREATE_ONLINE_LOG_DEST_n Define o local do diretório default do sistema de arquivos para arquivos de dados e arquivos temporários DB_CREATE_FILE_DEST. DescriçãoParâmetro Copyright © 2006, Oracle. Todos os direitos reservados. Estruturas Lógicas e Físicas do Banco de Dados Banco de dados Lógico Físico Tablespace Arquivode dados Bloco do sistema operacional Segmento Extensão Bloco de dados Oracle EsquemaCopyright © 2006, Oracle. Todos os direitos reservados. Arquitetura do Banco de Dados: Resumo dos Componentes Estruturais • Estruturas de memória – SGA (System Global Area): Cache de buffer do banco de dados, buffer de redo e vários pools – PGA (Program Global Area) • Estruturas de processo – Processos do usuário e do servidor: – Processos de background: SMON, PMON, DBWn, CKPT, LGWR, ARCn e assim por diante • Estruturas de armazenamento – Lógicas: Banco de dados, esquema, tablespace, segmento, extensão e bloco Oracle – Físicas: Arquivos para dados, parâmetros, redo e bloco do sistema operacional Copyright © 2006, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Listar os objetivos do curso • Rever a arquitetura do Oracle Database 10g Copyright © 2006, Oracle. Todos os direitos reservados. Configurando o Recovery Manager Copyright © 2006, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Descrever o repositório e o catálogo de recuperação do RMAN • Descrever a interface da MML (Media Management Library) • Configurar parâmetros de banco de dados que afetam as operações do RMAN • Conectar-se a três tipos diferentes de bancos de dados com o RMAN • Configurar dois tipos de políticas de retenção • Alterar as definições default do RMAN com CONFIGURE Copyright © 2006, Oracle. Todos os direitos reservados. Backup e Recuperação: Revisão Os principais tópicos relacionados a backup e recuperação abordados no Curso de Administração de Banco de Dados I são: • Tipos de falhas que podem ocorrer – Instrução, sessão, instância, mídia e assim por diante • Como configurar o modo ARCHIVELOG • Como automatizar backups • Como fazer backups incrementais • Como executar e ajustar a recuperação de instância Copyright © 2006, Oracle. Todos os direitos reservados. Recursos do Recovery Manager O RMAN permite realizar as seguintes tarefas de forma flexível: • Fazer backup do bancos de dados, inclusive de arquivos de dados, arquivos de controle e redo logs arquivados • Gerenciar tarefas de backup e recuperação • Executar backup incremental e recuperação de mídia no nível do bloco • Detectar blocos danificados durante operações de backup • Usar compactação binária durante a criação de backups Copyright © 2006, Oracle. Todos os direitos reservados. Sessão do servidor Canal Sessão do servidor Enterprise Manager Componentes do Recovery Manager Banco de dados de destino Banco de dados do catálogo de recuperação Banco de dados auxiliar Disco Área de recuperação flash Canal Canal MML Opções Recovery Manager (RMAN) Copyright © 2006, Oracle. Todos os direitos reservados. Etapas de Configuração do RMAN 1. Determine o local do repositório: arquivo de controle ou catálogo de recuperação. 2. Defina as variáveis do banco de dados e do ambiente. 3. Inicie o RMAN e conecte-se ao banco de dados de destino e, opcionalmente, ao catálogo de recuperação. 4. Configure definições persistentes. Copyright © 2006, Oracle. Todos os direitos reservados. Armazenamento de Dados do Repositório do RMAN: Comparação de Opções Arquivo de controle: – Administração mais simples – Default Catálogo de recuperação: – Replica os dados do arquivo de controle – Tem espaço para mais dados – Pode atender vários destinos – Pode armazenar scripts RMAN Metadados Lista de conjuntos de backup Lista de cópias de imagem . . . Copyright © 2006, Oracle. Todos os direitos reservados. Destinos de Backup Os backups podem ser gravados no(a): • Diretório do disco • MML (dispositivo de fita) – Geralmente usada na recuperação após desastres, quando os backups em disco são perdidos • Área de recuperação flash – É uma área do disco separada para fins de backup e recuperação, bem como de flashback de banco de dados. – Você define o local e o tamanho. – Os arquivos são nomeados automaticamente com o recurso Oracle Managed Files. – Os arquivos são retidos e deletados automaticamente conforme necessário. Copyright © 2006, Oracle. Todos os direitos reservados. Gerenciamento de Mídia Recovery Manager Software do servidor de gerenciamento de mídia Biblioteca de gerenciamento de mídia Sessão do servidor (canal) Oracle Secure Backup com MML incorporada Ou Copyright © 2006, Oracle. Todos os direitos reservados. Usando uma Área de Recuperação Flash com o RMAN Você pode configurar o RMAN para usar a área de recuperação flash. Área do banco de dados Processo de backup do RMAN Área de recuperação flash DB_RECOVERY_FILE_DEST = '/u01/oracle/fra' DB_RECOVERY_FILE_DEST_SIZE = 2G Copyright © 2006, Oracle. Todos os direitos reservados. Monitorando a Área de Recuperação Flash com o EM Copyright © 2006, Oracle. Todos os direitos reservados. Uso do Espaço da Área de Recuperação Flash • Configure a política de retenção como o valor mínimo apropriado para o banco de dados. • Faça backup dos arquivos de log de arquivamento regularmente e delete-os após a conclusão do backup • Use os comandos REPORT OBSOLETE e DELETE OBSOLETE do RMAN para remover as cópias de arquivos e os backups desnecessários Copyright © 2006, Oracle. Todos os direitos reservados. V$FLASH_RECOVERY_AREA_USAGE Você pode consultar V$FLASH_RECOVERY_AREA_USAGE para exibir o uso do espaço em disco da área de recuperação flash. SQL> SELECT file_type, 2 percent_space_used AS used, 3 percent_space_reclaimable AS reclaimable, 4 number_of_files AS number 5 FROM v$flash_recovery_area_usage ; FILE_TYPE USED RECLAIMABLE FILES ----------------- --------- ----------- ------ Copyright © 2006, Oracle. Todos os direitos reservados. V$FLASH_RECOVERY_AREA_USAGE Saída da consulta V$FLASH_RECOVERY_AREA_USAGE FILE_TYPE USED RECLAIMABLE FILES ------------ ---------- ----------- ---------- CONTROLFILE 0 0 0 ONLINELOG 0 0 0 ARCHIVELOG 69.13 0 593 BACKUPPIECE 0 0 0 IMAGECOPY 0 0 0 FLASHBACKLOG 1.77 0 37 Copyright © 2006, Oracle. Todos os direitos reservados. Fazendo Backup da Área de Recuperação Flash RMAN> BACKUP RECOVERY FILES; Copyright © 2006, Oracle. Todos os direitos reservados. Vantagens do Uso de uma Área de Recuperação Flash O uso da área de recuperação flash para os arquivos relacionados à recuperação: • Simplifica a localização dos backups do banco de dados • Gerencia automaticamente o espaço em disco alocado para os arquivos de recuperação • Não requer alterações nos scripts existentes • Coloca os backups do banco de dados, os logs de arquivamento e os backups do arquivo de controle na área de recuperação flash Copyright © 2006, Oracle. Todos os direitos reservados. Definindo Parâmetros que Afetam o RMAN • Parâmetros de inicialização de banco de dados – CONTROL_FILE_RECORD_KEEP_TIME – DB_RECOVERY_FILE_DEST e DB_RECOVERY_FILE_DEST_SIZE, se estiver usando a área de recuperação flash • Variáveis de ambiente – NLS_DATE_FORMAT – NLS_LANG Copyright © 2006, Oracle. Todos os direitos reservados. Considerações sobre a Utilização do RMAN • Recursos: Memória compartilhada, mais processos • Privilégios concedidos aos usuários: – Banco de dados: SYSDBA – Sistema operacional: Acesso a dispositivos • Operações remotas: – Configurar o arquivo de senha – Garantir que haja um backup do arquivo de senha Copyright © 2006, Oracle. Todos os direitos reservados. Tipos de Conexão com o RMAN Banco de dados de destino Banco de dados do catálogo de recuperação Banco de dados auxiliar Recovery Manager Copyright © 2006, Oracle. Todos os direitos reservados. Iniciando o RMAN • Iniciando o RMAN localmente • Iniciando o RMAN remotamente UNIX: $ ORACLE_SID=DB01; export ORACLE_SID $ rman target / rman target sys/password@DB01Windows NT: C:\> set ORACLE_SID=DB01 C:\> rman target / Copyright © 2006, Oracle. Todos os direitos reservados. Argumentos de Linha de Comandos Adicionais do RMAN • Gravando a saída do RMAN em um arquivo de log • Executando um arquivo de comandos quando o RMAN é chamado • Estabelecendo conexões de banco de dados durante a inicialização do RMAN $ rman TARGET sys/oracle CMDFILE=$HOME/scripts/my_rman_script.rcv $ rman TARGET sys/oracle LOG=$HOME/oradata/u03/rman.log APPEND $ rman TARGET SYS/sys_pwd@orcl CATALOG rman/rman@rcat Copyright © 2006, Oracle. Todos os direitos reservados. Configurando Definições Persistentes para o RMAN • As definições default do RMAN são predefinidas • Use o comando CONFIGURE para: – Configurar canais automáticos – Especificar a política de retenção de backup – Especificar o número de cópias de backup a serem criadas – Definir o tipo de backup default como BACKUPSET ou COPY – Limitar o tamanho dos conjuntos de backup – Isentar um tablespace de ser submetido a backup – Ativar e desativar a otimização de backup – Configurar backups automáticos de arquivos de controle Copyright © 2006, Oracle. Todos os direitos reservados. Configurando as Definições do RMAN com o EM Copyright © 2006, Oracle. Todos os direitos reservados. Backups Automáticos do Arquivo de Controle RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; Melhor prática: A Oracle recomenda ativar o backup automático do arquivo de controle. Copyright © 2006, Oracle. Todos os direitos reservados. • Uma política de retenção descreve quais backups serão mantidos e por quanto tempo. • Há dois tipos de políticas de retenção: – Período de recuperação: Estabelece um período dentro do qual a recuperação pontual é viável – Redundância: Estabelece um número fixo de backups a serem mantidos. • Essas políticas são mutuamente exclusivas e podem ser definidas com o comando CONFIGURE. Políticas de Retenção Agora Retenção de sete dias Arquivo1Arquivo2 O Arquivo2 precisa sofrer backup: Copyright © 2006, Oracle. Todos os direitos reservados. Gerenciando Definições Persistentes • Use o comando SHOW para listar as definições atuais: • Use o comando CLEAR para redefinir qualquer definição persistente como seu valor default: RMAN> SHOW CONTROLFILE AUTOBACKUP FORMAT; RMAN> SHOW EXCLUDE; RMAN> SHOW ALL; RMAN> CONFIGURE BACKUP OPTIMIZATION CLEAR; RMAN> CONFIGURE MAXSETSIZE CLEAR; RMAN> CONFIGURE DEFAULT DEVICE TYPE CLEAR; Copyright © 2006, Oracle. Todos os direitos reservados. Alocação de Canais Canal (DISCO) BACKUP RESTORE RECOVER Sessão do servidor Sessão do servidor Banco de dados de destino Canal (SBT) RMAN Copyright © 2006, Oracle. Todos os direitos reservados. Alocação Automática e Manual de Canais • Um canal automático é aquele pré-configurado e usado para comandos subseqüentes. Para alterar o tipo de dispositivo default para a alocação automática de canais, use: • Um canal alocado manualmente é aquele que sobrepõe a definição automática de canal. Esse canal sobrepõe o canal automático para executar este bloco: RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt; RMAN> RUN { 2> ALLOCATE CHANNEL c1 DEVICE TYPE disk; 3> BACKUP DATAFILE '/u01/oradata/user01.dbf'; 4> } Copyright © 2006, Oracle. Todos os direitos reservados. Opções de Controle de Canal • Configure o paralelismo: • Especifique o tamanho máximo do componente de backup: • Formate o nome dos arquivos de backup gerados: RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3; RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK 2> MAXPIECESIZE 2G; RMAN> RUN { 2> ALLOCATE CHANNEL d1 DEVICE TYPE DISK 3> FORMAT '/disk1/backups/%U'; 4> BACKUP DATABASE PLUS ARCHIVELOG; } Copyright © 2006, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Usar o arquivo de controle ou um catálogo de recuperação para o repositório do RMAN • Alterar as definições default do RMAN com CONFIGURE • Usar a área de recuperação flash em operações do RMAN • Monitorar a área de recuperação flash usando views v$ e o Enterprise Manager • Implementar as políticas de retenção de período de recuperação e de redundância • Implementar a alocação manual e automática de canais Copyright © 2006, Oracle. Todos os direitos reservados. Visão Geral do Exercício: Configurando o RMAN Este exercício aborda os seguintes tópicos: • Utilização do Recovery Manager para estabelecer conexão com um banco de dados de destino no modo default NOCATALOG • Exibição das definições default do RMAN • Configuração de backups automáticos do arquivo de controle • Alteração da política de retenção de backup para um banco de dados Copyright © 2006, Oracle. Todos os direitos reservados. Usando o Recovery Manager Copyright © 2006, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Usar o comando BACKUP do RMAN para criar conjuntos de backup e cópias-imagem • Gerenciar os backups e as cópias-imagem feitas com o RMAN Commands BACKUP Block C.T. Inc. Update LIST REPORT DELETE Copyright © 2006, Oracle. Todos os direitos reservados. Executando Comandos do Recovery Manager • Cliente interativo – Informe comandos no prompt do RMAN. – Use ao fazer análises ou ao executar relatórios ou scripts armazenados. • Modo batch – Use com jobs automatizados. – Especifique um arquivo de comandos quando iniciar o RMAN. – Especifique o nome do arquivo de log para capturar o log da sessão. • Interface de pipe – Especifique o argumento de linha de comandos PIPE. – Use para transferir dados entre sessões ou entre o RMAN e uma aplicação externa. Copyright © 2006, Oracle. Todos os direitos reservados. Tipos de Comandos do RMAN Estes são os tipos de comandos do RMAN: • Comando stand-alone: – Executado individualmente no prompt do RMAN – Não pode ser incluído como subcomando do comando RUN • Comando de job: – Deve estar entre as chaves de um comando RUN – Executado como um grupo Alguns comandos podem ser executados como comandos stand-alone ou de job. Copyright © 2006, Oracle. Todos os direitos reservados. Comandos de Job: Exemplo Os comandos de job aparecem dentro de um bloco do comando RUN: RMAN> RUN { 2> BACKUP AS BACKUPSET 3> FORMAT '/u01/db01/backup/%d_%s_%p' 4> DURATION 10:00 MINIMIZE LOAD 5> (DATABASE); 6> SQL 'alter system archive log current'; 7> } Copyright © 2006, Oracle. Todos os direitos reservados. Comandos do RMAN: Visão Geral Banco de dados de destino REPORT LIST Banco de dados do catálogo Enterprise Manager RESTORE RECOVER FLASHBACK SPFILE BACKUP Arquivo de controle Arquivos de log armazenados RMAN Manutenção de catálogo CROSSCHECK DELETE…EXPIRED CHANGE Scripts armazenados Copyright © 2006, Oracle. Todos os direitos reservados. Comando BACKUP RMAN> BACKUP AS BACKUPSET 2> FORMAT '/BACKUP/df_%d_%s_%p.bus' 3> TABLESPACE hr_data; Conjunto de backup Arquivo de dados 1 Arquivo de dados 2 Arquivo de dados 3 Arquivo de dados 1 Arquivo de dados 2 Arquivo de dados 3 Tablespace HR_DATA Commands > BACKUP Block C.T. Inc. Update LIST REPORT DELETE Copyright © 2006, Oracle. Todos os direitos reservados. Restrições de Backup • O banco de dados deve estar montado ou aberto. • Não é possível fazer o backup de redo logs on-line. • Somente os backups “limpos” podem ser usados no modo NOARCHIVELOG. • Somente os backups de arquivos de dados “atuais” podem ser usados no modo ARCHIVELOG. Copyright © 2006, Oracle. Todos os direitos reservados. Paralelização de Conjuntos de Backup Por questão de desempenho, aloque vários canais e designe arquivos aos canais específicos. Arquivo de dados 4 Arquivo de dados 1 Arquivo de dados 5 Canal MML Componente de backup 1 Componente de backup 2 Arquivo de dados 2 Arquivo de dados 3 Arquivo de dados 9 Canal MML Arquivo de dados 6 Arquivo de dados 7 Arquivo de dados 8 Componente debackup 3 Canal MML Copyright © 2006, Oracle. Todos os direitos reservados. Backups Compactados RMAN> BACKUP AS 2> COMPRESSED BACKUPSET 3> DATABASE; RMAN> CONFIGURE DEVICE TYPE 2> DISK PARALLELISM 2 3> BACKUP TYPE TO 4> COMPRESSED BACKUPSET; Arquivos de backup compactados Arquivos do banco de dados Copyright © 2006, Oracle. Todos os direitos reservados. Cópia-Imagem Cópia do arquivo de dados 3 Cópia do log arquivado Arquivo de dados 3 Arquivo de log arquivado Arquivo de dados 3 Arquivo de log arquivado RMAN> BACKUP AS COPY 2> DATAFILE '/ORADATA/users_01_db01.dbf' 3> FORMAT '/BACKUP/users01.dbf'; RMAN> BACKUP AS COPY 4> ARCHIVELOG LIKE 'arch_1060.arc' 5> FORMAT 'arch_1060.bak'; Copyright © 2006, Oracle. Todos os direitos reservados. Tags para Backups e Cópias-Imagem Uma tag é um nome lógico designado a um conjunto de backup ou cópia-imagem. month_full_backup week_full_backup Arquivo de dados 3 Arquivo de dados 4 Conjunto de backup Arquivos de dados 1, 3 Arquivos de dados 2, 4 Conjunto de backup Copyright © 2006, Oracle. Todos os direitos reservados. Opções do Comando BACKUP • Verifica danos em blocos físicos. • Verifica danos lógicos e físicos. • Define um limite para o número de danos detectados permitido antes de abortar. • Valida os arquivos de entrada de destino antes de executar uma operação de backup. • Duplexa o conjunto de backup. • Sobregrava um conjunto de backup ou cópia- imagem existente. • Passa o controle da transferência de dados entre dispositivos de armazenamento e arquivos de dados em disco para a camada de gerenciamento de mídia. • Criptografa os arquivos de backup. Copyright © 2006, Oracle. Todos os direitos reservados. Fazendo Backup de Redo Logs Arquivados • A alternância do arquivo de redo log on-line é automática. • É efetuado o failover do log arquivado. • Você pode especificar uma faixa de redo logs arquivados para o backup. • Conjuntos de backups de arquivos de redo log arquivados não podem conter outro tipo de arquivo. RMAN> BACKUP 2> FORMAT '/disk1/backup/ar_%t_%s_%p' 3> ARCHIVELOG FROM SEQUENCE=234 4> DELETE INPUT; Copyright © 2006, Oracle. Todos os direitos reservados. Backup Completo do Banco de Dados RMAN> BACKUP DATABASE PLUS ARCHIVELOG; Cópias do arquivo de log arquivado SPFILE Arquivo de controleCópias do arquivo de dados Copyright © 2006, Oracle. Todos os direitos reservados. Tipos de Backup com o RMAN • Um backup integral contém todos os blocos de arquivos de dados usados. • Um backup incremental de nível 0 é equivalente a um backup integral que tenha sido marcado como nível 0. • Um backup incremental cumulativo de nível 1 contém apenas blocos modificados desde o último backup incremental de nível 0. • Um backup incremental de nível 1 diferencial contém apenas blocos modificados desde o último backup incremental. Backup incremental diferencial Backup incremental cumulativo Integral ou "backup incremental de nível 0" Copyright © 2006, Oracle. Todos os direitos reservados. Comparação entre Diferencial e Cumulativo • Um backup incremental diferencial contém todos os blocos alterados desde o último backup incremental. • Um backup incremental cumulativo contém todos os blocos alterados desde o último backup incremental de nível 0. Nível Dia Dom Seg Ter Qua Qui Sex Sáb Dom Nível 0 Nível 0 1 1 1c 110 01c Copyright © 2006, Oracle. Todos os direitos reservados. Rastreamento de Alterações em Blocos O processo de backup pode ser dinamizado ativando-se o rastreamento de alterações em blocos, que: • Registra os blocos alterados em um arquivo de rastreamento de alterações • É usado automaticamente pelo RMAN, se ativado • Otimiza os backups incrementais evitando verificações integrais de arquivos de dados durante o backup Lista de blocos alterados Geração de redo Redo log 1011001010110 0001110100101 1010101110011 Arquivo de rastreamento de alterações SGA CTWR Commands BACKUP > Block C.T. Inc. Update LIST REPORT DELETE Copyright © 2006, Oracle. Todos os direitos reservados. Ativando o Rastreamento de Alterações em Blocos SQL> ALTER DATABASE ENABLE 2> BLOCK CHANGE TRACKING 3> USING FILE '/mydir/rman_change_track.f' 4> REUSE; Copyright © 2006, Oracle. Todos os direitos reservados. Atualização Incremental de Backups Arquivos de backup incremental Arquivo de dados recuperado Cópia-imagem do arquivo de dados Cópia-imagem do arquivo de dados atualizada para um estado mais recente RMAN> RECOVER COPY OF 2> DATAFILE {n|'file_name'} 3> WITH TAG 'incr_upd_df1'; Commands BACKUP Block C.T. > Inc. Update LIST REPORT DELETE Copyright © 2006, Oracle. Todos os direitos reservados. Comando LIST • Lista conjuntos de backup e cópias de arquivos de dados: • Lista conjuntos de backup e cópias de arquivos de dados de um tablespace específico: • Lista conjuntos de backup e cópias com logs de arquivamento incluídos em uma faixa específica: RMAN> LIST BACKUP OF DATAFILE 2> “/db01/ORADATA/u03/users01.dbf”; RMAN> LIST BACKUP OF DATABASE; RMAN> LIST COPY OF TABLESPACE “SYSTEM”; RMAN> LIST COPY OF DATABASE ARCHIVELOG 2> FROM TIME='SYSDATE-7'; Commands BACKUP Block C.T. Inc. Update > LIST REPORT DELETE Copyright © 2006, Oracle. Todos os direitos reservados. Comando REPORT • Faz uma análise detalhada do repositório • Gera relatórios para responder a perguntas como: – Quais são os arquivos de dados do banco de dados? – Quais arquivos precisam de backup? – Quais backups podem ser deletados? – Quais arquivos são irrecuperáveis? Commands BACKUP Block C.T. Inc. Update LIST > REPORT DELETE Copyright © 2006, Oracle. Todos os direitos reservados. Comando REPORT NEED BACKUP • Lista todos os arquivos de dados que precisam de backup • Supõe que o backup mais recente será utilizado durante uma restauração • Oferece quatro opções: – Incremental – Days – Redundancy – Recovery window • Usa a configuração de política de retenção atual, caso nenhuma opção seja especificada Copyright © 2006, Oracle. Todos os direitos reservados. REPORT NEED BACKUP: Exemplos • Arquivos que precisam de mais de três backups incrementais para recuperação: • Arquivos sem backup há três dias: • Backup necessário caso ainda não existam dois ou mais backups: • Backup necessário para recuperar três dias: RMAN> REPORT NEED BACKUP days 3; RMAN> REPORT NEED BACKUP incremental 3; RMAN> REPORT NEED BACKUP redundancy 2; RMAN> REPORT NEED BACKUP 2> recovery window of 3 days; Copyright © 2006, Oracle. Todos os direitos reservados. REPORT OBSOLETE e DELETE OBSOLETE • Localizam todos os arquivos de recuperação obsoletos de acordo com as definições da política de retenção atual: • Listam os arquivos de recuperação obsoletos, se não forem necessárias mais do que duas cópias de backup: • Deletam o conjunto de backup com uma chave de conjunto de backup igual a 4: • Deletam os arquivos de recuperação considerados obsoletos, porque têm mais de dois backups: RMAN> REPORT OBSOLETE REDUNDANCY 2; RMAN> REPORT OBSOLETE; RMAN> DELETE BACKUPSET 4; RMAN> DELETE OBSOLETE REDUNDANCY 2; Commands BACKUP Block C.T. Inc. Update LIST REPORT > DELETE Copyright © 2006, Oracle. Todos os direitos reservados. Gerenciando Backups com o EM Auxílio de navegação: Home page do banco de dados > Maintenance > Manage Current Backups Copyright © 2006, Oracle. Todos os direitos reservados. Views Dinâmicas do RMAN • V$ARCHIVED_LOG • V$BACKUP_CORRUPTION • V$BACKUP_DEVICE • V$BACKUP_FILES • V$BACKUP_PIECE • V$BACKUP_REDOLOG • V$BACKUP_SET • V$BACKUP_SPFILE • V$COPY_CORRUPTION • V$RMAN_CONFIGURATION Copyright © 2006, Oracle. Todos os direitos reservados. Monitorando Backups com o RMAN • Correlacione as sessões do servidor e os canais usando o comando SET COMMAND ID. • Consulte as views V$PROCESS e V$SESSION para determinar uma correspondênciaentre sessões e canais do RMAN. • Consulte a view V$SESSION_LONGOPS para monitorar o andamento dos backups e das cópias. • Use um utilitário do sistema operacional para monitorar o processo ou os threads. Copyright © 2006, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Usar o comando BACKUP do RMAN para criar conjuntos de backup e cópias-imagem • Listar os backups e as cópias-imagem feitas com o RMAN • Informar e deletar backups obsoletos do RMAN Copyright © 2006, Oracle. Todos os direitos reservados. Visão Geral do Exercício: Fazendo o Backup do Banco de Dados Este exercício aborda os seguintes tópicos: • Ativação do arquivamento de redo logs para um banco de dados • Uso do RMAN para exibir a estrutura do banco de dados • Uso do Recovery Manager para fazer backup de arquivos de dados e do arquivo de controle • Uso do Recovery Manager para criar cópias-imagem dos arquivos de dados • Criação de um backup compactado de um banco de dados • Programação de um job de backup Copyright © 2006, Oracle. Todos os direitos reservados. Recuperando Perdas Não Críticas Copyright © 2006, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Recuperar tablespaces temporários • Recuperar um membro de um grupo de redo logs • Recuperar um índice perdido • Recriar o arquivo de senha Copyright © 2006, Oracle. Todos os direitos reservados. Causas da Perda de Dados A perda de arquivos pode ser causada por: • Erro do usuário • Erro da aplicação • Falha de mídia Copyright © 2006, Oracle. Todos os direitos reservados. Corrija o problema tomando uma destas medidas: • Crie um novo arquivo. • Reconstrua o arquivo. • Recupere o arquivo perdido ou danificado. Comparação entre Crítico e Não Crítico Uma perda de arquivo não crítica é aquela em que o banco de dados pode continuar funcionando. Copyright © 2006, Oracle. Todos os direitos reservados. Perdendo um TEMPFILE SQL> select * from big_table order by 1,2,3,4,5,6,7,8,9,10,11,12,13; select * from big_table order by 1,2,3,4,5,6,7,8,9,10,11,12,13 * ERROR at line 1: ORA-01565: error in identifying file '/u01/app/oracle/oradata/orcl/temp01.dbf' ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory As instruções SQL que exigem espaço TEMP para serem executadas falham caso esteja faltando um dos arquivos temporários. Copyright © 2006, Oracle. Todos os direitos reservados. Recuperando a Perda de um TEMPFILE Arquivo de senha Arquivo de parâmetros SYSTEM SYSAUX UNDO USERS INDEX Arquivo de redo log 1B Arquivo de redo log 1A Arquivo de redo log 2B Arquivo de redo log 2A Arquivos de controle TEMP Copyright © 2006, Oracle. Todos os direitos reservados. Status do Grupo de Logs: Revisão Um grupo de redo logs tem um dos seguintes valores de status em qualquer momento específico: • CURRENT: O processo LGWR está gravando dados de redo no grupo de redo logs no momento. • ACTIVE: Não são mais feitas gravações no grupo de redo logs, mas ele ainda é necessário para a recuperação de instâncias. • INACTIVE: Não são mais feitas gravações no grupo de redo logs, e ele não é mais necessário para a recuperação de instâncias. Copyright © 2006, Oracle. Todos os direitos reservados. Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_arc1_25739.trc: ORA-00313: open failed for members of log group 2 of thread 1 ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02b.log' ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory Perdendo um Membro do Grupo de Redo Logs O log de alerta e o arquivo de rastreamento do processo archiver (ARCn) registram um erro quando está faltando um membro do grupo de arquivos de redo log. Copyright © 2006, Oracle. Todos os direitos reservados. Recriando Arquivos de Redo Log SQL> ALTER DATABASE DROP LOGFILE MEMBER > '/u01/app/oracle/oradata/orcl/redo02b.log'; SQL> !rm /u01/app/oracle/oradata/orcl/redo02b.log SQL> ALTER DATABASE ADD LOGFILE MEMBER > '/u01/app/oracle/oradata/orcl/redo02b.log' > TO GROUP 2; Arquivo de senha Arquivo de parâmetros SYSTEM SYSAUX UNDO USERS INDEX Arquivo de redo log 1B Arquivo de redo log 1A Arquivo de redo log 2A Arquivos de controle TEMP Arquivo de redo log 2B Copyright © 2006, Oracle. Todos os direitos reservados. Recriando Arquivos de Redo Log Copyright © 2006, Oracle. Todos os direitos reservados. Recriando Índices Use estas opções para reduzir o tempo de criação do índice: • PARALLEL • NOLOGGING SQL> CREATE INDEX rname_idx 2 ON hr.regions (region_name) 3 PARALLEL 4; Copyright © 2006, Oracle. Todos os direitos reservados. Administração remota do banco de dados Administração local do banco de dados Sim Sim Não Não Você tem uma conexão segura? Use a autenticação do sistema operacional. Use um Arquivo de senha. Métodos de Autenticação para Administradores de Bancos de Dados Você deseja usar a autenticação do sistema operacional? Copyright © 2006, Oracle. Todos os direitos reservados. Recriando um Arquivo de Autenticação de Senha 1. Efetue login no banco de dados usando a autenticação do sistema operacional. 2. Defina o parâmetro REMOTE_LOGIN_PASSWORDFILE como NONE e reinicie o banco de dados. 3. Recrie o arquivo de senha usando orapwd. 4. Defina REMOTE_LOGIN_PASSWORDFILE como EXCLUSIVE. 5. Adicione usuários ao arquivo de senha e designe os privilégios apropriados a cada usuário. 6. Reinicie a instância. $ orapwd file=$ORACLE_HOME/dbs/orapwORCL password=admin entries=5 Copyright © 2006, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Recuperar tablespaces temporários • Recuperar um membro de um grupo de redo logs • Recuperar um índice perdido • Recriar o arquivo de senha Copyright © 2006, Oracle. Todos os direitos reservados. Visão Geral do Exercício: Recuperando a Perda de um TEMPFILE e de um Arquivo de Redo Log Este exercício aborda os seguintes tópicos: • Inicialização de um banco de dados sem um arquivo temporário • Criação de um novo tablespace temporário • Alteração do tablespace temporário default de um banco de dados • Recuperação de um membro de redo log on-line perdido Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação de Banco de Dados Copyright © 2006, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Executar uma recuperação completa ou incompleta gerenciada pelo usuário • Identificar situações nas quais é necessária uma recuperação incompleta • Executar uma recuperação completa ou incompleta usando o RMAN • Executar uma recuperação incompleta baseada em horário, SCN, seqüência de log, pontos de restauração ou método de cancelamento • Recuperar um arquivo de controle com backup automático • Usar o Enterprise Manager para executar recuperações • Recuperar tablespaces somente para leitura Ger. usuário RMAN CLI EM Completa Incompleta Arquivo de controle RO TBS Copyright © 2006, Oracle. Todos os direitos reservados. Métodos de Recuperação Existem dois métodos de recuperação: • Recuperação gerenciada por usuário – Os arquivos devem ser mantidos e movidos manualmente. – Use comandos SQL*Plus. • Recuperação do RMAN – Os arquivos são gerenciados automaticamente. – Use a funcionalidade do RMAN, incluindo todos os recursos de manutenção do repositório e de geração de relatórios. – Pode ser feita com o Enterprise Manager. – Método recomendado pela Oracle Corporation. Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Gerenciada por Usuário: Comando RECOVER • Restaure todos os arquivos do banco de dados a partir de um backup e recupere o banco de dados: • Restaure os arquivos de dados danificados a partir de um backup e recupere esses arquivos: Ou: SQL> RECOVER DATABASE SQL> RECOVER TABLESPACE index_tbsSQL> RECOVER DATAFILE 2> '/oradata/indx01.dbf' Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação do RMAN: Comandos RESTORE e RECOVER run{ sql "ALTER TABLESPACE inv_tbs OFFLINE IMMEDIATE"; RESTORE TABLESPACE inv_tbs; RECOVER TABLESPACE inv_tbs DELETE ARCHIVELOG; sql "ALTER TABLESPACE inv_tbs ONLINE"; } Ger. usuário > RMAN CLI EM Completa Incompleta Arquivo de controle RO TBS Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação com o Enterprise Manager Com o Recovery Wizard do Enterprise Manager, você pode criar e executar um script do RMAN para realizar a recuperação. RMAN> RECOVER DATABASE … Ger. usuário RMAN CLI > EM Completa Incompleta Arquivo de controle RO TBS Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Completa e Incompleta Existem dois tipos de recuperação: • A recuperação completa atualiza o banco de dados até o presente, incluindo todas as alterações de dados efetuadas até o momento em que a recuperação foi solicitada. • A recuperação incompleta leva o banco de dados até um momento específico anterior à solicitação da operação de recuperação. Tarefa de recuperação iniciada neste momento Recuperação completa Recuperação incompleta Transações ausentes após recuperação incompleta Restauração deste backup Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Completa Arquivos de dados restaurados Arquivos de dados com transações submetidas ou não a commit Arquivos de dados recuperados Alterações aplicadas Undo aplicado 6 5 3 2 1 Log arquivadoLog arquivadoRedo log on-line 4 Banco de dados aberto Ger. usuário RMAN CLI EM > Completa Incompleta Arquivo de controle RO TBS Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Incompleta Arquivos de dados com transações submetidas ou não a commit até um momento específico Arquivos de dados ecuperados até um momento específico Undo aplicado 6 5 3 2 1 Log arquivadoLog arquivadoRedo log on-line 4 Banco de dados aberto X X Alterações aplicadas até um momento específico Arquivos de dados restaurados até o momento necessário no passado Ger. usuário RMAN CLI EM Completa > Incompleta Arquivo de controle RO TBS Copyright © 2006, Oracle. Todos os direitos reservados. Situações Que Exigem Recuperação Incompleta • Há uma falha na recuperação completa em decorrência da falta de um arquivo de log arquivado. • Um ou mais arquivos de redo log não arquivados e um arquivo de dados são perdidos. • Um backup do arquivo de controle é usado para abrir ou recuperar o banco de dados. Copyright © 2006, Oracle. Todos os direitos reservados. Tipos de Recuperação Incompleta Existem quatro tipos de recuperação incompleta: • Recuperação baseada em horário • Recuperação baseada em cancelamento • Recuperação baseada em alteração • Recuperação de seqüência de log Copyright © 2006, Oracle. Todos os direitos reservados. Executando a Recuperação Incompleta Gerenciada por Usuário • Recupere um banco de dados até um horário especificado: • Recupere um banco de dados até o cancelamento: • Recupere usando um arquivo de controle de backup: SQL> RECOVER DATABASE UNTIL CANCEL SQL> RECOVER DATABASE UNTIL 2 TIME '2005-12-14:12:10:03'; SQL> RECOVER DATABASE 2 UNTIL TIME '2005-12-14:12:10:03' 3 USING BACKUP CONTROLFILE; Copyright © 2006, Oracle. Todos os direitos reservados. Executando a Recuperação Incompleta Gerenciada por Usuário Para executar a recuperação incompleta gerenciada por usuário, siga este procedimento: 1. Faça shutdown do banco de dados. 2. Restaure os arquivos de dados. 3. Monte o banco de dados. 4. Recupere o banco de dados. 5. Abra o banco de dados com a opção RESETLOGS. Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Baseada em Horário Gerenciada por Usuário: Exemplo Este é o cenário: • Um job executado com erro e seus efeitos precisam ser desfeitos. • Isso ocorreu há 15 minutos e houve pouca atividade de banco de dados desde então. • Você decide executar uma recuperação incompleta para restaurar o estado do banco de dados de 15 minutos atrás. SQL> SHUTDOWN IMMEDIATE $ cp /BACKUP/* /u01/db01/ORADATA SQL> STARTUP MOUNT SQL> RECOVER DATABASE UNTIL TIME '2005-11-28:11:44:00'; SQL> ALTER DATABASE OPEN RESETLOGS; Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Baseada em Cancelamento Gerenciada por Usuário: Exemplo O cenário é o mesmo do exemplo baseado em horário, exceto pelas seguintes descobertas: • Os redo logs não são multiplexados. • Um dos redo logs on-line não foi encontrado. • O redo log ausente não foi arquivado. • O redo log continha informações das 11:34. • Vinte e seis minutos de dados foram perdidos. • Os usuários podem reinserir seus dados manualmente. Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Baseada em Cancelamento Gerenciada por Usuário: Exemplo Recupere o banco de dados da seguinte maneira: 1. Faça shutdown do banco de dados. 2. Restaure todos os arquivos de dados do backup mais recente. 3. Você já tem um backup válido; portanto, monte o banco de dados. 4. Execute RECOVER DATABASE UNTIL CANCEL. 5. Execute ALTER DATABASE OPEN RESETLOGS para abrir o banco de dados. Copyright © 2006, Oracle. Todos os direitos reservados. Executando a Recuperação Incompleta com o RMAN 1. Monte o banco de dados. 2. Aloque vários canais para fins de paralelização. 3. Restaure todos os arquivos de dados. 4. Recupere o banco de dados usando UNTIL TIME, UNTIL SEQUENCE ou UNTIL SCN. 5. Abra o banco de dados usando RESETLOGS. Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Baseada em Horário com o RMAN: Exemplo RMAN> RUN { 2> SET UNTIL TIME = '2005-11-28:11:44:00'; 3> RESTORE DATABASE; 4> RECOVER DATABASE; 5> ALTER DATABASE OPEN RESETLOGS; } Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação de Seqüência de Log com o RMAN: Exemplo RMAN> RUN { 2> SET UNTIL SEQUENCE 120 THREAD 1; 3> ALTER DATABASE MOUNT; 4> RESTORE DATABASE; 5> RECOVER DATABASE; # recovers through log 119 6> ALTER DATABASE OPEN RESETLOGS; 7> } Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Incompleta com o Enterprise Manager Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Incompleta e o Log de Alerta Veja abaixo algumas das melhores práticas referentes ao log de alerta em cenários de recuperação incompleta: • Verifique o log de alerta antes e depois da recuperação. • Procure informações sobre erros, dicas e SCNs. • Confirme se as etapas do processo de recuperação foram bem-sucedidas. Copyright © 2006, Oracle. Todos os direitos reservados. Pontos de Restauração Um ponto de restauração: • Serve como um apelido para um SCN ou momento específico • É armazenado no arquivo de controle • Pode ser usado com: – RECOVER DATABASE – FLASHBACK DATABASE – FLASHBACK TABLE SQL> CREATE RESTORE POINT before_load; before_load RMAN> RECOVER DATABASE UNTIL RESTORE POINT before_load;2 1 Copyright © 2006, Oracle. Todos os direitos reservados. Recuperação Incompleta: Melhores Práticas • Planeje e teste cenários com antecedência. • Investigue e verifique a necessidade da recuperação incompleta. • Siga todas as etapas com cuidado. • Faça backups do banco de dados inteiro antes e depois da recuperação. • Sempre verifique se a recuperação foi bem-sucedida. • Aproveite as vantagens dos pontos de restauração. Copyright © 2006, Oracle. Todos os direitos reservados. Recuperando um Arquivo de Controle por Backup Automático Recovery Manager (RMAN) Área de recuperação flash Banco de dados Arquivo de controle RECOVER DATABASE; ALTER DATABASE OPEN RESETLOGS; ALTER TABLESPACE temp ADD TEMPFILE...; RMAN> RESTORE CONTROLFILE TO 2> '/oradata/ctlfile.bak' FROM AUTOBACKUP; Ger. usuário RMAN CLI EM Completa Incompleta> Arquivo de controle RO TBS Copyright © 2006, Oracle. Todos os direitos reservados. Criando um Novo Arquivo de Controle SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE; Arquivo de senha Arquivo de parâmetros SYSTEM SYSAUX UNDO TEMP USERS INDEX Arquivo de redo log 1B Arquivo de redo log 1A Arquivo de redo log 2B Arquivo de redo log 2A Arquivos de controle Copyright © 2006, Oracle. Todos os direitos reservados. Criando um Novo Arquivo de Controle Copyright © 2006, Oracle. Todos os direitos reservados. Recuperando Tablespaces Somente para Leitura Alteração de Estado de Tablespace Falha e recuperação Caso 1 Caso 2 Caso 3 Backup Somente para leitura Leitura/gravação Somente para leitura Somente para leitura Leitura/gravação * * * * Backup de arquivo decontrole a ser usado para recuperação se o atual for perdido Ger. usuário RMAN CLI EM Completa Incompleta Arquivo de controle > RO TBS Copyright © 2006, Oracle. Todos os direitos reservados. Questões Relativas à Recuperação de Tablespaces Somente para Leitura É necessário tomar alguns cuidados especiais em relação aos tablespaces somente para leitura durante: • A recriação de um arquivo de controle • A renomeação de arquivos de dados • A utilização de um arquivo de controle de backup Copyright © 2006, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Executar uma recuperação completa ou incompleta gerenciada pelo usuário • Executar uma recuperação completa ou incompleta usando o RMAN • Identificar situações nas quais é necessária uma recuperação incompleta • Executar uma recuperação incompleta baseada em horário, SCN, seqüência de log, pontos de restauração ou método de cancelamento • Recuperar um arquivo de controle com backup automático • Usar o Enterprise Manager para executar recuperações • Recuperar tablespaces somente para leitura Copyright © 2006, Oracle. Todos os direitos reservados. Visão Geral do Exercício: Executando uma Recuperação Incompleta Este exercício aborda os seguintes tópicos: • Recuperação pontual usando o RMAN • Recuperação após perda de arquivos de controle Copyright © 2006, Oracle. Todos os direitos reservados. Flashback Copyright © 2006, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Consultar a lixeira • Configurar o Flashback de Banco de Dados • Executar o Flashback de Banco de Dados em um momento específico • Monitorar estatísticas de log de flashback • Ativar e desativar o recurso Flashback de Banco de Dados • Usar o Recovery Wizard do Enterprise Manager para executar o Flashback de Banco de Dados • Usar pontos de restauração garantidos com o Flashback de Banco de Dados Lixeira Flashback de BD Config. FB de BD Monitorar FB de BD Pt. Rest. Gar. Copyright © 2006, Oracle. Todos os direitos reservados. Tecnologia de Flashback: Revisão SIMDados de undo TabelaAtualizar com a cláusula WHERE incorreta Dados de undo Dados de undo Dados de undo Lixeira Logs de flashback Usos Transação Versão Consulta Eliminação Banco de Dados Tecnologia de Flashback NÃOComparar dados atuais com dados antigos NÃOInvestigar vários estados históricos de dados Transação NÃOComparar versões de uma linha SIMEliminar tabelaTabela SIMTruncar tabela; alterações indesejadas em várias tabelas Banco de Dados Afeta DadosExemplos de Cenários Nível do Objeto Copyright © 2006, Oracle. Todos os direitos reservados. Flashback de Eliminação e Lixeira DROP TABLE employees; FLASHBACK TABLE employees TO BEFORE DROP; Um erro foi cometido. RECYCLEBIN=ON Copyright © 2006, Oracle. Todos os direitos reservados. 3 2 1 Lixeira DROP TABLE employees; BIN$zbjra9wy==$0 EMPLOYEES_PK EMPLOYEES Lixeira DBA_FREE_SPACE BIN$zbjrBdpw==$0 USER_OBJECTS BIN$zbjrBdpw==$0 EMPLOYEES BIN$zbjra9wy==$0 EMPLOYEES_PK 4 Os objetos são: – Renomeados – Não movimentados Copyright © 2006, Oracle. Todos os direitos reservados. Restaurando Tabelas a Partir da Lixeira • Restaure tabelas eliminadas e respectivos objetos dependentes. • Se várias entradas da lixeira tiverem o mesmo nome original: – Use os nomes exclusivos gerados pelo sistema para restaurar uma versão específica – Quando são usados os nomes originais, a tabela restaurada é LIFO (last in, first out) • Altere o nome original caso ele esteja em uso no momento. FLASHBACK TABLE <table_name> TO BEFORE DROP [RENAME TO <new_name>]; Copyright © 2006, Oracle. Todos os direitos reservados. Lixeira: Reutilização Automática de Espaço BIN$zbjrBdpw==$0 BIN$zbjra9wy==$0 BIN$zbjra9wy==$0 BIN$zbjrBdpw==$0 1 2 3 Lixeira DBA_FREE_SPACE - RECYCLEBIN Expansão automática Copyright © 2006, Oracle. Todos os direitos reservados. Lixeira: Reutilização Manual de Espaço PURGE {TABLE <table_name>|INDEX <index_name>} PURGE TABLESPACE <ts_name> [USER <user_name>] PURGE [USER_|DBA_]RECYCLEBIN Copyright © 2006, Oracle. Todos os direitos reservados. Ignorando a Lixeira DROP TABLESPACE <ts_name> [INCLUDING CONTENTS] ; DROP USER <user_name> [CASCADE] ; DROP TABLE <table_name> [PURGE] ; Copyright © 2006, Oracle. Todos os direitos reservados. Consultando a Lixeira SELECT owner, original_name, object_name, type, ts_name, droptime, related, space FROM dba_recyclebin WHERE can_undrop = 'YES'; SELECT original_name, object_name, type, ts_name, droptime, related, space FROM user_recyclebin WHERE can_undrop = 'YES'; SQL> SHOW RECYCLEBIN Copyright © 2006, Oracle. Todos os direitos reservados. Consultando Dados de Tabelas Eliminadas SELECT ... FROM "BIN$zbjrBdpw==$0" [AS OF ...] WHERE ... Lixeira USER_INDEXES YES INDEX_NAMEDROPPED NO SALES_PK USER_TABLES TABLE_NAMEDROPPED YES NO SALES BIN$zbjrBdpw==$0 EMPLOYEES BIN$zbjra9wy==$0 EMPLOYEES_PK Copyright © 2006, Oracle. Todos os direitos reservados. Flashback de Banco de Dados: Revisão A operação de Flashback de Banco de Dados: • Funciona como um botão Retroceder do banco de dados • Pode ser utilizada em caso de danos nos dados lógicos provocados pelos usuários O banco de dados está danificado. O banco de dados “retrocede”. Você pressiona o botão “Retroceder”. Os usuários geram os erros. Lixeira > Flashback de BD Config. FB de BD Monitorar FB de BD Pt. Rest. Gar. Copyright © 2006, Oracle. Todos os direitos reservados. Arquitetura do Flashback de Banco de Dados Buffer de flashback Buffer de redo log SGA LGWR RVWRLogs de flashback Redo logs … … Cache de buffer 1 Registrar imagens anteriores de blocos periodicamente. Reverter alterações no banco de dados usando imagens anteriores. Encaminhar recuperação de mídia. Todas as alterações Nem todas as alterações! 2 Copyright © 2006, Oracle. Todos os direitos reservados. Configurando o Flashback de Banco de Dados 1. Configure a área de recuperação flash. 3. Ative o Flashback de Banco de Dados. 2. Defina o alvo de retenção. SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT EXCLUSIVE; SQL> ALTER SYSTEM SET 2 DB_FLASHBACK_RETENTION_TARGET=2880 SCOPE=BOTH; SQL> ALTER DATABASE FLASHBACK ON; SQL> ALTER DATABASE OPEN; Lixeira Flashback de BD > Config. FB de BD Monitorar FB de BD Pt. Rest. Gar. Copyright © 2006, Oracle. Todos os direitos reservados. Configurando o Flashback de Banco de Dados com o EM Verifique se o banco de dados está no modo ARCHIVELOG. Copyright © 2006, Oracle. Todos os direitos reservados. Configurando o Flashback de Banco de Dados com o EM Ative o log de flashback e especifique a área de recuperação flash Copyright © 2006, Oracle. Todos os direitos reservados. Flashback de Banco de Dados: Exemplos RMAN> FLASHBACK DATABASE TO TIME = 2> "TO_DATE('2004-05-27 16:00:00', 3> 'YYYY-MM-DD HH24:MI:SS')"; RMAN> FLASHBACK DATABASE TO SCN=23565; RMAN> FLASHBACK DATABASE 2> TO SEQUENCE=223 THREAD=1; SQL> FLASHBACK DATABASE 2 TO TIMESTAMP(SYSDATE-1/24);SQL> FLASHBACK DATABASE TO SCN 53943; SQL> FLASHBACK DATABASE TO RESTORE POINT b4_load; Copyright © 2006, Oracle. Todos os direitos reservados. Executando o Flashback de Banco de Dados com o EM Selecione o tipo de objeto e de operação Copyright © 2006, Oracle. Todos os direitos reservados. Executando o Flashback de Banco de Dados com o EM Iniciando o Recovery Wizard: Copyright © 2006, Oracle. Todos os direitos reservados. Executando o Flashback de Banco de Dados com o EM Copyright © 2006, Oracle. Todos os direitos reservados. Excluindo Tablespaces do Flashback de Banco de Dados • Coloque o tablespace off-line antes de executar a recuperação de Flashback de Banco de Dados. • Elimine o tablespace ou recupere os arquivos off- line com a recuperação pontual tradicional. ALTER TABLESPACE <ts_name> FLASHBACK {ON|OFF} SQL> SELECT name, flashback_on 2 FROM v$tablespace; Copyright © 2006, Oracle. Todos os direitos reservados. Considerações sobre o Flashback de Banco de Dados • Quando a operação de Flashback de Banco de Dados for concluída, abra o banco de dados: – No modo somente para leitura para verificar se o SCN ou o tempo-alvo correto foi utilizado – Com uma operação RESETLOGS para permitir DML • O contrário de “flashback” é “recuperação”. • Não é possível usar o Flashback de Banco de Dados nas seguintes situações: – Se o arquivo de controle tiver sido restaurado ou recriado. – Se um tablespace tiver sido eliminado. – Se um arquivo de dados tiver sido comprimido. • Use TO BEFORE RESETLOGS para fazer flashback para um momento anterior à operação RESETLOGS. Copyright © 2006, Oracle. Todos os direitos reservados. Monitorando o Flashback de Banco de Dados Para monitorar a capacidade de atender o alvo de retenção: • Exiba a cota de disco da área de recuperação flash: • Determine o período de flashback atual: • Monitore a geração de logs do Flashback de Banco de Dados: SQL> SELECT estimated_flashback_size, 2 flashback_size 3 FROM V$FLASHBACK_DATABASE_LOG; SQL> SELECT * 2 FROM V$FLASHBACK_DATABASE_STAT; SQL> SELECT oldest_flashback_scn, 2 oldest_flashback_time 3 FROM V$FLASHBACK_DATABASE_LOG; Lixeira Flashback de BD Config. FB de BD > Monitorar FB de BD Pt. Rest. Gar. Copyright © 2006, Oracle. Todos os direitos reservados. Monitorando o Flashback de Banco de Dados com o EM Copyright © 2006, Oracle. Todos os direitos reservados. Pontos de Restauração Garantidos Um ponto de restauração garantido assegura que você possa executar um comando FLASHBACK DATABASE para um SCN em qualquer momento. SQL> CREATE RESTORE POINT before_load 2 GUARANTEE FLASHBACK DATABASE; Lixeira Flashback de BD Config. FB de BD Monitorar FB de BD > Pt. Rest. Gar. Copyright © 2006, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Consultar a lixeira • Configurar o Flashback de Banco de Dados • Executar o Flashback de Banco de Dados até um momento específico usando o Enterprise Manager ou o RMAN • Monitorar estatísticas de log de flashback • Ativar e desativar o recurso Flashback de Banco de Dados • Usar pontos de restauração garantidos com o Flashback de Banco de Dados Copyright © 2006, Oracle. Todos os direitos reservados. Visão Geral do Exercício: Executando o Flashback de Banco de Dados Este exercício aborda os seguintes tópicos: • Execução do Flashback de Banco de Dados para desfazer transações indesejadas • Monitoramento da retenção do Flashback de Banco de Dados • Determinação do tamanho dos logs de flashback Copyright © 2006, Oracle. Todos os direitos reservados. Lidando com Bancos de Dados Danificados Copyright © 2006, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Identificar os motivos de danos em bancos de dados: – Hardware – Software • Detectar danos em bancos de dados usando: – ANALYZE – DBVERIFY – DB_BLOCK_CHECKING – DBMS_REPAIR • Corrigir danos usando o RMAN Copyright © 2006, Oracle. Todos os direitos reservados. O Que É um Bloco Danificado? • Sempre que um bloco é lido ou gravado, é executada uma verificação de consistência. – Versão do bloco – O valor do DBA (endereço do bloco de dados) no cache comparado ao valor do DBA no buffer do bloco – Checksum do bloco, se estiver ativado • Um bloco danificado é identificado por uma destas características: – Danos de mídia – Danos lógicos (ou de software) Copyright © 2006, Oracle. Todos os direitos reservados. Sintomas de Blocos Danificados: ORA-01578 O erro ORA-01578: "ORACLE data block corrupted (file # %s, block # %s)": • É gerado quando um bloco de dados danificado é localizado • Sempre retorna o número absoluto do arquivo e do bloco • É retornado à sessão responsável pela consulta que estava em execução quando o dano foi descoberto • Aparece no arquivo alert.log Copyright © 2006, Oracle. Todos os direitos reservados. Como Lidar com Danos • Verifique o log de alerta e o arquivo de log do sistema operacional. • Use as ferramentas de diagnóstico disponíveis para descobrir o tipo de dano. • Determine se os erros são persistentes executando verificações diversas vezes. • Recupere dados do objeto danificado se necessário. Copyright © 2006, Oracle. Todos os direitos reservados. Como Lidar com Danos • Solucione os problemas de hardware: – Placas de memória – Controladoras de disco – Discos • Recupere ou restaure os dados do objeto danificado se necessário. Copyright © 2006, Oracle. Todos os direitos reservados. Recursos Relacionados a Danos SIMNenhumRecuperação de mídia de bloco SIMLógicoFlashback SIMLógicoDBMS_REPAIR NÃOLógicoDB_BLOCK_CHECKING Físico Físico Lógico Físico Dano Detectado NÃODB_BLOCK_CHECKSUM NÃOexp NÃOANALYZE NÃODBVERIFY Repara Danos Recurso Copyright © 2006, Oracle. Todos os direitos reservados. Utilitário DBVERIFY • Só funciona em arquivos de dados; não é possível verificar arquivos de redo log • Verifica a consistência dos blocos • Pode ser usado com o banco de dados aberto • Nome do programa utilitário: dbv $ dbv file=/u01/oradata/users01.dbf \ blocksize=8192 Copyright © 2006, Oracle. Todos os direitos reservados. Interpretando a Saída DBVERIFY • Uma “página” é um bloco. • Se o cabeçalho e o final do bloco não corresponderem, o DBVERIFY lerá o bloco novamente. Se corresponderem, será informado um bloco de influxo; caso contrário, será sinalizado um dano. Total Pages Examined : 12800 Total Pages Processed (Data) : 4408 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 1264 . . . Total Pages Marked Corrupt : 4 Total Pages Influx : 0 Highest block SCN : 654836 (0.654836) Copyright © 2006, Oracle. Todos os direitos reservados. Comando ANALYZE • Executa uma verificação lógica dos blocos • Não marca danos lógicos em blocos; apenas informa esses danos • Valida entradas de índices e tabelas SQL> ANALYZE TABLE table_name VALIDATE 2 STRUCTURE CASCADE; SQL> ANALYZE INDEX index_name VALIDATE 2 STRUCTURE; Copyright © 2006, Oracle. Todos os direitos reservados. Verificando a Integridade de Blocos em Tempo Real: DB_BLOCK_CHECKING O parâmetro de inicialização DB_BLOCK_CHECKING: • Controla o grau de verificações de autoconsistência executadas em cada bloco, à medida que é processado • Pode evitar danos à memória e aos dados • Pode ser definido por meio do comando ALTER SESSION ou ALTER SYSTEM DEFERRED Copyright © 2006, Oracle. Todos os direitos reservados. Verificando a Integridade de Blocos em Tempo Real: DB_BLOCK_CHECKSUM O parâmetro de inicialização DB_BLOCK_CHECKSUM: • Determina se um checksum deve ou não ser mantido e verificado em cada bloco • Pode evitar danos causados por sistemas de entrada/saída subjacentes a14f Copyright © 2006, Oracle. Todos os direitos reservados. Usando EXP para Detectar Danos A exportação convencionalpode ser usada para detectar danos. $ exp hr/hr tables=departments About to export specified tables via Conventional Path ... . . exporting table DEPARTMENTS EXP-00056: ORACLE error 1578 encountered ORA-01578: ORACLE data block corrupted (file # 5, block # 51) ORA-01110: data file 5: '/u01/app/oracle/oradata/orcl/example01.dbf' Copyright © 2006, Oracle. Todos os direitos reservados. Usando o Flashback para Danos Lógicos DBA USUÁRIO SQL de Undo ou Flashback de Tabela Dados danificados localizados Flashback de Consulta de Versão Flashback de Consulta de Transação Copyright © 2006, Oracle. Todos os direitos reservados. Package DBMS_REPAIR Procedures disponíveis • CHECK_OBJECT • FIX_CORRUPT_BLOCKS • DUMP_ORPHAN_KEYS • REBUILD_FREELISTS • SEGMENT_FIX_STATUS • SKIP_CORRUPT_BLOCKS • ADMIN_TABLES Copyright © 2006, Oracle. Todos os direitos reservados. Usando o DBMS_REPAIR 1. Detecte e informe danos. 2. Avalie os custos e as vantagens do DBMS_REPAIR. SET SERVEROUTPUT ON DECLARE num_corrupt INT; BEGIN num_corrupt := 0; DBMS_REPAIR.CHECK_OBJECT ( schema_name => 'HR', object_name => 'DEPARTMENTS', repair_table_name => 'REPAIR_TABLE', corrupt_count => num_corrupt); END; Copyright © 2006, Oracle. Todos os direitos reservados. Usando o DBMS_REPAIR 3. Torne os objetos utilizáveis. SET SERVEROUTPUT ON DECLARE num_fix INT; BEGIN num_fix := 0; DBMS_REPAIR.FIX_CORRUPT_BLOCKS ( schema_name => 'HR', object_name => 'DEPARTMENTS', object_type => DBMS_REPAIR.TABLE_OBJECT, repair_table_name => 'REPAIR_TABLE', fix_count => num_fix); END; Copyright © 2006, Oracle. Todos os direitos reservados. Usando o DBMS_REPAIR 4. Corrija danos e reconstrua dados perdidos. SET SERVEROUTPUT ON DECLARE num_orphans INT; BEGIN num_orphans := 0; DBMS_REPAIR.DUMP_ORPHAN_KEYS ( schema_name => 'SCOTT', object_name => 'PK_DEPT', object_type => DBMS_REPAIR.INDEX_OBJECT, repair_table_name => 'REPAIR_TABLE', orphan_table_name => 'ORPHAN_KEY_TABLE', key_count => num_orphans); DBMS_OUTPUT.PUT_LINE('orphan key count: ' || TO_CHAR(num_orphans)); END; Copyright © 2006, Oracle. Todos os direitos reservados. BMR (Block Media Recovery) Recuperação de mídia de bloco: • Reduz o MTTR (mean time to recover, tempo médio para recuperação) • Aumenta a disponibilidade durante a recuperação de mídia – O arquivo de dados permanece on-line durante a recuperação. – Apenas os blocos em recuperação ficam inacessíveis. • É chamada no RMAN por meio do comando BLOCKRECOVER. – Restaura blocos individuais de backups disponíveis – Faz a coordenação com o servidor para a recuperação dos blocos de dados Copyright © 2006, Oracle. Todos os direitos reservados. Comando BLOCKRECOVER O comando BLOCKRECOVER do RMAN: • Identifica os backups que contêm os blocos a serem recuperados • Lê os backups e acumula os blocos necessários em buffers de memória • Gerencia a sessão de recuperação de mídia de bloco lendo os logs de arquivamento no backup, se necessário • Não pode ser usado na recuperação incompleta RMAN> BLOCKRECOVER DATAFILE 6 BLOCK 3; Copyright © 2006, Oracle. Todos os direitos reservados. Exemplos de Uso do Comando BLOCKRECOVER • Recuperando um grupo de blocos danificados • Limitando a recuperação de mídia de bloco por tipo de restauração • Limitando a recuperação de mídia de bloco por tag de backup • Limitando a recuperação de mídia de bloco por horário, SCN ou seqüência de log Copyright © 2006, Oracle. Todos os direitos reservados. A Interface do RMAN BMR Views dinâmicas mostram o estado atual do dano. • A view V$DATABASE_BLOCK_CORRUPTION mostra a lista de blocos do banco de dados danificados no momento. • A view V$BACKUP_CORRUPTION mostra a lista de blocos danificados em backups de arquivos de dados. • A view V$COPY_CORRUPTION mostra a lista de blocos danificados em cópias de arquivos de imagens. RMAN> BLOCKRECOVER CORRUPTION LIST 2> RESTORE UNTIL TIME 'sysdate – 10'; Copyright © 2006, Oracle. Todos os direitos reservados. Ações Alternativas • Tabela: Os dados do bloco danificado são perdidos. – Elimine e recrie a tabela. Em seguida, importe os dados de um dump de exportação. – Use SQL ou PL/SQL a fim de extrair dados da tabela para uma tabela criada recentemente. • Índice: Elimine e recrie o índice. Copyright © 2006, Oracle. Todos os direitos reservados. Sumário Nesta lição, você aprendeu a: • Identificar os motivos de danos em bancos de dados: – Hardware – Software • Detectar danos em bancos de dados usando: – ANALYZE – dbverify – DB_BLOCK_CHECKING – DBMS_REPAIR • Corrigir danos usando o RMAN Copyright © 2006, Oracle. Todos os direitos reservados. Visão Geral do Exercício: Executar uma Recuperação de Mídia de Bloco Este exercício aborda os seguintes tópicos: • Detecção de danos • Identificação do local do dano • Recuperação do dano usando a recuperação de mídia de bloco Copyright © 2006, Oracle. Todos os direitos reservados. Monitorando e Gerenciando a Memória Copyright © 2006, Oracle. Todos os direitos reservados. Objetivos Ao concluir esta lição, você será capaz de: • Descrever os componentes da memória na SGA • Implementar o Gerenciamento Automático da Memória Compartilhada • Configurar manualmente os parâmetros da SGA • Configurar o gerenciamento automático da memória PGA Copyright © 2006, Oracle. Todos os direitos reservados. Gerenciamento de Memória: Visão Geral O DBA deve considerar o gerenciamento de memória como parte essencial de seu trabalho porque: • O volume de memória disponível é finito • A alocação de mais memória para atender a certos tipos de funções pode melhorar o desempenho geral • A alocação de memória ajustada automaticamente é, com freqüência, a configuração adequada, mas ambientes específicos ou até mesmo condições de curto prazo podem exigir mais atenção Copyright © 2006, Oracle. Todos os direitos reservados. Estruturas de Memória Oracle SGA Java pool Cache de bufferdo banco de dados Shared pool Buffer de redo log Large poolStreams pool Processo do servidor 1 PGA Processo do servidor 2 PGA Processo de background PGA Keep buffer cache Recycle buffer cache Caches de buffer com tamanho de bloco nK Copyright © 2006, Oracle. Todos os direitos reservados. Cache de Buffer Arquivos de dados SGA Fila de checkpoints .... DBWn Servidor DB_BLOCK_SIZE DB_CACHE_SIZE DB_RECYCLE_CACHE_SIZE DB_KEEP_CACHE_SIZE Listas LRU .... Cache de buffer do banco de dados Copyright © 2006, Oracle. Todos os direitos reservados. Usando Vários Pools de Buffers SGA Caches de buffer do banco de dados Keep pool Recycle pool Pool default Copyright © 2006, Oracle. Todos os direitos reservados. Usando Vários Pools de Buffers CREATE INDEX cust_idx … STORAGE (BUFFER_POOL KEEP …); ALTER TABLE oe.customers STORAGE (BUFFER_POOL RECYCLE); ALTER INDEX oe.cust_lname_ix STORAGE (BUFFER_POOL KEEP); Copyright © 2006, Oracle. Todos os direitos reservados. Shared pool Cache de biblioteca Cache de dicionário de dados UGA Shared pool Shared pool Shared Pool • O tamanho é especificado pelo uso de SHARED_POOL_SIZE. • O cache de biblioteca contém o texto da instrução, o código analisado por parse e o plano de execução. • O cache de dicionário de dados contém definições de tabelas, colunas e privilégios das tabelas de dicionário de dados. • A UGA (User Global Area) contém informações da sessão quando o servidor compartilhado Oracle é usado. Copyright © 2006, Oracle. Todos os direitos reservados. Shared pool Cache de buffer do banco de dados Buffer de redo log Large pool Large Pool • Pode ser configurado como uma área separada da memória na SGA • É dimensionado pelo parâmetro LARGE_POOL_SIZE • É usado no armazenamento de dados na memória para: – UGA – Operações de backup e restauração – Sessões dos servidores compartilhados – Mensagens de consulta paralela Cachede biblioteca Cache de dicionário UGA Backup Sessão Paralelo Copyright © 2006, Oracle. Todos os direitos reservados. Java Pool • Pode ser configurado como uma área separada da memória na SGA • É dimensionado pelo parâmetro JAVA_POOL_SIZE • É usado para armazenar na memória todos os códigos Java específicos da sessão e dados da JVM Shared pool Cache de buffer do banco de dados Buffer de redo log Large poolCache de biblioteca Cache de dicionário Java pool Copyright © 2006, Oracle. Todos os direitos reservados. Buffer de Redo Log SQL> UPDATE employees 2 SET salary=salary*1.1 3 WHERE employee_id=736; LGWR Arquivos de controle ARCn Arquivos de log armazenadosArquivos de redo log Arquivos de dados Shared pool Buffer de redo log Cache de buffer do banco de dados Cache de biblioteca Cache de dicionário Processo do servidor Copyright © 2006, Oracle. Todos os direitos reservados. Gerenciamento Automático da Memória Compartilhada: Visão Geral • Adapta-se automaticamente a alterações de carga de trabalho • Maximiza a utilização da memória • Ajuda a eliminar erros de falta de memória Cache de buffer Large pool Shared pool Java pool Cache de buffer Large pool Shared pool Java pool Usuários on-line Jobs batch Streams pool Streams pool Exemplo: Copyright © 2006, Oracle. Todos os direitos reservados. Vantagens do Gerenciamento Automático da Memória Compartilhada DB_CACHE_SIZE SHARED_POOL_SIZE LARGE_POOL_SIZE JAVA_POOL_SIZE STREAMS_POOL_SIZE Tamanho total da SGA SGA_TARGET Copyright © 2006, Oracle. Todos os direitos reservados. Como Funciona o ASMM • O ASMM baseia-se em informações de carga de trabalho capturadas pelo MMAN em background. • O MMAN usa advisors de memória. • A memória é movida para o local em que ela é mais necessária. • Se for usado um SPFILE (o que é recomendado): – Os tamanhos dos componentes serão salvos entre shutdowns. – Os valores salvos serão usados para fazer bootstrap do tamanho dos componentes. – Não será necessário reaprender os valores ideais. Copyright © 2006, Oracle. Todos os direitos reservados. Configurando o ASMM com o Database Control Copyright © 2006, Oracle. Todos os direitos reservados. Configurando o ASMM Manualmente Para atribuir tamanhos mínimos a alguns componentes da memória, será necessário configurar manualmente esses tamanhos: • Se, por qualquer motivo, os tamanhos calculados automaticamente não servirem aos seus propósitos • Se houver pequenas altas ou baixas no volume de memória necessária não detectadas pelo ASMM • Se você simplesmente quiser garantir um volume mínimo de memória para um componente específico Copyright © 2006, Oracle. Todos os direitos reservados. Configurando o ASMM Manualmente SGA_TARGET = 8G Tamanho total da SGA = 8 GB Java pool Cache de buffer do banco de dados Buffer de redo logShared pool Large poolSGA fixa STATISTICS_LEVEL = TYPICAL Auto-ajustável Auto-ajustável Auto-ajustávelAuto-ajustável Streams pool Pool de buffers keep Auto-ajustável Copyright © 2006, Oracle. Todos os direitos reservados. Comportamento de Parâmetros Auto-ajustáveis da SGA • Quando SGA_TARGET não é definido ou é igual a zero: – Os parâmetros auto-ajustáveis apresentam comportamento normal – Talvez seja necessário aumentar a definição de SHARED_POOL_SIZE em relação aos valores usados em versões anteriores do banco de dados. • Quando SGA_TARGET é definido como um valor diferente de zero: – O valor default dos parâmetros auto-ajustáveis é zero – O valor especificado é usado como um tamanho mínimo SELECT SUM(bytes)/1024/1024 size_mb FROM v$sgastat WHERE pool = 'shared pool'; SELECT component, current_size/1024/1024 size_mb FROM v$sga_dynamic_components; Copyright © 2006, Oracle. Todos os direitos reservados. Comportamento de Parâmetros da SGA Ajustados Manualmente • Alguns componentes não são auto-ajustáveis. – Caches de buffer KEEP e RECYCLE – Caches com diferentes tamanhos de bloco – Buffer de log • É necessário configurar esses componentes manualmente usando os parâmetros do banco de dados. • A memória usada por esses componentes reduz o volume de memória disponível para o auto-ajuste da SGA. Copyright © 2006, Oracle. Todos os direitos reservados. Usando a View V$PARAMETER SGA_TARGET = 8G SELECT name, value, isdefault FROM v$parameter WHERE name LIKE '%size'; DB_CACHE_SIZE = 0 JAVA_POOL_SIZE = 0 LARGE_POOL_SIZE = 0 SHARED_POOL_SIZE = 0 STREAMS_POOL_SIZE = 0 Copyright © 2006, Oracle. Todos os direitos reservados. Modificando o Parâmetro SGA_TARGET • O parâmetro de inicialização SGA_TARGET: – É dinâmico – Pode ser aumentado até o valor de SGA_MAX_SIZE – Pode ser reduzido até que todos os componentes atinjam o tamanho mínimo • Uma alteração no valor de SGA_TARGET afeta somente os componentes dimensionados automaticamente. Copyright © 2006, Oracle. Todos os direitos reservados. Tamanho da SGA = 8 GB Desativando o ASMM • A definição de SGA_TARGET como zero desativa o auto-ajuste. • Os parâmetros auto-ajustáveis são definidos como os respectivos tamanhos atuais. • O tamanho da SGA como um todo não é afetado. Parâmetros: sga_target = 8G shared_pool_size = 1G Parâmetros: sga_target = 0 db_cache_size = 5G shared_pool_size = 2G large_pool_size = 512M java_pool_size = 256M streams_pool_size = 256M Tamanho da SGA = 8 GB Valores originais Copyright © 2006, Oracle. Todos os direitos reservados. Redimensionando Manualmente os Parâmetros da SGA Dinâmica • Em parâmetros auto-ajustáveis, o redimensionamento manual: – Resultará no redimensionamento imediato do componente se o novo valor for maior que o valor atual – Alterará o tamanho mínimo se o novo valor for menor que o tamanho atual • O redimensionamento de parâmetros ajustados manualmente só afeta a parte ajustável da SGA. Copyright © 2006, Oracle. Todos os direitos reservados. PGA (Program Global Area) PGA Processo do servidor PGA Shared pool ou large pool PGA Conexões dedicadas Servidor compartilhado PGA Conexões de servidor compartilhado Áreas privadas para SQL Cursor e área para SQL Memória da sessão Área de trabalho Copyright © 2006, Oracle. Todos os direitos reservados. Gerenciamento Automático da Memória PGA • Ajusta dinamicamente o volume de memória PGA dedicado às áreas de trabalho, com base no parâmetro PGA_AGGREGATE_TARGET • Ajuda a maximizar o desempenho de todas as operações SQL que usam muita memória • É ativado por default Copyright © 2006, Oracle. Todos os direitos reservados. Recursos de Gerenciamento da PGA • Estatísticas para gerenciar o parâmetro de inicialização PGA_AGGREGATE_TARGET, como PGA cache hit percentage • As views utilizadas para monitorar a área de trabalho da PGA são: – v$sql_workarea_histogram – v$pgastat – v$sql_workarea_active – v$sql_workarea – v$tempseg_usage • As views utilizadas para auxiliar no dimensionamento da área de trabalho da PGA são: – v$pga_target_advice – v$pga_target_advice_histogram Copyright © 2006, Oracle. Todos os direitos reservados. Usando o Memory Advisor para Dimensionar a SGA Copyright © 2006, Oracle. Todos os direitos reservados. Usando o Memory Advisor para Dimensionar a PGA Copyright © 2006, Oracle. Todos os direitos reservados. Uso de Memória Eficiente: Diretrizes • Tente adequar a SGA à memória física. • Faça um ajuste para uma relação de cache hits de buffer mais alta, com os seguintes cuidados: – Até varreduras integrais de tabela válidas e necessárias reduzem essa relação. – É possível que leituras repetidas desnecessárias dos mesmos blocos estejam aumentando a relação artificialmente. • Use o Memory Advisor. Copyright © 2006, Oracle. Todos os direitos reservados. Diretrizes de Ajuste da Memória para o Cache de Biblioteca • Estabeleça convenções de formatação para desenvolvedores de forma que as instruções SQL tenham correspondentes no cache.
Compartilhar