Translate

lundi 20 juillet 2015

Partie III - Upgrade DataGuard - Downgrade ( Restore Points ) - (DataGuard - Broker - 11g )




Cette publication montre comment se servir d'un Flashback afin de faire un downgrade de base de données. 
Afin d'alléger le texte, je vais laisser quelques indications de façon générale.



##############################################################
###                                                        ###
###  DOWNGRADE DE LA BASE DE DONNÉES EN DATAGUARD          ###
###                                                        ###
###********************************************************###
##############################################################
###  Base de données Primaire : test_p                     ###
###  Base de données Standby  : test_s                     ###
###  Home source              : 11.2.0.4                   ###
###  Home destination         : 11.2.0.1                   ###
##############################################################
###  Configuration du Broker  :                            ###
###                                                        ###
### DGMGRL> show configuration ;                           ###
### Configuration - evta                                  ###
###   Protection Mode: MaxPerformance                     ###
###   Databases:                                          ###
###      test_p - Primary database                        ###
###      test_s - Physical standby database               ###
###                                                        ###
### Fast-Start Failover: DISABLED                         ###
###                                                        ###
### Configuration Status:                                 ###
### SUCCESS                                               ###
###                                                        ###
##############################################################



*****************************************************************
*****************************************************************
**** Flashback Database - DataGuard
*****************************************************************
*****************************************************************


Primaire :
=======

DGMGRL> show configuration ;
Configuration - evta

 Protection Mode: MaxPerformance
 Databases:
test_p - Primary database
test_s - Physical standby database (disabled)

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

DGMGRL> enable database "test_s" ;


ALTER SYSTEM SWITCH LOGFILE ;
ALTER SYSTEM SWITCH LOGFILE ;
ALTER SYSTEM SWITCH LOGFILE ;
ALTER SYSTEM SWITCH LOGFILE ;
ARCHIVE LOG LIST ;




Standby :
======

ARCHIVE LOG LIST ;

--S''assurer que la synch est Ok 
SELECT 'LAST APPLIED  : ' LOGS, TO_CHAR(NEXT_TIME,'DD-MON-YYYY HH24:MI:SS') TIME, SEQUENCE# 
 FROM V$DATABASE_INCARNATION A, V$ARCHIVED_LOG C  
WHERE SEQUENCE# = ( SELECT MAX(SEQUENCE#) FROM V$DATABASE_INCARNATION A, V$ARCHIVED_LOG B
WHERE A.RESETLOGS_CHANGE# = B.RESETLOGS_CHANGE# AND A.RESETLOGS_TIME    = B.RESETLOGS_TIME    AND
  A.STATUS            = 'CURRENT' AND B.APPLIED           = 'YES')  AND
  A.RESETLOGS_CHANGE# = C.RESETLOGS_CHANGE# AND A.RESETLOGS_TIME    = C.RESETLOGS_TIME    AND
  A.STATUS            = 'CURRENT'  
UNION  
SELECT 'LAST RECEIVED : ' LOGS, TO_CHAR(NEXT_TIME,'DD-MON-YYYY HH24:MI:SS') TIME, SEQUENCE# 
 FROM V$DATABASE_INCARNATION A, V$ARCHIVED_LOG C 
WHERE SEQUENCE# = ( SELECT MAX(SEQUENCE#) FROM V$DATABASE_INCARNATION A, V$ARCHIVED_LOG B
WHERE A.RESETLOGS_CHANGE# = B.RESETLOGS_CHANGE# AND A.RESETLOGS_TIME    = B.RESETLOGS_TIME    AND
  A.STATUS            = 'CURRENT' ) AND
  A.RESETLOGS_CHANGE# = C.RESETLOGS_CHANGE# AND A.RESETLOGS_TIME    = C.RESETLOGS_TIME    AND
  A.STATUS            = 'CURRENT' ;

  

Primaire :
=======

SET LINESIZE 1000
COL NAME FORMAT A20
COL SCN  FORMAT A15
COL TIME FORMAT A20
SELECT NAME, TO_CHAR(SCN) SCN, TO_CHAR(TIME,'DD/MM/YYYY HH24:MI') TIME, DATABASE_INCARNATION#, 
      GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE/1024/1024 MO
 FROM V$RESTORE_POINT 
WHERE GUARANTEE_FLASHBACK_DATABASE = 'YES' ;  

NAME                 SCN             TIME                 DATABASE_INCARNATION# GUA         MO
-------------------- --------------- -------------------- --------------------- --- ----------
EVTA_PREUPG_PRIM     1643405         13/07/2015 23:55                         3 YES  657.59375


