Pular para o conteúdo principal

Postagens

Mostrando postagens de janeiro, 2020

Restore #5 - Restore Controlfiles sem backup RMAN

Restore #5 - Restore Controlfiles sem backup RMAN Imagine que você pedeu todos os seus controlfiles e não tem backup RMAN nem backup as TRACE. Usaremos aqui o SNAPSHOT CONTROLFILE para o restore.   Criando cenário: 1 - Verifique onde estão seus controlfiles e SNAPSHOT CONTROLFILE SQL> SHOW PARAMETER CONTROL    RMAN> SHOW ALL; using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name TESTE are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default . . . CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/18.3.0/dbhome_1/dbs/snapcf_TESTE.f'; # default     2 - Simule uma corrupção nos seus controlfiles. Em seguida, acompanhe o log. echo "Thiago Castro" > /u01/app/oracle/oradata/TESTE/control01.ctl echo "Thiago Castro" > /u01/app/oracle/oradata/TESTE/control02.ctl   3 - Acompanhe o alert do banco

Restore #4 - Restore Tablespace UNDO sem backup

Restore #4 - Tablespace UNDO sem backup Agora vamos recuperar o banco de dados com o tablespace de UNDO comrrompido.   Criando o cenário: 1 - Localize o caminho do seu tablespace de UNDO e faça um escrita no arquivo. Forçando uma corrupção. [oracle@teste dbs]$ echo "Thiago Castro" > /u01/app/oracle/oradata/TESTE/datafile/o1_mf_undotbs1_h33p4c21_.dbf   2 - Da mesma forma feita no Restore #3 , se tentarmos fechar o banco com SHUTDOWN IMMEDIATE, não teremos sucesso. Vamos usar SHUTDOW ABORT. SQL> shut immediate; ORA-01115: erro de IO ao ler o bloco do arquivo 18 (bloco # 1) ORA-01110: 18 do arquivo de dados: '/u01/app/oracle/oradata/TESTE/datafile/o1_mf_undotbs1_h33p4c21_.dbf' ORA-27072: Erro de entrada/saida no arquivo Additional information: 4 Additional information: 1 Restore: 1 - Crie um arquivo PFILE a partir do SPFILE SQL> CREATE PFILE FROM SPFILE;   2 - No PFILE altere o parâmetr

Restore #3 - Restore tablespace de UNDO com Backup

Restore #3 - Restore UNDO com Backup Imagine seu tablespace de UNDO com problemas durante o horário de produção, o que você faria para corrigir o erro? Usaremos dois cenários um restaurando a partir de um backup e outro sem backup. Nesse post usaremos backup. Criando cenário: 1 - Faça um backup full da sua base de dados e em seguida verifique qual o seu tablespace de UNDO padrão SQL> select file_name, online_status from dba_data_files; /u01/app/oracle/oradata/TESTE/datafile/o1_mf_users_h2pfd4yt_.dbf                   ONLINE /u01/app/oracle/oradata/TESTE/datafile/o1_mf_undotbs1_h30fdf6x_.dbf            ONLINE /u01/app/oracle/oradata/TESTE/datafile/o1_mf_system_h2pfb7p9_.dbf               SYSTEM /u01/app/oracle/oradata/TESTE/datafile/o1_mf_sysaux_h2pfcbsm_.dbf               ONLINE   2 - Remova o tablespace de UNDO SQL> ! rm /u01/app/oracle/oradata/TESTE/datafile/o1_mf_undotbs1_h30fdf6x_.dbf   Olhando o log da minha base de dados, ainda não recebi ne

Restore #2 PDB TSPITR: Tablespace Point In Time Recovery de um PDB.

Restore #2 PDB TSPITR: Tablespace Point In Time Recovery de um PDB. Neste cenário vamos simular a recuperação em um ponto específico no tempo para um tablespace de um PDB. O Oracle facilitou muito nossa vida na versão 12 em diante com este tipo de recuperação. Nas versões anteriores não era possível fazer de forma automatizada este tipo de recuperação, era tudo manual. Criando o cenário: 1 - Dentro nosso PDB, vamos criar um novo usuário e um novo tablespace.  ALTER SESSION SET CONTAINER=PDBTESTE; CREATE TABLESPACE NOVA_TBS DATAFILE SIZE 500m; CREATE USER USER_TESTE IDENTIFIED BY teste default tablespace NOVA_TBS; ALTER USER user_teste QUOTA UNLIMITED ON NOVA_TBS; grant create session to user_teste; grant create table to user_teste;   2 - Vamos criar um nova tabela e popular. CREATE TABLE USER_TESTE.TABELA_TESTE (C NUMBER) TABLESPACE NOVA_TBS; INSERT INTO USER_TESTE.TABELA_TESTE VALUES (1000); INSERT INTO USER_TESTE.TABELA_TESTE SELECT * FR

Restore #1 Oracle Redo Log Active

Restore #1 Oracle Redo Log Active Restore é sempre uma situação que você precisa saber o que está fazendo e quase sempre não tem muito tempo para fazer um pesquisa. Então é bom se preparar antes do pior acontecer.  Então pensei em escrever um série de post com algumas para me ajudar e ajudar outras pessoas a passarem por algumas situações virão. Imagina que você tem um banco de dados com Redo Log não multiplexado e por algum motivo seu grupo de redo com o status ACTIVE foi corrompido, como faria pra se recuperar dessa falha? Criando o cenário: 1 - Consulte qual é o seu grupo com status ACTIVE SQL> select group#,sequence#,members,status From v$log;     GROUP#  SEQUENCE#    MEMBERS STATUS ---------- ---------- ---------- ----------------          1          7          1 CURRENT          2          5          1 INACTIVE          3          6          1 ACTIVE   SQL> select group#,member from v$logfile;     GROUP# MEMBER ---------- -