140 likes | 214 Views
Understand the types of errors in a database, from logical to physical corruptions, with emphasis on recovery methods including media, crash, instance, and flashback database. Learn about rollback and rollback-to-recovery phases, and reference valuable sources for Oracle recovery practices.
E N D
Recovery In Oracle TBD Vladimir Luz Recovery in Oracle
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
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
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
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
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
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
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
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
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
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
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
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
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