Por Joel Perez , Mahir M. Quluzade & Rodrigo Mufalani

Neste artigo nós iremos discutir novas funcionalidades do Oracle Dataguard 12c relacionadas ao transporte de redo síncrono. Então nós iremos ver configurações FAST SYNC, FAR SYNC e Real-Time cascade.

Oracle Dataguard – Visão Geral

O Oracle Data Guard garante alta disponibilidade (HA), proteção dos dados, e recuperação contra desastres para dados das empresas. O Oracle Data Guard fornece um conjunto abrangente de serviços que criam, mantém, gerenciam e monitoram um ou mais Standby Databases possibilitando que o Oracle Database sobreviva a desastres e corrupção de dados. Um Standby Database é uma cópia do Database primário (produção). Então, se o banco de dados de produção se torna indisponível, o Data Guard pode trocar a função de qualquer um dos bancos de Standby para fazer o papel de banco de produção.

Uma configuração de Data Guard consiste em: um Database principal, um ou mais (máx. 30) Standby databases que podem ser (Physical, Logical ou Snapshot) e os serviços do Data Guard. O serviço de transporte de redo é responsável pela transmissão dos dados do Database primário para um Standby Database, nesta configuração os dados dos redos são transmitidos do Database primário e são escritos no Standby redo log do Standby Database. O Apply Service automaticamente aplica os dados de redo no Standby para manter a consistência com o Database primário. Existem dois tipos de Apply Service, o Redo Apply Service que é executado em um Standby Físico e o SQL Apply Service que é executado em um Standby Lógico. Role Transition Service é o serviço responsável por um mudança de papel entre o Database primário e um Standby Database em uma configuração de Data Guard.

A configuração de Data Guard tem três modos de proteção: Maximum Availability, Maximum Performance e Maximum Protection. Todos os três modos de proteção requerem que você especifique as opções de transporte de redo que serão utilizadas para enviar os dados de redo para pelo menos um Standby Database. O Data Guard oferece duas opções para o Transport Services: synchronous (SYNC) e asynchronous (ASYNC).

Como você sabe, nos modos de proteção Maximum Protection e Maximum Availability requer o transporte síncrono (SYNC).

Atributos Requeridos de Transporte de Redo para os Modos de Proteção (*)

Oracle Database 12c Data Guard 12c Synchronous redo transport

O modo de transporte SYNC de redo, transmite as mudanças do Database primário para o Standby Database de maneira síncrona respeitando as ordem de confirmações das transações. Uma transação não pode ser confirmada (commit) no Database primário até que todo redo gerado por essa transação seja enviada ao Standby com sucesso, modo de transporte de redo síncrono.

Nota: Não há limite de distância entre o Database primário e um destino de transporte de redo SYNC, a latência de commit de uma transação aumenta assim como a latência de rede entre Database primário e um destino de transporte de redo SYNC.

O que é Fast Sync?

Como você sabe, antes do Oracle Database 12c, para o modo Maximum Availability era mandatório o atributo de SYNC AFFIRM para o parâmetroLOG_ARCHIVE_DEST_n, porém, no Oracle Database 12c nós podemos usar SYNC NOAFFIRM com o modo Maximum Availability. O nome dessa funcionalidade é FAST SYNC.

Fast Sync fornece uma maneira fácil de aumentar a performance do sincronismo na configuração sem perda da dados (zero data loss) e também permite que o Standby tenha conhecimento mais rápido sobre a geração de redo do Database primário em memória, sem ter que esperar por I/O de disco no Standby redo log file.

Como configurar o FAST SYNC?

No nosso caso o Primary Database (prmcdb) e o Standby Database (stbcdb) é um Container Database (CDB) e a configuração do Data Guard (cdbdg) é gerenciada pelo Database Broker.

[oracle@oel62-prmdb-12c Desktop]$ export ORACLE_SID=prmcdb
[oracle@oel62-prmdb-12c Desktop]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 24 15:14:46 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select cdb, name, database_role from v$database;

