140 likes | 214 Views
Recovery In Oracle. TBD Vladimir Luz. 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.
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