Sie sind auf Seite 1von 5

39.

DATAGURAD GAP RESOLUTIONS:

MACHINE DB31 PRODUCTION:


MACHINE DB32 STANDBY:

1) CHECK SCN BOTH SIDE:


----------------------

Standby Scn :
------------
[oracle@db32 ~]$ export ORACLE_SID=standby

[oracle@db32 ~]$ !sql

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
871723

Prod Scn :
----------
[oracle@db31 ~]$ export ORACLE_SID=prod

[oracle@db31 ~]$ !sql

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
899820

MACHINE DB31 PROD:


------------------

2) TAKE INCREMENTAL BACKUP FROM LAST SEQUENCE CHANGE AT STANDBY USING RMAN AT
PRIMARY DATABASE
-----------------------------------------------------------------------------------
-----------

RMAN> BACKUP INCREMENTAL FROM SCN 899721 DATABASE FORMAT '/u01/INCRBKP%u';

Starting backup at 25-AUG-17

using target database control file instead of recovery catalog


allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1 device type=DISK
backup will be obsolete on date 01-SEP-17
archived logs will not be kept or backed up
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/prod/system01.dbf
input datafile file number=00002 name=/u01/app/oracle/oradata/prod/sysaux01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/prod/example01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/prod/undotbs01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/prod/users01.dbf
channel ORA_DISK_1: starting piece 1 at 25-AUG-17
channel ORA_DISK_1: finished piece 1 at 25-AUG-17
piece handle=/u01/INCRBKP0rscq9ep tag=TAG20170825T173104 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:02:38

using channel ORA_DISK_1


backup will be obsolete on date 01-SEP-17
archived logs will not be kept or backed up
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 25-AUG-17
channel ORA_DISK_1: finished piece 1 at 25-AUG-17
piece handle=/u01/INCRBKP0sscq9jr tag=TAG20170825T173104 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 25-AUG-17

3) CREATE NEW STANDBY CONTROL FILE FROM PRODUCTION


--------------------------------------------------

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/u01/control01.ctl';

Database altered.

4) COPY INCREMENTAL BACKUP AND STANDBY CONTROLFILE TO STANDBY SERVER


--------------------------------------------------------------------

[oracle@db31 u01]$ scp -r control01.ctl oracle@192.168.139.32:/u01


oracle@192.168.139.32's password:
control01.ctl 100% 9584KB 9.4MB/s 00:01

[oracle@db31 u01]$ scp -r INCRBKP0rscq9ep oracle@192.168.139.32:/u01


oracle@192.168.139.32's password:
INCRBKP0rscq9ep 100% 848KB 848.0KB/s 00:00

[oracle@db31 u01]$ scp -r INCRBKP0sscq9jr oracle@192.168.139.32:/u01


oracle@192.168.139.32's password:
INCRBKP0sscq9jr 100% 9632KB 3.1MB/s 00:03

MACHINE DB32 STANDBY:


---------------------

5) NOW GOTO STANDBY SERVER AND CANCEL MANAGED RECOVERY ON STANDBY


-----------------------------------------------------------------

[oracle@db32 ~]$ export ORACLE_SID=standby

[oracle@db32 ~]$ !sql

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

6) SHUTDOWN STANDBY DATABASE AND REPLACE ALL CONTROLFILES WITH BACKUPED BEFORE)
WHEN PRIMARY SIDE ARCHIVELOG MISSING
-----------------------------------------------------------------------------------
---------------------------------

SQL> shut immediate

7) MOUNT THE STANDBY DATABASE


-----------------------------
SQL> startup mount

8) REGISTER INCREMENTAL BACKUP TO STANDBY CONTROLFILE


-----------------------------------------------------

[oracle@db32 ]$ rman target sys/manager

RMAN> CATALOG START WITH '/u01/INCRBKP0rscq9ep';

using target database control file instead of recovery catalog


searching for all files that match the pattern /u01/INCRBKP0rscq9ep

List of Files Unknown to the Database


=====================================
File Name: /u01/INCRBKP0rscq9ep

Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done

List of Cataloged Files


=======================
File Name: /u01/INCRBKP0rscq9ep

9) ONCE REGISTER WITH STANDBY CONTROLFILE RECOVER DATABASE FROM THE INREMENTAL
BACKUP USING RMAN WITH
'NOREDO' ( NOREDO NEED OPTION RECOVERY PROCESS WILL RECOVER FROM INCREMENTAL
BACKUP INSTEAD OF REDOLOG AND ARCHIVELOG)
-----------------------------------------------------------------------------------
--------------------------------------

