Criar banco de dados em espera do Data Guard
Depois que o banco de dados principal for preparado para o DataGuard, ele estará pronto para ser duplicado no local de espera. O guia a seguir usa duplicação ativa para criar uma cópia consistente do banco de dados.
Lembre-se dos seguintes exemplos ao longo deste guia:
Nome exclusivo do banco de dados | Nomes de host do servidor | Nomes de instâncias RAC | Papel |
---|---|---|---|
DBDG_SITE1 | site1db1, site1db2 | DBDG_SITE11, DBDG_SITE12 | Principal |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | Espera |
Os servidores da Solução Bare Metal que executam o Oracle neste guia são configurados com as seguintes variáveis de ambiente:
Nome da variável de ambiente | Valor |
---|---|
ORACLE_BASE | /apps/oracle/oracle_base |
ORACLE_HOME | /apps/oracle/19.0.0/db_home1 |
Talvez seja necessário modificar os caminhos das variáveis de ambiente, dependendo da configuração.
Configurar o banco de dados em espera
Configurar a conectividade do banco de dados
Faça login em cada servidor da Solução Bare Metal no local de espera e modifique
o arquivo $ORACLE_HOME/network/admin/tsnames.ora
para atualizar a configuração do
serviço de rede:
DBDG_SITE2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBDG_SITE2) (UR=A)
)
)
DBDG_SITE1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBDG_SITE1)
)
)
Configurar um listener temporário
Para evitar a reinicialização do listener usado em outras conexões com o banco de dados, é realizada uma duplicação usando um listener temporário. Neste exemplo, usamos a porta 1523, mas é possível usar qualquer porta aberta para comunicação entre os clusters. Você exclui esse listener temporário após a duplicação do banco de dados.
Faça login no primeiro servidor da Solução Bare Metal no local de espera a ser usado durante o processo de duplicação do banco de dados. Modifique o arquivo
$ORACLE_HOME/network/admin/listener.ora
para atualizar a configuração do serviço de rede:LISTENER_DBDG_SITE2 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = site1db1)(PORT = 1523)) ) ) SID_LIST_LISTENER_DBDG_SITE2 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = DBDG_SITE2_DGMGRL) (ORACLE_HOME = ORACLE_HOME) (SID_NAME = DBDG_SITE21) ) ) ADR_BASE_LISTENER = /apps/oracle/oracle_base
Inicie o listener temporário:
lsnrctl start LISTENER_DBDG_SITE2
Preparar o banco de dados em espera
Cada instância de banco de dados requer um diretório para armazenar registros de auditoria. Crie o diretório do arquivo de auditoria em cada servidor da Solução Bare Metal no local do banco de dados em espera:
mkdir -p /apps/oracle/oracle_base/admin/DBDG_SITE2/adump
Modifique o arquivo
$ORACLE_HOME/dbs/initDBDG_SITE21.ora
que foi copiado para o servidor de banco de dados em espera anteriormente:- Defina
db_unique_name
como o novo nome de banco de dados em espera. - Modifique os parâmetros específicos da instância para refletir os nomes das instâncias no
banco de dados em espera. Alguns exemplos são:
instance_number
thread
undo_tablespace
- Defina o parâmetro
audit_file_dest
para usar o diretório criado na etapa anterior. - Se os grupos de discos do ASM em cada local usarem nomes diferentes, modifique os
parâmetros
db_file_name_convert
elog_file_name_convert
para corresponder aos novos locais dos arquivos. - Comente o parâmetro
control_files
.
No exemplo a seguir, mostramos um arquivo de parâmetro de banco de dados atualizado com modificações usando os exemplos fornecidos neste guia. O arquivo de parâmetro conterá parâmetros adicionais específicos da configuração do banco de dados. Somente os parâmetros que exigem modificação na espera são mostrados:
*.db_unique_name='DBDG_SITE2' DBDG_SITE21.instance_number=1 DBDG_SITE22.instance_number=2 DBDG_SITE21.thread=1 DBDG_SITE22.thread=2 DBDG_SITE21.undo_tablespace='UNDOTBS1' DBDG_SITE22.undo_tablespace='UNDOTBS2' *.audit_file_dest='/apps/oracle/oracle_base/admin/DBDG_SITE2/adump' #*.control_files='+DATA/DBDG_SITE1/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE1/CONTROLFILE/current.257.1091317089'
- Defina
No arquivo
/etc/oratab
, adicione uma entrada para que o comandooraenv
possa definir variáveis de ambiente para o banco de dados em espera:DBDG_SITE21:ORACLE_HOME:N
Crie o banco de dados em espera
Defina a variável de ambiente
ORACLE_SID
para se conectar ao banco de dados em espera:source oraenv <<< "DBDG_SITE21"
Você receberá a resposta
The Oracle base has been set to /apps/oracle/oracle_base
.Antes de duplicar o banco de dados principal, inicie manualmente a instância em espera em um nó. Faça login no primeiro servidor da Solução Bare Metal no local de espera, inicie o SQL*Plus e inicie o banco de dados em espera no
nomount mode
usandopfile
:sqlplus / as sysdba
STARTUP NOMOUNT PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
Se for bem-sucedido, você receberá uma resposta semelhante ao seguinte exemplo:
ORACLE instance started. Total System Global Area 1.2885E+10 bytes Fixed Size 15988824 bytes Variable Size 1845493760 bytes Database Buffers 1.1006E+10 bytes Redo Buffers 17563648 bytes
Saia do SQL*Plus depois de iniciar a instância:
EXIT;
Verifique a conectividade com o serviço de banco de dados em espera. Em cada servidor da Solução Bare Metal no local do banco de dados principal, tente se conectar à instância em espera usando o SQL*Plus. Digite a senha do login remoto do SYS manualmente para se conectar à instância.
sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdba
Se a conexão ocorrer, você receberá um prompt do SQL*Plus padrão, em que poderá verificar os parâmetros da instância:
SHOW PARAMETER DB_UNIQUE_NAME;
Você receberá uma resposta semelhante a esta:
NAME TYPE VALUE ---------------- ----------- ------------------------------ db_unique_name string DBDG_SITE2
Saia do SQL*Plus depois de verificar o parâmetro
DB_UNIQUE_NAME
:EXIT;
Conecte-se ao Gerenciador de recuperação e execute o comando
duplicate
para duplicar o modo de espera do banco de dados principal ativo:rman TARGET sys@DBDG_SITE1 AUXILIARY sys@DBDG_SITE2_FOR_DUPLICATION
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK;
Se a duplicação ocorrer, após o processamento, você receberá uma mensagem semelhante a este exemplo:
Finished Duplicate Db at ...
Saia do Gerenciador de recuperação:
EXIT;
Finalize a criação do banco de dados em espera
Durante a duplicação do banco de dados, o ASM cria novos arquivos de controle para o banco de dados em espera. Conecte-se à nova instância em espera e receba os novos nomes dos arquivos de controle. O exemplo a seguir mostra dois arquivos de controle armazenados nos grupos de discos
+DATA
e+RECO
:sqlplus / as sysdba
SET LINESIZE 140 COLUMN NAME FORMAT a15 COLUMN VALUE FORMAT a125 SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='control_files';
Os nomes dos arquivos de controle são mostrados no campo "Valor":
NAME VALUE --------------- ---------------------------------------------------------------------------------------------------- control_files +DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089, +RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089
Registre os nomes dos arquivos de controle da etapa anterior e substitua todas as entradas do parâmetro
control_files
em$ORACLE_HOME/dbs/initDBDG_SITE21.ora
pelos novos valores. Se houver vários arquivos de controle, coloque cada um entre aspas simples, separados por vírgula:*.control_files='+DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089'
Conecte-se ao banco de dados em espera com o SQL*Plus e crie um novo
spfile
a partir dopfile
modificado:sqlplus / as sysdba
CREATE SPFILE='+DATA/DBDG_SITE2/spfileDBDG_SITE2' FROM PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
Copie o arquivo de senha para o grupo de discos ASM usando o comando
asmcmd
:asmcmd cp /apps/oracle/19.0.0/db_home1/dbs/orapwDBDG_SITE21.ora +DATA/DBDG_SITE2/orapwDBDG_SITE2
Encerre a instância de banco de dados em espera e exclua o
pfile
e o arquivo de senha temporários:sqplus / as sysdba
SHUTDOWN IMMEDIATE; EXIT;
rm $ORACLE_HOME/dbs/orapwDBDG_SITE21.ora $ORACLE_HOME/dbs/initDBDG_SITE2.ora
Interrompa o listener temporário usado para a duplicação do banco de dados no primeiro servidor da Solução Bare Metal no local do banco de dados em espera:
lsnrctl stop LISTENER_DBDG_SITE2
Remova as entradas temporárias no arquivo
$ORACLE_HOME/network/admin/listener.ora
no primeiro servidor da Solução Bare Metal no local do banco de dados em espera.Adicione o novo banco de dados e as instâncias em espera ao registro do cluster usando o comando
srvctl
:srvctl add database \ -db DBDG_SITE2 \ -oraclehome /apps/oracle/19.0.0/db_home1 \ -spfile +DATA/DBDG_SITE2/spfileDBDG_SITE2 \ -pwfile +DATA/DBDG_SITE2/orapwDBDG_SITE2 \ -role PHYSICAL_STANDBY \ -startoption MOUNT srvctl add instance \ -db DBDG_SITE2 \ -instance DBDG_SITE21 \ -node site2db1 srvctl add instance \ -db DBDG_SITE2 \ -instance DBDG_SITE22 \ -node site2db2
Inicie o banco de dados em espera usando o comando
srvctl
:srvctl start database -db DBDG_SITE2
Próximas etapas
Em seguida, configure e ative o agente do Data Guard.