Configurando Replicação Cruzada no Zero Data Loss Recovery Appliance (Backup Anywhere)

Anteriormente, aprendemos como configurar a replicação do Zero Data Loss, unilateralmente, de um upstream para um downstream, formando um ambiente de alta disponibilidade.

Neste artigo, utilizaremos a mesma configuração ja realizada antes, e adicionaremos apenas algumas configurações a mais, para que o downstream RAHA2, também seja um upstream, enviando backups para o RAHA1, que agora também será um downstream.

Usaremos 1 usuario vpc adicional, repuser_from_raha2, que será responsável pela replicação dos backups, entre os RAs. Chamaremos os Recovery Appliances de RAHA1 e RAHA2:

  • repuser_from_raha2
  • RAHA1
  • RAHA2

Se ele nao existir ainda no RAHA1, crie o usuario VPC que será usado pelo replication server para enviar backups do RAHA2 Recovery Appliance para o RAHADR1 Recovery Appliance. 

# racli add vpc_user –user_name repuser_from_raha2

repuser_from_raha2 New Password: repuser_from_raha2_password

Sun Mar 25 08:35:01 2018: Start: Add vpc user repuser_from_raha2.

Sun Mar 25 08:35:01 2018: Add vpc user repuser_from_raha2 successfully.

Sun Mar 25 08:35:01 2018: End: Add vpc user repuser_from_raha2.

Passo 2: Configure o replication server que será usado para replicar os backups dos bancos de dados do RAHA2 para RAHA1

Se o replication server nao foi criado, crie o replication server entre RAHA2 e RAHA1. Os passos a seguir, usa a mesma operação e nomeação convencional conforme os passos equivalentes executado, usando o EM quando não há rede de replicação dedicada.

Passo 2a: Crie o auto-login wallet

Se a replication wallet não existir no RAHA2, crie a replication wallet que aponta para o RAHA1.

$ mkstore -wrl file:/dbfs_repdbfs/REPLICATION -createALO

Passo 2b: Adicione credenciais a wallet

No RAHA2, adicione as credenciais para logar no RAHA1.

$ mkstore -wrl file:/dbfs_repdbfs/REPLICATION -createCredential ra1repl-scan.<domain>:<PORT>/raha1 repuser_from_raha2 repuser_from_raha2_password

Passo 2c: Crie o RA replication server.

No RAHA2, crie a RA replication server. 

$ sqlplus rasys/<RASYS_PASSWORD>

SQL> exec dbms_ra.create_replication_server( replication_server_name => ‘RAHA1_REP’, sbt_so_name=> ‘libra.so’, max_streams => 8, catalog_user_name => ‘RASYS’, 

wallet_alias => ‘ra1repl-scan.<domain>:<PORT>/raha1’, wallet_path => ‘file:/dbfs_repdbfs/REPLICATION’);

PL/SQL procedure successfully completed.

Passo 3:  Configure upstream e downstream Recovery Appliances.

Passo 3a: Crie a politica de proteção para o protected database no downstream Recovery Appliance e adicionei o banco de dados.

No RAHA1, crie uma politica de replicação que será usado no banco de dados CDB122HA. (Se um ja não existir). Não é necessário um unico nome da politica de proteção, mas a politica de proteção não será adicionada para qualquer replication server configurado entre RAHA1 e RAHA2 (Se um existir).

Nota: Porque o RAHA1 Recovery Appliance não estará normalmente aceitando redo do banco de dados CDB122HA, o parâmetro unprotected data window é configurado para 1.25 dias para contornar alertas falsos vindo a ocorrer, se o banco de dados CDB122HA estiver inativo.

$ sqlplus rasys/<RASYS_PASSWORD>

SQL> exec dbms_ra.create_protection_policy( protection_policy_name => ‘cdb122ha_PP’ , storage_location_name => ‘DELTA’ , recovery_window_goal => numtodsinterval(3,’DAY’) , unprotected_window => numtodsinterval(1.25,’DAY’),  allow_backup_deletion => ‘NO’, store_and_forward => ‘YES’);

PL/SQL procedure successfully completed.

SQL> exec dbms_ra.add_db(db_unique_name => ‘cdb122ha’, protection_policy_name => ‘cdb122ha_PP’, reserved_space => ‘1T’);

PL/SQL procedure successfully completed.

SQL> exec dbms_ra.grant_db_access(username => ‘repuser_from_raha2‘, db_unique_name => ‘cdb122ha’);

PL/SQL procedure successfully completed.

Passo 3b: Crie a politica de proteção para os protected databases no upstream Recovery Appliance e adicione o banco de dados.

No RAHA1, crie a politica de proteção que será usada pelo banco de dados CDB122HA (se um já não existir). Não há necessidade de um nome de politica de proteção unico, mas a politica de proteção será adicionado para o replication server configurado entre RAHA1 e RAHA2, então todos os banco de dados na politica de proteção serão replicados.

$ sqlplus rasys/<RASYS_PASSWORD>

SQL> exec dbms_ra.create_protection_policy( protection_policy_name => ‘cdb122ha_PP’ , storage_location_name => ‘DELTA’ , recovery_window_goal => numtodsinterval(3,’DAY’) , unprotected_window => numtodsinterval(5,’MINUTE’) , allow_backup_deletion => ‘NO’);

PL/SQL procedure successfully completed.

SQL> exec dbms_ra.add_db(db_unique_name => ‘cdb122ha’, protection_policy_name => ‘cdb122ha_PP’, reserved_space => ‘1T’);

PL/SQL procedure successfully completed.

SQL> exec dbms_ra.grant_db_access(username => ‘repuser_from_raha2‘, db_unique_name => ‘cdb122ha’);

PL/SQL procedure successfully completed.

Paso 3c: Adicione a politica de proteção para o replication server que foi configurado no upstream Recovery Appliance

No RAHA2, adicione a politica de proteção para o banco de dados CDB122HA.

$ sqlplus rasys/<RASYS_PASSWORD>

SQL> exec dbms_ra.add_replication_server( replication_server_name => ‘RAHA1_REP’, protection_policy_name => ‘cdb122ha_PP’);

PL/SQL procedure successfully completed.

Ao final teremos o seguinte:


Deixe um comentário