Recovery In Oracle TBD Vladimir Luz Recovery in Oracle 1 Introdução Tipos de erros numa base de dados Corrupções Corrupção lógica Corrupção física Erro humano Erros acidentais ao configurar tabelas Desastres Terramotos, incêndios, tornados Falta de energia eléctrica por um período muito longo Recovery in Oracle 2 Recuperação Consiste em: Restaurar a copia dos datafiles através de um backup Reaplicar todas as alterações ao ficheiro desde o backup Tipos de recuperação Media recovery (datafile media recovery) Crash recovery Instance recovery Incomplete recovery Flashback database Recovery in Oracle 3 Backup Backup Físico Consiste em copiar os ficheiros da base de dados para outro sítio Podem ser criados usando o RMAN (Recovery Manager) ou através do sistema operativo Backup Lógico Utiliza SQL para ler a base de dados e exportar para um ficheiro binário. Recovery in Oracle 4 Fases de Recuperação (1) Todas as recuperações têm de passar por duas fases: Roll Foward Aplica sequencialmente as alterações de blocos (redo records) contidas nos redo log files Le os redo records e e obtém os blocos originais A tabela interna undo$ contem a informação das transacções pendentes, até que o sejam encontrados os redo recornd com info de commit Nessa altura essa informação é retirada da tabela Recovery in Oracle 5 Fases de Recuperação (2) Roll Backward Depois do roll foward todas as transacções que não fizeram commit têm de ser desfeitas É feito o rollback a todas as alterações que não fizeram commit. Recovery in Oracle 6 Media Recovery É usado para recuperar datafiles, controlfiles ou spfiles danificados ou perdidos. Tem de ser o administrador a pedir A base de dados tem de estar fechada O datafile tem de estar offline A recuperação começa sempre no ficheiro com menor SCN (Sistem Change Number) Recovery in Oracle 7 Crash Recovery (1) É usado quando uma instância é iniciada depois de um shutdown abort ou de um crash Feito automaticamente Cabe ao administrador tentar apenas perceber as causas que da falha Utiliza online redo logs para realizar a recuperação dos datafiles envolvidos no crash Recovery in Oracle 8 Crash Recovery (2) São repetidas as transacções no online redo log a partir da posição do checkpoit O checkpoint encontra-se na posição onde a última alteração foi guardada São aplicadas as committed tansaction e as uncommitted transactions Recovery in Oracle 9 Instance Recovery Acontece quando uma instância detecta a falha de outra instância Mecanismo idêntico ao do Crash Recovery Não é restaurada a instância em falha nem nenhuma aplicação que estava a correr nessa instância Recovery in Oracle 10 Incomplete Recovery Acontece quando uma parte dos dados é perdida mesmo após a recuperação Acontece quando não se possui todos os items necessários à recuperação Por vezes é utilizada apenas para recuperar a base de dados até um certo ponto através de um backup Recovery in Oracle 11 Flashback Database (1) Utilizada em alternativa ao point-in-time recovery Usa um tipo de log diferente – Flashback Database log O servidor da base de dados escreve periodicamente nos logs as imagens dos blocos de dados Essas imagens são utilizadas para recuperar rapidamente as alterações na base de dados Recovery in Oracle 12 Flashback Database (2) Método mais rápido que o point-in-time recovery Reduz o tempo necessário à recuperação porque não utiliza backups O tempo da recuperação é proporcional ao número de alterações e não ao tamanho da base de dados Recovery in Oracle 13 Referências Lahiri, Tirthankar - Quick Fault Recovery in Oracle Liu, Daniel T - Oracle 10g Backup and Recovery books.elsevier.com/us/bookscat/samples/155558294x/155558294x.pdf http://www.oracle.com/technology/deploy/availability/htdocs/std_recovery.html http://www.csee.umbc.edu/help/oracle8/server.815/a67778/ch22_rec.htm#1431 http://www.adp-gmbh.ch/ora http://www.adp-gmbh.ch/ora/concepts/redo_log.html http://www.csee.umbc.edu/help/oracle8/server.815/a67778/ch22_rec.htm#655 http://www-rohan.sdsu.edu/doc/oracle/server803/A54640_01/ch4_rcvs.htm http://www.sqlmagazine.com.br/Colunistas/RicardoRodney/06_RecoverNoOracle. asp Recovery in Oracle 14