Standby :
======
SET LINESIZE 1000
COL NAME FORMAT A20
COL SCN  FORMAT A15
COL TIME FORMAT A20
SELECT NAME, TO_CHAR(SCN) SCN, TO_CHAR(TIME,'DD/MM/YYYY HH24:MI') TIME, DATABASE_INCARNATION#, 
       GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE/1024/1024 MO
  FROM V$RESTORE_POINT 
 WHERE GUARANTEE_FLASHBACK_DATABASE = 'YES' ;

NAME                 SCN             TIME                 DATABASE_INCARNATION# GUA         MO
-------------------- --------------- -------------------- --------------------- --- ----------
EVTA_PREUPG_STBY     1642221         13/07/2015 23:42                         6 YES 1307.59375
  
  
  
Primaire :
=======

Arrêter la bd
Arreter le listener

Repartir le listener avec la version précédente
Repartir la bd avec la version précédente

STARTUP MOUNT ; 
FLASHBACK DATABASE TO RESTORE POINT EVTA_PREUPG_PRIM
ALTER DATABASE OPEN RESETLOGS;

SET LINESIZE 200  
SET PAGESIZE 50
COL NAME FORMAT A40 
COL VERSION FORMAT A20
COL COMPNAME FORMAT A30
SELECT SUBSTR(COMP_ID, 1,10) COMPID, SUBSTR(COMP_NAME,1,24) COMPNAME, STATUS,VERSION FROM DBA_REGISTRY;

COMPID          COMPNAME                       STATUS       VERSION
--------------- ------------------------------ ------------ --------------------
OWB             OWB                            VALID        11.2.0.1.0
APEX            Oracle Application Expre       VALID        3.2.1.00.10
EM              Oracle Enterprise Manage       VALID        11.2.0.1.0
AMD             OLAP Catalog                   VALID        11.2.0.1.0
SDO             Spatial                        VALID        11.2.0.1.0
ORDIM           Oracle Multimedia              VALID        11.2.0.1.0
XDB             Oracle XML Database            VALID        11.2.0.1.0
CONTEXT         Oracle Text                    VALID        11.2.0.1.0
EXF             Oracle Expression Filter       VALID        11.2.0.1.0
RUL             Oracle Rules Manager           VALID        11.2.0.1.0
OWM             Oracle Workspace Manager       VALID        11.2.0.1.0
CATALOG         Oracle Database Catalog        VALID        11.2.0.1.0
CATPROC         Oracle Database Packages       VALID        11.2.0.1.0
JAVAVM          JServer JAVA Virtual Mac       VALID        11.2.0.1.0
XML             Oracle XDK                     VALID        11.2.0.1.0
CATJAVA         Oracle Database Java Pac       VALID        11.2.0.1.0
APS             OLAP Analytic Workspace        VALID        11.2.0.1.0
XOQ             Oracle OLAP API                VALID        11.2.0.1.0


                dgmgrl DGMGRL> connect sys@test_p Password: Connected. DGMGRL> show configuration ; Configuration - evta Protection Mode: MaxPerformance Databases: test_p - Primary database test_s - Physical standby database Error: ORA-16810: multiple errors or warnings detected for the database Fast-Start Failover: DISABLED Configuration Status: ERROR OU DGMGRL> show configuration ; Error: ORA-16525: the Data Guard broker is not yet available Configuration details cannot be determined by DGMGRL 



SHOW PARAMETER LOG_ARCHIVE_DEST_STATE_2 ; 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------
log_archive_dest_state_2             string      RESET

SHOW PARAMETER BROKER
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1               string      /DISK2/oracle/product/11.2.0/db_1/dbs/dr1TEST_P.dat
dg_broker_config_file2               string      /DISK2/oracle/product/11.2.0/db_1/dbs/dr2TEST_P.dat
dg_broker_start                      boolean     FALSE




Standby :
====== 
 
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
--Possible erreur
--*
--ERROR at line 1:
--ORA-16136: Managed Standby Recovery not active

FLASHBACK DATABASE TO RESTORE POINT EVTA_PREUPG_STBY; 

Arrêter la bd
Arreter le listener

Repartir le listener avec la version précédente
Repartir la bd avec la version précédente
STARTUP MOUNT ; 


  
Primaire :
=======
SHOW PARAMETER DG_BROKER_START
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1               string      /DISK2/oracle/product/11.2.0/db_1/dbs/dr1TEST_P.dat
dg_broker_config_file2               string      /DISK2/oracle/product/11.2.0/db_1/dbs/dr2TEST_P.dat
dg_broker_start                      boolean     FALSE

SHOW PARAMETER LOG_ARCHIVE_DEST_STATE_2
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_2             string      RESET



Standby :
======
SHOW PARAMETER DG_BROKER_START
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1               string      /DISK2/oracle/product/11.2.0/db_1/dbs/dr1TEST_P.dat
dg_broker_config_file2               string      /DISK2/oracle/product/11.2.0/db_1/dbs/dr2TEST_P.dat
dg_broker_start                      boolean     FALSE



