Crie a base de dados de reserva do Data Guard
Depois de a base de dados principal estar preparada para o Data Guard, está pronta para ser duplicada para o site de standby. O guia seguinte usa a duplicação ativa para criar uma cópia consistente da base de dados.
Como lembrete, os seguintes exemplos são usados ao longo deste guia:
Nome exclusivo da base de dados | Nomes de anfitrião do servidor | Nomes das instâncias do RAC | Função |
---|---|---|---|
DBDG_SITE1 | site1db1, site1db2 | DBDG_SITE11, DBDG_SITE12 | Primary |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | Modo de espera |
Os servidores da Solução Bare Metal que executam o Oracle neste guia estã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 |
Pode ter de modificar os caminhos das variáveis de ambiente consoante a sua configuração.
Configure a base de dados em espera
Configure a conetividade da base de dados
Inicie sessão em cada servidor da Bare Metal Solution na localização de espera e modifique o ficheiro $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)
)
)
Configure um ouvinte temporário
Para evitar reiniciar o ouvinte usado para outras ligações à base de dados, a duplicação da base de dados é realizada através de um ouvinte temporário. Este exemplo usa a porta 1523, mas pode usar qualquer porta que esteja aberta para comunicação entre os clusters. Elimina este ouvinte temporário após a duplicação da base de dados.
Inicie sessão no primeiro servidor da Solução Bare Metal na localização de espera a usar durante o processo de duplicação da base de dados. Modifique o ficheiro
$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 ouvinte temporário:
lsnrctl start LISTENER_DBDG_SITE2
Prepare a base de dados de reserva
Cada instância da base de dados requer um diretório para armazenar registos de auditoria. Crie o diretório do ficheiro de auditoria em cada servidor do Bare Metal Solution na localização da base de dados em espera:
mkdir -p /apps/oracle/oracle_base/admin/DBDG_SITE2/adump
Modifique o
$ORACLE_HOME/dbs/initDBDG_SITE21.ora
ficheiro que foi copiado anteriormente para o servidor de base de dados em espera:- Defina o
db_unique_name
para o novo nome da base de dados de reserva. - Modifique todos os parâmetros específicos da instância para refletir os nomes das instâncias da base de dados em espera. Seguem-se alguns exemplos:
instance_number
thread
undo_tablespace
- Defina o parâmetro
audit_file_dest
para usar o diretório criado no passo anterior. - Se os grupos de discos do ASM em cada localização usarem nomes diferentes, modifique os parâmetros
db_file_name_convert
elog_file_name_convert
para corresponderem às novas localizações dos ficheiros. - Comente o parâmetro
control_files
.
O exemplo seguinte mostra um ficheiro de parâmetros da base de dados atualizado com modificações através dos exemplos fornecidos neste guia. Tenha em atenção que o ficheiro de parâmetros contém parâmetros adicionais específicos da configuração da base de dados. Apenas são apresentados os parâmetros que requerem modificação para o modo de espera:
*.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 o
No ficheiro
/etc/oratab
, adicione uma entrada para que o comandooraenv
possa definir variáveis de ambiente para a base de dados em espera:DBDG_SITE21:ORACLE_HOME:N
Crie a base de dados de reserva
Defina a variável de ambiente
ORACLE_SID
para poder estabelecer ligação à base de dados em espera:source oraenv <<< "DBDG_SITE21"
Deve receber a resposta
The Oracle base has been set to /apps/oracle/oracle_base
.Antes de duplicar a base de dados principal, tem de iniciar manualmente a instância de espera num nó. Inicie sessão no primeiro servidor da Solução Bare Metal na localização de espera, inicie o SQL*Plus e, em seguida, inicie a base de dados de espera em
nomount mode
com o seguinte comando:pfile
sqlplus / as sysdba
STARTUP NOMOUNT PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
Se for bem-sucedido, deve 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;
Valide a conetividade ao serviço de base de dados em espera. Em cada servidor da Bare Metal Solution na localização da base de dados principal, tente estabelecer ligação à instância de reserva através do SQL*Plus. Introduza manualmente a palavra-passe de início de sessão remoto do SYS para estabelecer ligação à instância com êxito.
sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdba
Se for bem-sucedido, deve receber um comando SQL*Plus padrão, onde pode verificar os parâmetros da instância:
SHOW PARAMETER DB_UNIQUE_NAME;
Deve receber uma resposta semelhante à seguinte:
NAME TYPE VALUE ---------------- ----------- ------------------------------ db_unique_name string DBDG_SITE2
Saia do SQL*Plus depois de verificar o parâmetro
DB_UNIQUE_NAME
:EXIT;
Associe-se ao Recovery Manager e, em seguida, execute o comando
duplicate
para duplicar a base de dados em espera a partir da base de dados principal ativa:rman TARGET sys@DBDG_SITE1 AUXILIARY sys@DBDG_SITE2_FOR_DUPLICATION
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK;
Se for bem-sucedido, após o processamento, deve receber uma mensagem semelhante ao exemplo seguinte:
Finished Duplicate Db at ...
Saia do Recovery Manager:
EXIT;
Finalize a criação da base de dados de reserva
Durante a duplicação da base de dados, o ASM cria novos ficheiros de controlo para a base de dados de espera. Estabeleça ligação à nova instância de espera e obtenha os nomes dos novos ficheiros de controlo. O exemplo seguinte mostra dois ficheiros de controlo 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 ficheiros de controlo são apresentados no campo "Valor":
NAME VALUE --------------- ---------------------------------------------------------------------------------------------------- control_files +DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089, +RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089
Registe os nomes dos ficheiros de controlo do passo anterior e substitua todas as entradas do parâmetro
control_files
em$ORACLE_HOME/dbs/initDBDG_SITE21.ora
pelos novos valores. Se existirem vários ficheiros de controlo, encapsule cada um deles entre aspas simples, separados por uma vírgula:*.control_files='+DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089'
Estabeleça ligação à base 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 ficheiro de palavras-passe para o grupo de discos do ASM através do 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 base de dados em modo de espera e elimine o ficheiro temporário
pfile
e de palavra-passe:sqplus / as sysdba
SHUTDOWN IMMEDIATE; EXIT;
rm $ORACLE_HOME/dbs/orapwDBDG_SITE21.ora $ORACLE_HOME/dbs/initDBDG_SITE2.ora
Pare o ouvinte temporário usado para a duplicação da base de dados no primeiro servidor da solução Bare Metal na localização da base de dados em espera:
lsnrctl stop LISTENER_DBDG_SITE2
Remova as entradas temporárias no ficheiro
$ORACLE_HOME/network/admin/listener.ora
no primeiro servidor do Bare Metal Solution na localização da base de dados em modo de espera.Adicione a nova base de dados e instâncias de reserva ao registo do cluster através do 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 a base de dados em espera com o comando
srvctl
:srvctl start database -db DBDG_SITE2
Passos seguintes
Em seguida, configure e ative o agente do Data Guard.