- Implantar uma topologia DR híbrida para um banco de dados local
- Concluir a Configuração
Concluir a Configuração
Configure o Oracle Data Guard, registre o banco de dados stand-by e sincronize as senhas locais e stand-by do banco de dados.
Configurar o Oracle Data Guard Broker
Configure o Oracle Data Guard ativando o parâmetro dg_broker_config_file
nos bancos de dados principal e stand-by. Para o Oracle Automatic Storage Management (Oracle ASM), coloque os arquivos de configuração do broker em grupos de discos separados. Para o Oracle Real Application Clusters (Oracle RAC), os arquivos de configuração do broker devem estar no armazenamento compartilhado.
- Verifique o valor
dg_broker_start
para o host do banco de dados local. Deve ser definido como falso.SQL> show parameter dg_broker_start;
A saída terá uma aparência semelhante à seguinte:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE
- Verifique os arquivos Oracle Data Guard do banco de dados local.
SQL> show parameter dg_broker_config_file1; SQL> show parameter dg_broker_config_file2;
- Se você tiver o Oracle RAC ou o Oracle ASM, poderá alterar a localização do arquivo de configuração.
SQL> alter system set dg_broker_config_file1=broker_config_file location; SQL> alter system set dg_broker_config_file2=broker_config_file location;
- Inicie o processo do Oracle Data Guard Broker no banco de dados principal.
SQL> alter system set dg_broker_start=true; SQL> show parameter dg_broker_start
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean TRUE
SQL> select pname from v$process where pname like 'DMON%';
PNAME ----- DMON
- Verifique o valor
dg_broker_start
para o host do banco de dados stand-by. Ele deve ser definido comofalse
.SQL> show parameter dg_broker_start;
A saída terá uma aparência semelhante à seguinte:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE
- Verifique os arquivos Oracle Data Guard no banco de dados stand-by.
SQL> show parameter dg_broker_config_file1; SQL> show parameter dg_broker_config_file2;
- Se você tiver o Oracle RAC ou o Oracle ASM, poderá alterar a localização do arquivo de configuração.
SQL> alter system set dg_broker_config_file1=broker_config_file location; SQL> alter system set dg_broker_config_file2=broker_config_file location;
- Iniciar o processo do Oracle Data Guard Broker no banco de dados stand-by.
SQL> alter system set dg_broker_start=true; SQL> show parameter dg_broker_start
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean TRUE
SQL> select pname from v$process where pname like 'DMON%';
PNAME ----- DMON
Registrar o Banco de Dados Stand-by
Use a interface de linha de comandos do Oracle Data Guard (DGMGRL) para registrar ou adicionar o perfil do banco de dados stand-by à configuração do broker no host local principal.
- Efetue log-in no host principal como
sys
.$ dgmgrl sys/sys password@net service name for primary database
- Crie uma configuração que utilize o nome do banco de dados principal.
DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT IDENTIFIER IS primary database name;
- Adicione o banco de dados stand-by.
DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL;
- Ative a configuração.
DGMGRL> enable configuration;
- Exibe a configuração.
DGMGRL> show configuration;
A saída terá uma aparência semelhante à seguinte:Configuration - OnPremDr Protection Mode: MaxPerformance Members: ORCLCDB - Primary database Warning: ORA-16789: standby redo logs configured incorrectly orclcdb_iad1s3 - Physical standby database Error: ORA-16810: multiple errors or warnings detected for the member Fast-Start Failover: Disabled Configuration Status: ERROR (status updated 10 seconds ago)
Copiar os Arquivos de Redo Log do Local para o OCI
Copie os arquivos de log redo
e outros arquivos de banco de dados do banco de dados local para a instância do OCI (Oracle Cloud Infrastructure).
- Exibir os arquivos do banco de dados local.
select name from v$datafile;
A saída terá uma aparência semelhante à seguinte:NAME -------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/system01.dbf /opt/oracle/oradata/ORCLCDB/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/users01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf
- Exiba o tamanho de cada grupo para os arquivos de dados locais.
select bytes, group# from v$log;
A saída terá uma aparência semelhante à seguinte:BYTES GROUP# ---------- ---------- 209715200 1 209715200 2 209715200 3
- Exiba os logs
redo
para os arquivos de dados locais.select member from v$logfile;
A saída terá uma aparência semelhante à seguinte:MEMBER --------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log
- Adicione um grupo de arquivos de log stand-by para cada log
redo
.Por exemplo, se você tiver três arquivos de logredo
, adicione três grupos de arquivos de log stand-by.SQL> alter database add standby logfile group 4('/opt/oracle/oradata/ORCLCDB/redo_sb04.log') size 209715200; Database altered. SQL> alter database add standby logfile group 5('/opt/oracle/oradata/ORCLCDB/redo_sb05.log') size 209715200; Database altered. SQL> alter database add standby logfile group 6('/opt/oracle/oradata/ORCLCDB/redo_sb06.log') size 209715200; Database altered.
- Exibir o número do grupo e os membros do arquivo de log.
SQL> select group#,member from v$logfile;
A saída terá uma aparência semelhante à seguinte:GROUP# MEMBER -------------------------------------------------------------------- 3 /opt/oracle/oradata/ORCLCDB/redo03.log 2 /opt/oracle/oradata/ORCLCDB/redo02.log 1 /opt/oracle/oradata/ORCLCDB/redo01.log 4 /opt/oracle/oradata/ORCLCDB/redo_sb04.log 5 /opt/oracle/oradata/ORCLCDB/redo_sb05.log 6 /opt/oracle/oradata/ORCLCDB/redo_sb06.log 6 rows selected.
- Exiba a configuração no Oracle Data Guard.
DGMGRL> show configuration
A saída terá uma aparência semelhante à seguinte:Configuration - OnPremDr Protection Mode: MaxPerformance Members: ORCLCDB - Primary database orclcdb_iad1s3 - Physical standby database Fast-Start Failover: Disabled Configuration Status: SUCCESS (status updated 60 seconds ago)
- Exibir os redo logs na instância do banco de dados OCI stand-by.
select member from v$logfile;
A saída terá uma aparência semelhante à seguinte:MEMBER --------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log
- Efetue log-in em uma sessão de interface de linha de comandos (DGMGRL) do Oracle Data Guard na instância do banco de dados OCI stand-by com o nome de usuário e senha
sys
.[oracle@droci admin]$ dgmgrl DGMGRL> connect Username: sys Password:
A saída terá uma aparência semelhante à seguinte:. . . Welcome to DGMGRL, type "help" for information. Connected to "ORCLCDB_iad1s3" Connected as SYSDBA.
- Exibir a configuração no banco de dados stand-by no OCI.
DGMGRL> show configuration;
A saída terá uma aparência semelhante à seguinte:Configuration - OnPremDr Protection Mode: MaxPerformance Members: ORCLCDB - Primary database orclcdb_iad1s3 - Physical standby database Warning: ORA-16809: multiple warnings detected for the member Fast-Start Failover: Disabled Configuration Status: WARNING (status updated 50 seconds ago)
- Edite a instância do banco de dados stand-by no OCI e defina o estado como
apply-off
e, em seguida, saia da interface da linha de comando.DGMGRL> edit database orclcdb_iad1s3 set state=apply-off;
Succeeded.
DGMGRL> exit
- Efetue log-in na instância do banco de dados stand-by no OCI.
[oracle@droci admin]$ sqlplus / as sysdba
- Exibir o número do grupo e os membros do arquivo de log.
SQL> select group#,member from v$logfile;
A saída terá uma aparência semelhante à seguinte:GROUP# MEMBER -------------------------------------------------------------------- 3 /opt/oracle/oradata/ORCLCDB/redo03.log 2 /opt/oracle/oradata/ORCLCDB/redo02.log 1 /opt/oracle/oradata/ORCLCDB/redo01.log
- Exiba o tamanho de cada grupo.
select bytes, group# from v$log;
A saída terá uma aparência semelhante à seguinte:BYTES GROUP# ---------- ---------- 209715200 1 209715200 3 209715200 2
- Adicione os grupos de arquivos de log stand-by ao banco de dados no OCI.
SQL> alter database add standby logfile group 4('/opt/oracle/oradata/ORCLCDB/redo_sb04.log') size 209715200; Database altered. SQL> alter database add standby logfile group 5('/opt/oracle/oradata/ORCLCDB/redo_sb05.log') size 209715200; Database altered. SQL> alter database add standby logfile group 6('/opt/oracle/oradata/ORCLCDB/redo_sb06.log') size 209715200; Database altered.
- Exibir o número do grupo e os membros do arquivo de log.
SQL> select group#,member from v$logfile;
A saída terá uma aparência semelhante à seguinte:GROUP# MEMBER -------------------------------------------------------------------- 3 /opt/oracle/oradata/ORCLCDB/redo03.log 2 /opt/oracle/oradata/ORCLCDB/redo02.log 1 /opt/oracle/oradata/ORCLCDB/redo01.log 4 /opt/oracle/oradata/ORCLCDB/redo_sb04.log 5 /opt/oracle/oradata/ORCLCDB/redo_sb05.log 6 /opt/oracle/oradata/ORCLCDB/redo_sb06.log 6 rows selected.
- Efetue log-in em uma sessão de interface de linha de comandos (DGMGRL) do Oracle Data Guard na instância do banco de dados OCI stand-by com o nome de usuário e senha
sys
.[oracle@droci admin]$ dgmgrl DGMGRL> connect Username: sys Password:
. . . Welcome to DGMGRL, type "help" for information. Connected to "ORCLCDB_iad1s3" Connected as SYSDBA.
- Edite a instância do banco de dados stand-by no OCI e defina o estado como
apply-on
.DGMGRL> edit database orclcdb_iad1s3 set state=apply-on;
- Edite a instância do banco de dados stand-by no OCI e defina o estado de transporte como
transport-on
e, em seguida, saia da interface da linha de comando.DGMGRL> edit database orclcdb_iad1s3 set state=transport-on;
Succeeded.
DGMGRL> exit
- Exibir os arquivos de log stand-by no banco de dados stand-by no OCI.
SQL> select * from v$logfile where type='STANDBY';
A saída terá uma aparência semelhante à seguinte:GROUP# STATUS TYPE ---------- ------- ------- MEMBER -------------------------------------------------------------------- IS_ CON_ID --- ---------- 4 STANDBY /opt/oracle/oradata/ORCLCDB/redo_sb04.log NO 0 5 STANDBY /opt/oracle/oradata/ORCLCDB/redo_sb05.log NO 0 6 STANDBY /opt/oracle/oradata/ORCLCDB/redo_sb06.log NO 0
- Exibir os arquivos de redo log no banco de dados stand-by no OCI.
SQL> select member from v$logfile where type != 'STANDBY';
A saída terá uma aparência semelhante à seguinte:MEMBER -------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log
- Recuperar o banco de dados stand-by gerenciado.
SQL> recover managed standby database cancel;
A saída terá uma aparência semelhante à seguinte:Media recovery complete
- Exiba os arquivos com o parâmetro
convert
.SQL> show parameter convert;
A saída terá uma aparência semelhante à seguinte:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string log_file_name_convert string pdb_file_name_convert string
- Exibir os arquivos do banco de dados.
select name from v$datafile;
A saída terá uma aparência semelhante à seguinte:NAME -------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/system01.dbf /opt/oracle/oradata/ORCLCDB/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/users01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf
- Exibir o SCN (número de alteração do sistema de banco de dados).
SQL> select current_scn from v$database;
A saída terá uma aparência semelhante à seguinte:CURRENT_SCN ----------- 2906060
- Exibir os detalhes do arquivo compactado do Oracle Data Guard.
SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
A saída terá uma aparência semelhante à seguinte:ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ RFS archive 0 0 IDLE RFS archive 0 0 IDLE RFS async 1 18 RECEIVING RFS ping 1 18 IDLE broker monitor 0 0 IDLE broker instance slave 0 0 IDLE archive redo 0 0 IDLE archive local 0 0 IDLE redo transport timer 0 0 IDLE gap manager 0 0 IDLE log writer 0 0 IDLE broker net slave 0 0 IDLE broker worker 0 0 IDLE archive redo 0 0 IDLE archive redo 0 0 IDLE redo transport monitor 0 0 IDLE 16 rows selected.
- Desative a recuperação do banco de dados stand-by gerenciado usando o arquivo de log.
SQL> recover managed standby database using current logfile disconnect;
Media recovery complete.
- Exibir o SCN (número de alteração do sistema de banco de dados).
SQL> select current_scn from v$database;
A saída terá uma aparência semelhante à seguinte:CURRENT_SCN ----------- 2906060
- Exiba os arquivos com o parâmetro de destino.
SQL>show parameter dest;
A saída terá uma aparência semelhante à seguinte:NAME TYPE VALUE ------------------------------------ ----------- ------------------- cursor_bind_capture_destination string memory+disk db_create_online_log_dest_1 string /u03/app/oracle/redo/ db_create_online_log_dest_2 string db_create_online_log_dest_3 string db_create_online_log_dest_4 string db_create_online_log_dest_5 string db_recovery_file_dest_size big integer 238G log_archive_dest_1 string log_archive_dest_10 string log_archive_dest_11 string log_archive_dest_12 string
- Exibir os comentários da recuperação.
SQL> select comments from v$recovery_progress;
A saída terá uma aparência semelhante à seguinte:COMMENTS -------------------------------------------------------------------- RCVID: 4165711446800375620 SCN: 2907015 COMMENTS -------------------------------------------------------------------- RCVID: 12395680609799335065 SCN: 2906061
- Exibir a data de recuperação.
SQL> select START_TIME,comments from v$recovery_progress order by 1;
A saída terá uma aparência semelhante à seguinte:START_TIM --------- COMMENTS -------------------------------------------------------------------- 03-SEP-20 03-SEP-20 03-SEP-20 RCVID: 2657984638848411078 START_TIM --------- COMMENTS -------------------------------------------------------------------------------- 03-SEP-20