CDB NAME DATABASE_ROLE
— ——— —————-
YES PRMCDB PRIMARY

SQL> select value from v$parameter
2 where name =’log_archive_dest_2′;

VALUE
——————————————————————————–
service=”stbcdb”, ASYNC NOAFFIRM delay=0 optional compression=disable max_failure
=0 max_connections=1 reopen=300 db_unique_name=”stbcdb” net_timeout=30, valid_fo
r=(online_logfile,all_roles)

SQL>exit

[oracle@oel62-prmdb-12c Desktop]$ dgmgrl
DGMGRL for Linux: Version 12.1.0.1.0 – 64bit Production

Copyright (c) 2000, 2012, Oracle. All rights reserved.

Welcome to DGMGRL, type “help” for information.
DGMGRL> connect “sys as sysdg”
Password:
Connected as SYSDG.
DGMGRL>
DGMGRL> show configuration

Configuration – cdbdg

Protection Mode: MaxPerformance
Databases:
prmcdb – Primary database
stbcdb – Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

Como você pode ver, redo transport está como asynchronous (ASYNC NOAFFIRM) e o Protection Mode está como Maximum Performance. Para configurar o Fast Sync nós temos que mudar o atributo do parâmetro LOG_ARCHIVE_DEST_n paraSYNC NOAFFIRM. No nosso caso, nosso database é gerenciado pelo Database Broker, então nós precisamos usar o Data Guard Broker Manager Command Line (DGMGRL)para todas as mudanças.

DGMGRL> EDIT DATABASE prmcdb SET PROPERTY LogXptMode=FASTSYNC;
Property “logxptmode” updated

DGMGRL> EDIT DATABASE stbcdb SET PROPERTY LogXptMode=FASTSYNC;
Property “logxptmode” updated

DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MaxAvailability;
Succeeded.

DGMGRL> show configuration

Configuration – cdbdg

Protection Mode: MaxAvailability
Databases:
prmcdb – Primary database
stbcdb – Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

DGMGRL> show database verbose prmcdb

Database – prmcdb

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

Properties:
DGConnectIdentifier = ‘prmcdb’
ObserverConnectIdentifier = ”
LogXptMode = ‘fastsync’
RedoRoutes = ”

DelayMins = ’0′
Binding = ‘optional’
MaxFailure = ’0′
MaxConnections = ’1′
ReopenSecs = ’300′
NetTimeout = ’30′
RedoCompression = ‘DISABLE’
LogShipping = ‘ON’
PreferredApplyInstance = ”
ApplyInstanceTimeout = ’0′
ApplyLagThreshold = ’0′
TransportLagThreshold = ’0′
TransportDisconnectedThreshold = ’30′
ApplyParallel = ‘AUTO’
StandbyFileManagement = ‘MANUAL’
ArchiveLagTarget = ’0′
LogArchiveMaxProcesses = ’4′
LogArchiveMinSucceedDest = ’1′
DbFileNameConvert = ‘prmcdb,stbcdb’
LogFileNameConvert = ‘prmcdb,stbcdb’
FastStartFailoverTarget = ”
InconsistentProperties = ‘(monitor)’
InconsistentLogXptProps = ‘(monitor)’
SendQEntries = ‘(monitor)’
LogXptStatus = ‘(monitor)’
RecvQEntries = ‘(monitor)’
StaticConnectIdentifier = ‘(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=oel62-prmdb-12c.localdomain)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=prmcdb_DGMGRL)
(INSTANCE_NAME=prmcdb)(SERVER=DEDICATED)))’

StandbyArchiveLocation = ‘USE_DB_RECOVERY_FILE_DEST’
AlternateLocation = ”
LogArchiveTrace = ’0′
LogArchiveFormat = ‘%t_%s_%r.dbf’
TopWaitEvents = ‘(monitor)’

Database Status:
SUCCESS

