Switchover é uma operação planejada, a qual não há perda de dados e todos os bancos continuam fazendo parte da mesma configuração, mesmo que haja troca de regras.
1. Pre-requisitos
1.1 Broker devidamente configurado.
É possivel validar se a configuração do broker esta correta utilizando o comando show configuration, caso a configuração não esteja valida, ou seja reportado algum erro de parametro deve ser analisado e corrigido antes de se iniciar o switchover.
DGMGRL> show configuration
Configuration - orcl_dr
Protection Mode: MaxPerformance
Databases:
orcl - Primary database
orclstby - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
1.2 Static Service
Verificar se o parametro StaticConnectIdentifier esta devidamente configurado em ambos os bancos de dados, caso ele esteja nulo o Oracle assume o valor,
1.3 Parametro do Broker LOG_ARCHIVE_MAX_PROCESSES
Este parametro deve estar configurado para no minimo 4 em cada banco que fizer parte da configuração.
LOG_ARCHIVE_MAX_PROCESSES >= 4
1.4 Confirmar se o Redolog em Standby será limpo (clear).
Antes do standby database migrar para primary database seus online redologs devem ser limpos (clear), esta operação é automatizada pelo broker, porém o parametro LOGFILENAMECONVERT deve ter sido configurado previamente.
Este parametro pode ser configurado antes do switchover pelo comando edit database do broker, porém a instancia de standby precisa ser reiniciada.
Caso queria ou/e seja necessário realizar a limpeza manual, é possivel executar os seguintes passos pelo SQLPLUS do banco de standby, antes de iniciar o switchover.
SQL> SELECT DISTINCT L.GROUP# FROM V$LOG L, V$LOGFILE LF
WHERE L.GROUP# = LF.GROUP# AND L.STATUS
NOT IN ('UNUSED','CLEARING','CLEARING_CURRENT');
SQL> ALTER DATABASE CLEAR LOGFILE GROUP
Estes parametros, (StaticConnectIdentifier , LOG_ARCHIVE_MAX_PROCESSES e LOGFILENAMECONVERT) podem ser revisados através do comando show database, conforme a seguir:
DGMGRL> show database verbose orcl
Database - orcl
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
orcl
Properties:
DGConnectIdentifier = 'orcl'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'MANUAL'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '4'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = 'orcl,orclstby'
LogFileNameConvert = 'orcl,orclstby'
FastStartFailoverTarget = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
SidName = 'orcl'
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1523))(CONNECT_DATA=(SERVICE_NAME=ORCL)(INSTANCE_NAME=orcl)(SERVER=DEDICATED)))'
StandbyArchiveLocation = 'use_db_recovery_file_dest'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.dbf'
TopWaitEvents = '(monitor)'
Database Status:
SUCCESS
DGMGRL>
1.5 Verificar se não há GAP de archive
Verificar se os archives estão sendo devidamente, pode ser validado através das consultas a seguir:
Produção:
SQL> SELECT THREAD#, SEQUENCE# FROM V$THREAD;
THREAD# SEQUENCE#
---------- ----------
1 270
Standby:
SQL> SELECT THREAD#, MAX(SEQUENCE#) FROM V$ARCHIVED_LOG
WHERE APPLIED = 'YES'
AND RESETLOGS_CHANGE# = (SELECT RESETLOGS_CHANGE#
FROM V$DATABASE_INCARNATION
WHERE STATUS = 'CURRENT')
GROUP BY THREAD#; 2 3 4 5 6
THREAD# MAX(SEQUENCE#)
---------- --------------
1 268
Havendo diferença de 1 a 2 archives podemos considerar que não há GAPS entre as instancias.
1.6 Verificar se o banco de standby possui todos os tempfiles de produção.
Tempfiles criados no banco de produção não são propagados nos bancos de standby, portanto é uma boa pratica verificar se todos os tempfiles estão reflitidos em ambos bancos:
SELECT TMP.NAME FILENAME, BYTES, TS.NAME TABLESPACE
FROM V$TEMPFILE TMP, V$TABLESPACE TS WHERE TMP.TS#=TS.TS#;
1.7 Offline Datafiles
Verificar se há algum datafile offline e traze-los online:
SQL> SELECT NAME FROM V$DATAFILE WHERE STATUS='OFFLINE';
2. Switchover
Após ter certeza de que a configuração do dataguard esta correta, realizar o switchover conforme a seguir, realizar sempre o switchover através do banco primary (produção).
Realizar, pelo broker: Switchover to ;
[oracle@os-indaia-orcl-prod trace]$ dgmgrl
DGMGRL for Linux: Version 11.2.0.3.0 - Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
DGMGRL> connect sys/oracle@orcl
Connected.
DGMGRL> show configuration
Configuration - orcl_dr
Protection Mode: MaxPerformance
Databases:
orcl - Primary database
orclstby - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
DGMGRL> switchover to orclstby;
Performing switchover NOW, please wait...
New primary database "orclstby" is opening...
Operation requires shutdown of instance "orcl" on database "orcl"
Shutting down instance "orcl"...
ORACLE instance shut down.
Operation requires startup of instance "orcl" on database "orcl"
Starting instance "orcl"...
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "orclstby"
DGMGRL> show configuration;
Configuration - orcl_dr
Protection Mode: MaxPerformance
Databases:
orclstby - Primary database
orcl - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
DGMGRL>
DGMGRL for Linux: Version 11.2.0.3.0 - Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
DGMGRL> connect sys/oracle@orcl
Connected.
DGMGRL> show configuration
Configuration - orcl_dr
Protection Mode: MaxPerformance
Databases:
orcl - Primary database
orclstby - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
DGMGRL> switchover to orclstby;
Performing switchover NOW, please wait...
New primary database "orclstby" is opening...
Operation requires shutdown of instance "orcl" on database "orcl"
Shutting down instance "orcl"...
ORACLE instance shut down.
Operation requires startup of instance "orcl" on database "orcl"
Starting instance "orcl"...
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "orclstby"
DGMGRL> show configuration;
Configuration - orcl_dr
Protection Mode: MaxPerformance
Databases:
orclstby - Primary database
orcl - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
DGMGRL>
Referencias:
Metalink: 11.2 Data Guard Physical Standby Switchover Best Practices using the Broker (Doc ID 1305019.1)
Oracle Data Guard Administration
Nenhum comentário:
Postar um comentário