Primaire :
=======

ALTER SYSTEM SET DG_BROKER_START=TRUE SCOPE=BOTH ;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH ;



Standby :
======

ALTER SYSTEM SET DG_BROKER_START=TRUE SCOPE=BOTH ;



Primaire :
=======

dgmgrl
DGMGRL> connect sys@test_p
Password:
Connected.

DGMGRL> show configuration ;
Configuration - evta

 Protection Mode: MaxPerformance
 Databases:
test_p - Primary database
test_s - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
DISABLED

DGMGRL> show database "test_p"
Database - test_p

 Role:            PRIMARY
 Intended State:  TRANSPORT-OFF
 Instance(s):
TEST

Database Status:
DISABLED

DGMGRL> show database "test_s"
Database - test_s

 Role:            PHYSICAL STANDBY
 Intended State:  APPLY-OFF
 Transport Lag:   (unknown)
 Apply Lag:       (unknown)
 Real Time Query: OFF
 Instance(s):
TEST

Database Status:
DISABLED

DGMGRL> ENABLE CONFIGURATION ;
DGMGRL> EDIT DATABASE "test_s" SET STATE='APPLY-ON';
        DGMGRL> EDIT DATABASE "test_p" SET STATE='TRANSPORT-ON';

ALTER SYSTEM SWITCH LOGFILE ; 
ALTER SYSTEM SWITCH LOGFILE ; 
ALTER SYSTEM SWITCH LOGFILE ; 
ARCHIVE LOG LIST ; 


Standby :
======

ARCHIVE LOG LIST ; 

--S'assurer que la synch est Ok 
SELECT 'LAST APPLIED  : ' LOGS, TO_CHAR(NEXT_TIME,'DD-MON-YYYY HH24:MI:SS') TIME, SEQUENCE# 
 FROM V$DATABASE_INCARNATION A, V$ARCHIVED_LOG C  
WHERE SEQUENCE# = ( SELECT MAX(SEQUENCE#) FROM V$DATABASE_INCARNATION A, V$ARCHIVED_LOG B
WHERE A.RESETLOGS_CHANGE# = B.RESETLOGS_CHANGE# AND A.RESETLOGS_TIME    = B.RESETLOGS_TIME    AND
  A.STATUS            = 'CURRENT' AND B.APPLIED           = 'YES')  AND
  A.RESETLOGS_CHANGE# = C.RESETLOGS_CHANGE# AND A.RESETLOGS_TIME    = C.RESETLOGS_TIME    AND
  A.STATUS            = 'CURRENT'  
UNION  
SELECT 'LAST RECEIVED : ' LOGS, TO_CHAR(NEXT_TIME,'DD-MON-YYYY HH24:MI:SS') TIME, SEQUENCE# 
 FROM V$DATABASE_INCARNATION A, V$ARCHIVED_LOG C 
WHERE SEQUENCE# = ( SELECT MAX(SEQUENCE#) FROM V$DATABASE_INCARNATION A, V$ARCHIVED_LOG B
WHERE A.RESETLOGS_CHANGE# = B.RESETLOGS_CHANGE# AND A.RESETLOGS_TIME    = B.RESETLOGS_TIME    AND
  A.STATUS            = 'CURRENT' ) AND
  A.RESETLOGS_CHANGE# = C.RESETLOGS_CHANGE# AND A.RESETLOGS_TIME    = C.RESETLOGS_TIME    AND
  A.STATUS            = 'CURRENT' ;

LOGS             TIME                           SEQUENCE#
---------------- ----------------------------- ----------
LAST APPLIED  :  15-JUL-2015 20:20:34                   4
LAST RECEIVED :  15-JUL-2015 20:20:34                   5



Primaire :
=======

dgmgrl
DGMGRL> connect sys@test_p
Password:
Connected.

DGMGRL> show configuration ;
Configuration - evta

 Protection Mode: MaxPerformance
 Databases:
test_p - Primary database
test_s - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
DISABLED

DGMGRL> show database "test_p"
Database - test_p

 Role:            PRIMARY
 Intended State:  TRANSPORT-ON
 Instance(s):
TEST

Database Status:
SUCCESS

DGMGRL> show database "test_s"
Database - test_s

 Role:            PHYSICAL STANDBY
 Intended State:  APPLY-ON
 Transport Lag:   0 seconds
 Apply Lag:       0 seconds
 Real Time Query: OFF
 Instance(s):
TEST

Database Status:
SUCCESS