Nota: Para a propriedade LogXptMode estão disponíveis os valores SYNC, ASYNC e o novo FASTSYNC. Abaixo podemos ver que o Data Guard Configuration broker mudou o valor do parâmetro log_archive_dest_2:

SQL> select value from v$parameter
2 where name =’log_archive_dest_2′;

VALUE
——————————————————————————–
service=”stbcdb”, SYNC NOAFFIRM delay=0 optional compression=disable max_failure
=0 max_connections=1 reopen=300 db_unique_name=”stbcdb” net_timeout=30, valid_fo
r=(online_logfile,all_roles)

Se você não estiver usar o Broker, então pode mudar estes parâmetros diretamente pelo SQL*Plus ou Enterprise Manager Cloud Control 12c.

Com o SQL*Plus:

On primary:

SQL> alter system set log_archive_dest_2=’service=stbcdb SYNC NOAFFIRM
db_unique_name=stbcdb valid_for=(online_logfile,all_roles)’;

SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;

FAR SYNC Instance

Uma instância Oracle Data Guard Far Sync, é um pequeno destino de standby em cascata. Então uma instância Oracle Data Guard Far Sync recebe redo do Database primário e então envia o redo para outro destino de Standby Database em casacata. Porém, há mais diferenças entre uma instância Far Sync e um destino de Standby em cascata. Far Sync não tem nenhum datafile, não roda Apply Service. Uma instância Far Sync gerencia um Control File, recebe o redo dentro dos Standby Redo Logs (SRLs), e gera archives destes SRLs para o local de archived redo logs.

Nota: Far sync instances são parte da funcionalidade Oracle Active Data Guard Far Sync, que requer uma licença do Oracle Active Data Guard.

Como configurar uma instância FAR SYNC?

[oracle@oel62-prmdb-12c Desktop]$ export ORACLE_SID=prmcdb
[oracle@oel62-prmdb-12c Desktop]$ sqlplus “/ as sysdba”;

SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 24 16:32:20 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select cdb,name,protection_mode from v$database;

CDB NAME PROTECTION_MODE
— ——— ——————–
YES PRMCDB MAXIMUM PERFORMANCE

SQL> exit

[oracle@oel62-prmdb-12c Desktop]$ dgmgrl
DGMGRL for Linux: Version 12.1.0.1.0 – 64bit Production

Copyright (c) 2000, 2012, Oracle. All rights reserved.

Welcome to DGMGRL, type “help” for information.
DGMGRL> connect “sys as sysdg”
Password:
Connected as SYSDG.

DGMGRL> show configuration

Configuration – cdbdg

Protection Mode: MaxPerformance
Databases:
prmcdb – Primary database
stbcdb – Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

DGMGRL>

Como você pode ver, nosso modo de proteção é Maximum Performance. prmcdb – Primary database e stbcdb – Physical standby database.

Nós iremos criar a instância FAR SYNC na mesma máquina do Database primário.

1. Crieas pastas para a Far Sync instance.

[oracle@oel62-prmdb-12c ~]$ mkdir -p /u01/app/oracle/oradata/prmfs
[oracle@oel62-prmdb-12c ~]$ mkdir -p /u01/app/oracle/admin/prmfs/adump

2. Crie um arquivo de inicialização e um control file para a Far Sync instance.