[oracle@db32 ~]$ rman target /

RMAN> RECOVER DATABASE NOREDO;

Starting recover at 25-AUG-17


allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=53 device type=DISK

Finished recover at 25-AUG-17

10) START MRP


-------------

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

SQL> select name, open_mode from v$database;

NAME OPEN_MODE
--------- --------------------
PROD READ ONLY WITH APPLY

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
899825

SQL> SELECT sequence#, first_time, next_time, applied FROM v$archived_log ORDER BY


sequence#;

=================================================================================TH
E END==============================================================================

�Archive log perdido? No reconstruya su Standby

1.Detener la sincronizaci�n de la base de datos standby


STDB> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
2.Obtener el SCN al cual se ha llegado en la base de datos standby
STDB> SELECT CURRENT_SCN FROM V$DATABASE;
3.Obtener un backup incremental de la base de datos primaria con RMAN, a partir del
SCN obtenido en el paso previo
RMAN> BACKUP INCREMENTAL FROM SCN
DATABASE FORMAT '/tmp/ForStandby_%U' tag 'FORSTANDBY';
4.Catalogar el backup del paso previo en la base de datos standby
RMAN> CATALOG START WITH '/tmp/ForStandby';
5.Recuperar la base de datos standby con el backup ya catalogado
RMAN> RECOVER DATABASE NOREDO;
6.En la base de datos primaria crear un nuevo standby controlfile
RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/tmp/ForStandbyCTRL.bck';
7.Detener la base de datos standby y levantarla con nomount
RMAN> SHUTDOWN;
RMAN> STARTUP NOMOUNT;
8.Restaurar el standby controlfile obtenido en el paso (6) en la base de datos
standby
RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/ForStandbyCTRL.bck';
9.Detener la base de datos standby levantarla con mount
RMAN> SHUTDOWN;
RMAN> STARTUP MOUNT;
10.Limpiar los standby redo logs en la base de datos standby
STDB> ALTER DATABASE CLEAR LOGFILE GROUP 1;
STDB> ALTER DATABASE CLEAR LOGFILE GROUP 2;
STDB> ALTER DATABASE CLEAR LOGFILE GROUP 3;
11.Si estaba activo Flashback Database, reiniciarlo
STDB> ALTER DATABASE FLASHBACK OFF;
STDB> ALTER DATABASE FLASHBACK ON;
12.Reiniciar el recovery de la base de datos standby
STDB> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

RECUPERAR ARCHIVELOGS PARA APLICAR LUEGO EN STANDBY

Restore Archive Logs to New Location using RMAN


Oracle up to 10g

When attempting to restore archive logs that are already located on disk using RMAN
you�ll receive an error if the archivelogs are stored within ASM because until
Oracle 11g shipped you could not use the OS copy or move command to retrieve them.

The solution is to use RMAN to copy them from ASM to an OS filesystem:


RMAN> copy archivelog
�+psdisk1/ORCLSID/archivelog/2008_10_30/thread_1_seq_2.245.88866622' to
�/tmp/oraclearchive�;

You would have to repeat this command for each archive log to be copied or try the
following solution:

RMAN> change archivelog from logseq=60 until logseq=70 uncatalog;

Once the archivelos have been successfully uncataloged you are now able to
successfully restore the archive logs to a new location.

RMAN> run {
set archivelog destination to �/tmp�;
restore archivelog from logseq=60 until logseq=70;
}

Following the successful restore of the archivelogs you can then continue to
recatalog the archivelogs back into the ASM diskgroup.

Example:

RMAN> catalog archivelog


�+psdisk1/ORCLSID/archivelog/2008_10_30/thread_1_seq.60.245.888666222';

COPIAR ARCHIVELOG ASM A DISCO

RMAN> copy archivelog


'+FRA/CCPROD/ARCHIVELOG/2011_01_05/thread_1_seq_127538.455.739629505' to
'/orahome10/archive';

-- Back up all archived logs from sequence # 250 to sequence # 301 and deletes the
archived redo logs after the backup is complete.

run {
allocate channel ch1 type disk format '/tmp/arc_%U';
backup
archivelog from logseq 250 until logseq 301 thread 1
}

In FORMAT clause, %U is replaced with unique file names when creating archivelog
backups.

The above RMAN statements create a file in the following format in the destination
directory (/etc).

-rw-r----- 1 oracle dba2 46623232 Sep 28 13:14 arc_03kqcj6g_1_1

Then, one can restore archive logs that are already located on a filesystem using
restore command:

run {
set archivelog destination to '/tmp';
restore archivelog all;
}

Das könnte Ihnen auch gefallen