Crea il database di standby di Data Guard
Dopo aver preparato il database principale per Data Guard, è pronto per essere duplicato nel sito di standby. La seguente guida utilizza la duplicazione attiva per creare una copia coerente del database.
Ti ricordiamo che in questa guida vengono utilizzati i seguenti esempi:
Nome univoco del database | Nomi host del server | Nomi delle istanze RAC | Ruolo |
---|---|---|---|
DBDG_SITE1 | site1db1, site1db2 | DBDG_SITE11, DBDG_SITE12 | Principale |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | Standby |
I server Bare Metal Solution che eseguono Oracle in questa guida sono configurati con le seguenti variabili di ambiente:
Nome della variabile di ambiente | Valore |
---|---|
ORACLE_BASE | /apps/oracle/oracle_base |
ORACLE_HOME | /apps/oracle/19.0.0/db_home1 |
Potresti dover modificare i percorsi variabile di ambiente a seconda della configurazione.
Configura il database di riserva
Configura la connettività del database
Accedi a ogni server Bare Metal Solution nella posizione di standby e modifica il file $ORACLE_HOME/network/admin/tsnames.ora
per aggiornare la configurazione del servizio di rete:
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)
)
)
Configurare un listener temporaneo
Per evitare di riavviare il listener utilizzato per altre connessioni al database, la duplicazione del database viene eseguita utilizzando un listener temporaneo. Questo esempio utilizza la porta 1523, ma puoi utilizzare qualsiasi porta aperta per la comunicazione tra i cluster. Elimina questo ascoltatore temporaneo dopo la duplicazione del database.
Accedi al primo server Bare Metal Solution nella posizione di standby da utilizzare durante il processo di duplicazione del database. Modifica il
$ORACLE_HOME/network/admin/listener.ora
file per aggiornare la configurazione del servizio di rete: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
Avvia l'ascoltatore temporaneo:
lsnrctl start LISTENER_DBDG_SITE2
Prepara il database di standby
Ogni istanza di database richiede una directory per archiviare i log di controllo. Crea la directory dei file di controllo su ogni server Bare Metal Solution nella posizione del database di standby:
mkdir -p /apps/oracle/oracle_base/admin/DBDG_SITE2/adump
Modifica il file
$ORACLE_HOME/dbs/initDBDG_SITE21.ora
che è stato copiato in precedenza sul server di database di riserva:- Imposta
db_unique_name
sul nome del nuovo database di standby. - Modifica eventuali parametri specifici dell'istanza in modo che riflettano i nomi delle istanze per il database di standby. Ecco alcuni esempi:
instance_number
thread
undo_tablespace
- Imposta il parametro
audit_file_dest
in modo da utilizzare la directory creata nel passaggio precedente. - Se i gruppi di dischi ASM in ogni posizione utilizzano nomi diversi, modifica i parametri
db_file_name_convert
elog_file_name_convert
in modo che corrispondano alle nuove posizioni dei file. - Commenta il parametro
control_files
.
L'esempio seguente mostra un file dei parametri del database aggiornato con le modifiche utilizzando gli esempi forniti in questa guida. Tieni presente che il file di parametri conterrà parametri aggiuntivi specifici per la configurazione del database. Vengono visualizzati solo i parametri che richiedono la modifica per il funzionamento in standby:
*.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'
- Imposta
Nel file
/etc/oratab
, aggiungi una voce in modo che il comandooraenv
possa impostare le variabili di ambiente per il database di standby:DBDG_SITE21:ORACLE_HOME:N
Crea il database di riserva
Imposta la variabile di ambiente
ORACLE_SID
per poterti connettere al database di standby:source oraenv <<< "DBDG_SITE21"
Dovresti ricevere la risposta
The Oracle base has been set to /apps/oracle/oracle_base
.Prima di duplicare il database principale, devi avviare manualmente l'istanza di standby su un nodo. Accedi al primo server Bare Metal Solution nella posizione di standby, avvia SQL*Plus e poi avvia il database di standby in
nomount mode
utilizzandopfile
:sqlplus / as sysdba
STARTUP NOMOUNT PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
Se l'operazione ha esito positivo, dovresti ricevere una risposta simile al seguente esempio:
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
Esci da SQL*Plus dopo aver avviato l'istanza:
EXIT;
Verifica la connettività al servizio del database di riserva. Da ogni server Bare Metal Solution nella posizione del database principale, prova a connetterti all'istanza di standby utilizzando SQL*Plus. Inserisci manualmente la password di accesso remoto SYS per connetterti correttamente all'istanza.
sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdba
In caso di esito positivo, dovresti ricevere un prompt SQL*Plus standard, in cui puoi controllare i parametri dell'istanza:
SHOW PARAMETER DB_UNIQUE_NAME;
Dovresti ricevere una risposta simile alla seguente:
NAME TYPE VALUE ---------------- ----------- ------------------------------ db_unique_name string DBDG_SITE2
Esci da SQL*Plus dopo aver controllato il parametro
DB_UNIQUE_NAME
:EXIT;
Connettiti a Recovery Manager, quindi esegui il comando
duplicate
per duplicare il database standby dal database principale attivo:rman TARGET sys@DBDG_SITE1 AUXILIARY sys@DBDG_SITE2_FOR_DUPLICATION
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK;
Se l'operazione è andata a buon fine, dopo l'elaborazione dovresti ricevere un messaggio simile al seguente:
Finished Duplicate Db at ...
Esci da Recovery Manager:
EXIT;
Completa la creazione del database di standby
Durante la duplicazione del database, ASM crea nuovi file di controllo per il database di standby. Connettiti alla nuova istanza di standby e ottieni i nuovi nomi dei file di controllo. L'esempio seguente mostra due file di controllo archiviati nei gruppi di dischi
+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';
I nomi dei file di controllo vengono visualizzati nel campo "Valore":
NAME VALUE --------------- ---------------------------------------------------------------------------------------------------- control_files +DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089, +RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089
Registra i nomi dei file di controllo del passaggio precedente e sostituisci eventuali voci per il parametro
control_files
in$ORACLE_HOME/dbs/initDBDG_SITE21.ora
con i nuovi valori. Se sono presenti più file di controllo, racchiudi ciascuno tra virgolette singole, separate da una virgola:*.control_files='+DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089'
Connettiti al database di standby con SQL*Plus e crea un nuovo
spfile
dalpfile
modificato:sqlplus / as sysdba
CREATE SPFILE='+DATA/DBDG_SITE2/spfileDBDG_SITE2' FROM PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
Copia il file della password nel gruppo di dischi ASM utilizzando il comando
asmcmd
:asmcmd cp /apps/oracle/19.0.0/db_home1/dbs/orapwDBDG_SITE21.ora +DATA/DBDG_SITE2/orapwDBDG_SITE2
Arresta l'istanza del database di riserva ed elimina il file temporaneo
pfile
e la password:sqplus / as sysdba
SHUTDOWN IMMEDIATE; EXIT;
rm $ORACLE_HOME/dbs/orapwDBDG_SITE21.ora $ORACLE_HOME/dbs/initDBDG_SITE2.ora
Interrompi l'ascoltatore temporaneo utilizzato per la duplicazione del database sul primo server Bare Metal Solution nella posizione del database di standby:
lsnrctl stop LISTENER_DBDG_SITE2
Rimuovi le voci temporanee nel file
$ORACLE_HOME/network/admin/listener.ora
sul primo server Bare Metal Solution nella posizione del database di riserva.Aggiungi il nuovo database e le nuove istanze di standby al registry del cluster utilizzando il 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
Avvia il database di standby utilizzando il comando
srvctl
:srvctl start database -db DBDG_SITE2
Passaggi successivi
Poi, configura e attiva il broker Data Guard.