[oracle@oel62-prmdb-12c ~]$ export ORACLE_SID=prmcdb
[oracle@oel62-prmdb-12c ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 24 16:42:31 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> create pfile=’/u01/prmfs_pfile.ora’ from spfile;

File created.

SQL> alter database create far sync instance controlfile as
‘/u01/app/oracle/oradata/prmfs/control01.ctl’;

Database altered.

Edite o arquivo de parâmetros de inicialização para a instância Far Sync. Há parâmetros que requerem sua atenção: control_files, db_unique_name e log_file_name_convert.

Nota: Nós não configuramos o parâmetro db_file_name_convert, porque a instância Far Sync não usa datafiles.

prmfs.__data_transfer_cache_size=0
prmfs.__db_cache_size=318767104
prmfs.__java_pool_size=4194304
prmfs.__large_pool_size=8388608
prmfs.__oracle_base=’/u01/app/oracle’#ORACLE_BASE set from environment
prmfs.__pga_aggregate_target=281018368
prmfs.__sga_target=524288000
prmfs.__shared_io_pool_size=16777216
prmfs.__shared_pool_size=167772160
prmfs.__streams_pool_size=0
*.archive_lag_target=0
*.audit_file_dest=’/u01/app/oracle/admin/prmfs/adump’
*.audit_trail=’db’
*.compatible=’12.1.0.0.0′
*.control_files=’/u01/app/oracle/oradata/prmfs/control01.ctl’
*.log_file_name_convert=’prmcdb’,’prmfs’
*.db_block_size=8192
*.db_domain=”
*.db_name=’prmcdb’
*.db_unique_name=’prmfs’
*.db_recovery_file_dest=’/u01/app/oracle/fast_recovery_area’
*.db_recovery_file_dest_size=4800m
*.dg_broker_start=TRUE
*.diagnostic_dest=’/u01/app/oracle’
*.dispatchers=’(PROTOCOL=TCP) (SERVICE=prmfsXDB)’
*.enable_pluggable_database=true
*.log_archive_dest_1=’location=USE_DB_RECOVERY_FILE_DEST’,’valid_for=(ALL_LOGFILES, ALL_ROLES)’
*.log_archive_format=’%t_%s_%r.dbf’
*.log_archive_max_processes=4
*.log_archive_min_succeed_dest=1
*.log_archive_trace=0
*.memory_target=768m
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile=’EXCLUSIVE’
*.standby_file_management=’MANUAL’
*.undo_tablespace=’UNDOTBS1′

Nota: A instância Far Sync cria standby redo logs (SRLs) automaticamente.

3. Inicializando a instância Far Sync.

[oracle@oel62-prmdb-12c ~]$ export ORACLE_SID=prmfs
[oracle@oel62-prmdb-12c ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 24 17:10:24 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to an idle instance.

SQL>create spfile from pfile=’/u01/prmfs_pfile.ora’;

File created.

SQL> startup mount;
ORACLE instance started.

Total System Global Area 801701888 bytes
Fixed Size 2293496 bytes
Variable Size 545259784 bytes
Database Buffers 251658240 bytes
Redo Buffers 2490368 bytes
Database mounted.

SQL> select name, db_unique_name, database_role from v$database;

NAME DB_UNIQUE_NAME DATABASE_ROLE
——— —————————— —————-
PRMCDB prmfs FAR SYNC

4. Faça uma cópia do password file para a Far Sync instancea partir do password file do Database primário.

[oracle@oel62-prmdb-12c ~]$ cd $ORACLE_HOME/dbs
[oracle@oel62-prmdb-12c dbs]$ cp orapwprmcdb orapwprmfs

Nota: Password file deve ser o mesmo para os Databases primário, standby e Far Sync instance.

5. Adicione o network service do Far Sync ao tnsnames.ora nos dois sites (primário e standby) como abaixo:

PRMFS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oel62-prmdb-12c.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prmfs)
)
)

Agora nós podemos adicionar a instância Far Sync (prmfs) a nossa configuração de Dataguard com o DGMGRL.

[oracle@oel62-prmdb-12c Desktop]$ dgmgrl
DGMGRL for Linux: Version 12.1.0.1.0 – 64bit Production

Copyright (c) 2000, 2012, Oracle. All rights reserved.

Welcome to DGMGRL, type “help” for information.

DGMGRL> connect “sys as sysdg”;
Password:
Connected as SYSDG.

DGMGRL> show configuration

Configuration – cdbdg

Protection Mode: MaxPerformance
Databases:
prmcdb – Primary database
stbcdb – Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS
DGMGRL> ADD FAR_SYNC prmfs AS CONNECT IDENTIFIER IS prmfs;
far sync instance “prmfs” added

