Tenho backup e agora o que fazer???Bom dia, boa tarde, boa noite!!!
Ufa!! Então você não perdeu nada. hehehehe
Parece estranho falar isso, mas é uma dúvida de diversos alunos, colegas e envolvidos com Oracle: “Se eu perder todos os meus dados, mas tiver um backup, como devo proceder para a restauração??” Ou seja, o que faço com os arquivos de backup?
Vamos nesta dica hoje?
Supondo que você perdeu o seu banco de dados por algum motivo bem sério, sei lá, vamos supor que um terrorista invadiu seu datacenter e se explodiu lá dentro. Com isso, você que é muito esperto (eu imagino e espero que seja mesmo) tem suas cópias de backup bem longe do datacenter. Acertei??
Aproveitando o assunto vou comentar uma curiosidade, pelas leis de segurança de dados internacionais uma distância válida/segura para se um site de backup tem que ser maior que o raio de destruição de uma bomba atômica. Se assustou?? É isso mesmo, caso caia uma bomba atômica na “cabeça” do datacenter seus backups estarão a salvo.
Bem, vamos lá para nossa situação: Você só tem os arquivos do backup.
Primeiramente terá que reinstalar os binários do Oracle na mesma versão que estavam no servidor para que possa restaurar o ambiente.
Depois disso siga os passos abaixo e muito provavelmente obterá total sucesso:
1- Configure a variável de ambiente ORACLE_SID.
Supondo que seu SID seja orcl vamos lá:
$ export ORACLE_SID=orcl
2- Inicie o RMAN e conecte-se na instância Target para setar o DBID do banco.
$ rman target /
3- Dentro do RMAN você precisará setar o DBID (identificador do database).
Este número é a identificação do banco de dados dentro do sistema, setando ele fará com que o RMAN reconheça a qual banco pertence os backups que você pretende usar.
Comando para setar o DBID:
RMAN> SET DBID 1710860098;
Bem, vou fazer uma pausa para falar dele o DBID. Vale como dica comentar que é muito interessante você ter uma planilha com todos os seus bancos de dados e respectivos DBIDs, isso é de suma importância em operações como esta. Localize-o na v$database
4- Feito isso você deverá “startar” a instância em modo NOMOUNT
RMAN> STARTUP NOMOUNT
Observação importante, neste momento você receberá um erro (startup failed: ORA-01078: failure in processing system parameters), pois como já sabemos durante o nomount a instância lerá o arquivo de parâmetros e ele não existe. Ok calma DBA! Sem pânico beleza?
5- Agora restaure o spfile do autobackup com o comando:
RESTORE SPFILE TO PFILE ‘?/oradata/test/initorcl.ora’ FROM AUTOBACKUP;
6- Baixe a instância:
SHUTDOWN IMMEDIATE;
7- Edite o pfile restaurado do backup e caso necessário altere os parâmetros terminados com _DEST que serão a estrutura no novo local.
8- “Start” a instância em NOMOUNT (pode ser de dentro do rman mesmo.) com o pfile restaurado no passo 5
RMAN> STARTUP NOMOUNT PFILE=’?/oradata/test/initorcl.ora’;
9- Crie um bloco RUN para restaurar o controlfile do autobackup e depois monte o database.
RUN
{
RESTORE CONTROLFILE FROM AUTOBACKUP;
ALTER DATABASE MOUNT;
}
11- Verifique na V$DATAFILE no novo ambiente para determinar o nome dos datafiles como estão armazenado no controlfile(que veio restaurado) para determinar se será necessário utilizar o comando SET NEWNAME para especificar novo local.
Utilize o comando SQL ALTER DATABASE RENAME FILE para especificar o path dos redolog online. Inclua a cláusula SET UNTIL para limitar o recovery ao final do archived redo log files.Incluao comando SWITCH para que o controlfile reconheça os novos endereços dos datafiles.
12- Rode o script para proceder a tarefa.
RUN
{
SET NEWNAME FOR DATAFILE 1 TO ‘?/oradata/test/system01.dbf’;
SET NEWNAME FOR DATAFILE 2 TO ‘?/oradata/test/undotbs01.dbf’;
SET NEWNAME FOR DATAFILE 3 TO ‘?/oradata/test/sysaux.dbf’;
SET NEWNAME FOR DATAFILE 4 TO ‘?/oradata/test/users01.dbf’;
SET NEWNAME FOR DATAFILE 5 TO ‘?/oradata/test/example01.dbf’;
SQL “ALTER DATABASE RENAME FILE ”/u01/app/oracle/oradata/orcl/redo01.log” TO ”?/oradata/test/redo01.log” “;
SQL “ALTER DATABASE RENAME FILE ”/u01/app/oracle/oradata/orcl/redo02.log” TO ”?/oradata/test/redo02.log” “;
SQL “ALTER DATABASE RENAME FILE ”/u01/app/oracle/oradata/orcl/redo03.log” TO ”?/oradata/test/redo03.log” “;
SET UNTIL SCN 456931;
RESTORE DATABASE;
SWITCH DATAFILE ALL;
RECOVER DATABASE;
}
13- Abra o banco de dados com open resetlogs
Simples não é mesmo?? Porém muito útil para guiar o processo de restore e recover.
Bem meu amigo, era isso por hoje, espero que tenha curtido, e que sendo assim compartilhe com o resto do pessoal.
Grande abraço! Até a próxima e jamais esqueça hein… FOCO na META!!!! SEMPRE!!!!
Bom dia!
Muito bom, parabéns pela iniciativa.
Obrigado Diogenes! Fico feliz pela sua participação e incentivo! Continue participando. Novidades virão!
Grande abraço!!!!
Obrigado meu amigo! Agradeço pela participação!
Valeu Diogenes! Continue participando. Se quiser pode dar opiniões, palpites, etc… Grande abraço!
Obrigado pela dica Raul é de grande Valor !
Verdade meu amigo.. a gente nunca sabe quando o desatre ocorrerá e nem se ocorrerá não é mesmo? Mas se ele ocorrer temos que sair dele com rapidez e com o mínimo downtime.