SET LINESIZE 1000
COL NAME FORMAT A20
COL SCN  FORMAT A15
COL TIME FORMAT A20
SELECT NAME, TO_CHAR(SCN) SCN, TO_CHAR(TIME,'DD/MM/YYYY HH24:MI') TIME, DATABASE_INCARNATION#, 
       GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE/1024/1024 MO
  FROM V$RESTORE_POINT 
 WHERE GUARANTEE_FLASHBACK_DATABASE = 'YES' ;

 
 
Standby :
======
SET LINESIZE 1000
COL NAME FORMAT A20
COL SCN  FORMAT A15
COL TIME FORMAT A20
SELECT NAME, TO_CHAR(SCN) SCN, TO_CHAR(TIME,'DD/MM/YYYY HH24:MI') TIME, DATABASE_INCARNATION#, 
       GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE/1024/1024 MO
  FROM V$RESTORE_POINT 
 WHERE GUARANTEE_FLASHBACK_DATABASE = 'YES' ;


Primaire :
=======
Tester le convert to snapshot et revenir à physical
DGMGRL> connect sys@test_p
Password:
Connected.

DGMGRL> CONVERT DATABASE TEST_S TO SNAPSHOT STANDBY ;



Standby :

=======

SELECT NAME, OPEN_MODE, DATABASE_ROLE FROM V$DATABASE ; 
NAME                 OPEN_MODE            DATABASE_ROLE
-------------------- -------------------- ----------------
TEST                 READ WRITE           SNAPSHOT STANDBY

SET LINESIZE 200  
SET PAGESIZE 50
COL NAME FORMAT A40 
COL VERSION FORMAT A20
COL COMPNAME FORMAT A30
SELECT SUBSTR(COMP_ID, 1,10) COMPID, SUBSTR(COMP_NAME,1,24) COMPNAME, STATUS,VERSION FROM DBA_REGISTRY;

COMPID       COMPNAME                       STATUS      VERSION
------------ ------------------------------ ----------- --------------------
OWB          OWB                            VALID       11.2.0.1.0
APEX         Oracle Application Expre       VALID       3.2.1.00.10
EM           Oracle Enterprise Manage       VALID       11.2.0.1.0
AMD          OLAP Catalog                   VALID       11.2.0.1.0
SDO          Spatial                        VALID       11.2.0.1.0
ORDIM        Oracle Multimedia              VALID       11.2.0.1.0
XDB          Oracle XML Database            VALID       11.2.0.1.0
CONTEXT      Oracle Text                    VALID       11.2.0.1.0
EXF          Oracle Expression Filter       VALID       11.2.0.1.0
RUL          Oracle Rules Manager           VALID       11.2.0.1.0
OWM          Oracle Workspace Manager       VALID       11.2.0.1.0
CATALOG      Oracle Database Catalog        VALID       11.2.0.1.0
CATPROC      Oracle Database Packages       VALID       11.2.0.1.0
JAVAVM       JServer JAVA Virtual Mac       VALID       11.2.0.1.0
XML          Oracle XDK                     VALID       11.2.0.1.0
CATJAVA      Oracle Database Java Pac       VALID       11.2.0.1.0
APS          OLAP Analytic Workspace        VALID       11.2.0.1.0

XOQ          Oracle OLAP API                VALID       11.2.0.1.0

Revenir à physical
connect sys@test_p
CONVERT DATABASE TEST_S TO PHYSICAL STANDBY ;


Standby :
=======
SELECT NAME, OPEN_MODE, DATABASE_ROLE FROM V$DATABASE ; NAME OPEN_MODE DATABASE_ROLE -------------------- -------------------- ---------------- TEST READ WRITE PHYSICAL STANDBY


Primaire :  (À la fin du test)
=======
SET LINESIZE 1000
COL NAME FORMAT A20
COL SCN  FORMAT A15
COL TIME FORMAT A20
SELECT NAME, TO_CHAR(SCN) SCN, TO_CHAR(TIME,'DD/MM/YYYY HH24:MI') TIME, DATABASE_INCARNATION#, 
       GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE/1024/1024 MO
  FROM V$RESTORE_POINT 
 WHERE GUARANTEE_FLASHBACK_DATABASE = 'YES' ; 

DROP RESTORE POINT EVTA_PREUPG_PRIM ; 
 


Standby :  (À la fin du test)
======
SET LINESIZE 1000
COL NAME FORMAT A20
COL SCN  FORMAT A15
COL TIME FORMAT A20
SELECT NAME, TO_CHAR(SCN) SCN, TO_CHAR(TIME,'DD/MM/YYYY HH24:MI') TIME, DATABASE_INCARNATION#, 
       GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE/1024/1024 MO
  FROM V$RESTORE_POINT 
 WHERE GUARANTEE_FLASHBACK_DATABASE = 'YES' ;

DROP RESTORE POINT EVTA_PREUPG_STBY ; 

Aucun commentaire:

Enregistrer un commentaire