DGMGRL> show configuration

Configuration – cdbdg

Protection Mode: MaxPerformance
Databases:
prmcdb – Primary database
stbcdb – Physical standby database
prmfs – Far Sync (disabled)

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

DGMGRL>ENABLE FAR_SYNC prmfs;
Enabled.

DGMGRL> show configuration;

Configuration – cdbdg

Protection Mode: MaxPerformance
Databases:
prmcdb – Primary database
stbcdb – Physical standby database
prmfs – Far Sync (inactive)

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

Para configurar a instância Far Sync na configuração do Data Guard, nós devemos mudar a nova propriedade RedoRoutes do Database primário e da instância Far Sync. Esta propriedade é configurada pelo valor no parâmetro de inicialização LOG_ARCHIVE_DEST_n para a configuração de uma instância Far Sync. A propriedade RedoRoutes também é usada para configurar destino de transporte de redo em cascata (Cascaded Redo Transport Destinations).

Nota: Se a propriedade RedoRoutes foi configurada com o modo de transporte de redo, então o modo especificado pelo valor da propriedade RedoRoutes sobrepõe o valor da propriedade LogXptMode. O atributo opcional do transporte de redo especifica o modo de transporte de redo usado para enviar o redo para o destino associado. Ele pode ter um dos três valores: [ASYNC | SYNC | FASTSYNC]. Se o atributo de transporte de redonão for especificado, então o modo de transporte de redo irá usar um modo especificado pela propriedade LogXptMode para aquele destino.

DGMGRL>EDIT DATABASE prmcdb SET PROPERTY ‘RedoRoutes’=’(LOCAL : prmfs SYNC)’;
Property “RedoRoutes” updated

DGMGRL>EDIT FAR_SYNC prmfs SET PROPERTY ‘RedoRoutes’=’(prmcdb : stbcdb ASYNC)’;
Property “RedoRoutes” updated

DGMGRL>EDIT CONFIGURATION SET PROTECTION MODE AS MaxAvailability;
Succeeded.

DGMGRL> show configuration

Configuration – cdbdg

Protection Mode: MaxAvailability
Databases:
prmcdb – Primary database
prmfs – Far Sync
stbcdb – Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

Nós podemos ver as mudanças dos parâmetros de inicialização relacionadas com o Data Guard nos databases primário, standby e far sync depois de adicionar a instância Far Sync na configuração do Data Guard. As mudanças abaixo:

NoDatabase primário:

[oracle@oel62-prmdb-12c Desktop]$ export ORACLE_SID=prmcdb
[oracle@oel62-prmdb-12c Desktop]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 24 18:02:42 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select name, value from v$parameter
2 where name in (‘fal_server’,’log_archive_config’,’log_archive_dest_2′);

NAME VALUE
——————————————————————————–
log_archive_dest_2 service=”prmfs”, SYNC AFFIRM delay=0 optional
compression=disable max_failure=0
max_connections=1 reopen=300 db_unique_name=”prmfs”
net_timeout=30, valid_for=(online_logfile,all_roles)

fal_server
log_archive_config dg_config=(prmcdb,stbcdb,prmfs)

SQL>

Na instânciaFar Sync:

[oracle@oel62-prmdb-12c Desktop]$ export ORACLE_SID=prmfs
[oracle@oel62-prmdb-12c Desktop]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 24 18:09:49 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select name, value from v$parameter
2 where name in (‘fal_server’,’log_archive_config’,’log_archive_dest_2′);

NAME VALUE
——————————————————————————–
log_archive_dest_2 service=”stbcdb”, ASYNC NOAFFIRM delay=0 optional compression=disable
max_failure=0 max_connections=1 reopen=300 db_unique_name=”stbcdb”
net_timeout=30, valid_for=(standby_logfile,all_roles)

fal_server prmcdb, stbcdb
log_archive_config dg_config=(prmfs,prmcdb,stbcdb)

No Standby database:

[oracle@oel62-stbdb-12c /]$ export ORACLE_SID=stbcdb
[oracle@oel62-stbdb-12c /]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 24 18:13:25 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select name, value from v$parameter
2 where name in (‘fal_server’,’log_archive_config’,’log_archive_dest_2′);

NAME VALUE
————————————————————————–
log_archive_dest_2
fal_server prmfs, prmcdb
log_archive_config dg_config=(stbcdb,prmcdb,prmfs)

Se você não estiver utilizando o “Broker” então você deve modificar os parâmetros manualmente.

Real-Time Cascade

Com o Oracle Database 12c Release 1 (12.1), um standby database pode cascatear redo em tempo real (como isto está sendo escrito no standby redo log file) ou não em tempo real (como os redolog files estão sendo arquivados em cascata em outro standby). Standby database em cascata tem algumas restrições. Somente um physical standby database pode cascatear redo, não real-time em cascata é suportado de 1 até 10 destino somente. Real-time cascading é suportado em todos os destinos.

Nota: Real-time cascading requer a licença para a opção Oracle Active Data Guard.

No Oracle Database 12c Release 1 (12.1) Data Guard Broker está disponível a opção de gerenciar destinos em cascata para o standby database. Para configurar o Real-Time Cascade com DGMGRL, nós devemos mudar a propriedade RedoRoutes.

O valor default da propriedade RedoRoutes é NULL, que é tratada como (LOCAL: ALL) em um database primário.
A regra de roteamento de redo está ativa se é especificado o campo de origem no database primário atual. Se a regra está ativa o redo do database primário é enviado para o database onde a regra é definida para cada destino especificado como destino de redo especificado no campo daquela regra.
O atributo de transporte de redo ASYNC deve ser explicitamente especificado para um destino em cascata para habilitar o real-time cascading para aquele destino.
A propriedade RedoRoutes não pode ser configurada em um standby database lógico ou snapshot.
Configurando Real-Time Cascade com o Broker manager.

Em nossa configuração do Data Guard temos dois physical standby databases, então prmcdb é o database primário, stbcdb e stlcdb são physical standby databases.

[oracle@oel62-prmdb-12c Desktop]$ export ORACLE_SID=prmcdb
[oracle@oel62-prmdb-12c Desktop]$ dgmgrl
DGMGRL for Linux: Version 12.1.0.1.0 – 64bit Production

Copyright (c) 2000, 2012, Oracle. All rights reserved.

Welcome to DGMGRL, type “help” for information.
DGMGRL> connect “sys as sysdg”
Password:
Connected as SYSDG.
DGMGRL>
DGMGRL> show configuration

Configuration – cdbdg

Protection Mode: MaxPerformance
Databases:
prmcdb – Primary database
stbcdb – Physical standby database
stlcdb – Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

stlcdb – physical standby database rodando com o database primário no mesmo servidor. Edite a propriedade RedoRoutes para o primário e cascading standby database para real-time cascade. O atributo de transporte de redo ASYNC deve ser especificado explicitamente para um destino em cascata para habilitar real-time cascading para um destino.

DGMGRL> EDIT DATABASE prmcdb SET PROPERTY RedoRoutes = ‘(prmcdb : stlcdb SYNC)’;
Property “redoroutes” updated

DGMGRL> EDIT DATABASE stlcdb SET PROPERTY RedoRoutes = ‘(prmcdb : stbcdb ASYNC)’;
Property “redoroutes” updated

DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MaxAvailability;
Succeeded.

DGMGRL> show configuration
Configuration – cdbdg

Protection Mode: MaxAvailability
Databases:
prmcdb – Primary database
stlcdb – Physical standby database
stbcdb – Physical standby database (receiving current redo)

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

Nós podemos ver todas as mudanças nos parâmetros de inicialização pelo DGMGRLconforme abaixo:

No database primário:

[oracle@oel62-prmdb-12c dbs]$ export ORACLE_SID=prmcdb
[oracle@oel62-prmdb-12c dbs]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Thu Jul 25 11:36:41 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select value from v$parameter where name = ‘log_archive_dest_2′;

VALUE
——————————————————————————–
service=”stlcdb”, SYNC AFFIRM delay=0 optional compression=disable max_failure=0
max_connections=1 reopen=300 db_unique_name=”stlcdb” net_timeout=30, valid_for=
(online_logfile,all_roles)

No Cascading Standby database:

[oracle@oel62-prmdb-12c dbs]$ export ORACLE_SID=stlcdb
[oracle@oel62-prmdb-12c dbs]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Thu Jul 25 11:37:44 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select value from v$parameter where name = ‘log_archive_dest_2′;

VALUE
——————————————————————————–
service=”stbcdb”, ASYNC NOAFFIRM delay=0 optional compression=disable max_failur
e=0 max_connections=1 reopen=300 db_unique_name=”stbcdb” net_timeout=30, valid_f
or=(standby_logfile,all_roles)

Isso significa que o transporte de redo é feito de modo síncrono para o cascading standby database. O transporte de redolog do Cascading standby database para um cascaded standby database é feito de forma síncrona, em um outro nome deste processo é Real-Time Cascade.

Nós podemos monitorar a configuração do Dataguard

No Database primário:

[oracle@oel62-prmdb-12c dbs]$ export ORACLE_SID=prmcdb
[oracle@oel62-prmdb-12c dbs]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Thu Jul 25 11:54:28 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> alter system switch logfile;

System altered.

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)
————–
117

SQL> alter system switch logfile;

System altered.

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)
————–
118

No Cascading Standby database:

[oracle@oel62-prmdb-12c dbs]$ export ORACLE_SID=stlcdb
[oracle@oel62-prmdb-12c dbs]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Thu Jul 25 12:00:04 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)
————–
118

SQL> select max(sequence#) from v$archived_log where applied=’YES’;

MAX(SEQUENCE#)
————–
118

No Cascaded Standby database:

[oracle@oel62-stbdb-12c /]$ export ORACLE_SID=stbcdb
[oracle@oel62-stbdb-12c /]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Thu Jul 25 11:55:57 2013

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)
————–
118

SQL> select max(sequence#) from v$archived_log where applied=’YES’;

MAX(SEQUENCE#)
————–
118

Joel é um DBA expert com mais de 12 anos de experiência, especializado nas áreas de bases de dados com especial ênfase em soluções de alta disponibilidade (RAC, Dataguard, e outros). É um palestrante habitual em eventos de Oracle como: OTN LAD TOUR e outros. É o primeiro latino-americano a ser nomeado “OTN Expert ” no ano de 2003 e é Oracle ACE Director.

Mahiré um DBA Senior com mais de 10 anos de experiência no Oracle Database com foco especial em Alta disponibilidade e soluções de Recuperação contra desastres (RAC, Data Guard, RMAN,…). Atualmente trabalha para o Central Bank of the Republic of Azerbaijan. Ele é um Oracle Certified Professional DBA. Mahir é palestrante do Azerbaijan Oracle User Group (AZEROUG) e também é blogger.

Mufalani é um DBA Sr. com mais de 8 anos de experiência, começou com o Oracle 8i, mas teve a oportunidade de dar suporte a Oracle 7.3.4 em diante. É especialista em banco de dados Oracle com foco principal em Performance & Tuning e RAC. É palestrante em eventos de Oracle como: OTN LAD TOUR e outros. Atualmente trabalha como consultor diversas empresas no segmento de variados ramos como: Educação, Saúde, Tecnologia, Seguros e etc. Foi o terceiro Oracle ACE a ser nomeado no Brasil e é OCP DBA nas versões 10g e 11g.


Postagem feita por:


Nenhum Comentário

Envie um Comentário

Seu endereço de email não será publicado. Campos obrigatórios estão marcados com *

Soluções Inteligentes