Crea database in standby di Data Guard
Una volta preparato per Data Guard, il database principale è 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 database | Nomi host dei server | Nomi istanze RAC | Ruolo |
---|---|---|---|
DBDG_SITE1 | site1db1, site1db2 | DBDG_SITE11, DBDG_SITE12 | Principale |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | In attesa |
I server Bare Metal Solution che eseguono Oracle in questa guida sono configurati con le seguenti variabili di ambiente:
Nome variabile di ambiente | Valore |
---|---|
ORACLE_BASE | /apps/oracle/oracle_base |
ORACLE_HOME | /apps/oracle/19.0.0/db_home1 |
A seconda della configurazione, potrebbe essere necessario modificare i percorsi delle variabile di ambiente.
Configura il database in standby
Configura la connettività del database
Accedi a ogni server Bare Metal Solution nella località 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)
)
)
Configura un listener temporaneo
Per evitare il riavvio del 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. Questo listener temporaneo viene eliminato dopo la duplicazione del database.
Accedi al primo server Bare Metal Solution nella località di standby da utilizzare durante il processo di duplicazione del database. Modifica il file
$ORACLE_HOME/network/admin/listener.ora
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 il listener temporaneo:
lsnrctl start LISTENER_DBDG_SITE2
Prepara il database in standby
Ogni istanza di database richiede una directory per archiviare gli audit log. Crea la directory del file di controllo su ogni server Bare Metal Solution nella posizione del database in 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 in standby:- Imposta
db_unique_name
sul nuovo nome del database in standby. - Modifica tutti i parametri specifici dell'istanza in modo che riflettano i nomi delle istanze per il database in 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 località 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 di database aggiornato con modifiche utilizzando gli esempi forniti in questa guida. Tieni presente che il file dei parametri conterrà parametri aggiuntivi specifici per la configurazione del tuo database. Vengono mostrati solo i parametri che richiedono modifiche per lo 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 in standby:DBDG_SITE21:ORACLE_HOME:N
Crea il database in standby
Imposta la variabile di ambiente
ORACLE_SID
in modo da poterti connettere al database in 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 località in standby, avvia SQL*Plus, quindi avvia il database in standby in
nomount mode
utilizzandopfile
:sqlplus / as sysdba
STARTUP NOMOUNT PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
In caso di esito positivo, dovresti ricevere una risposta simile alla 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 di database in standby. Da ogni server Bare Metal Solution nella località del database principale, prova a connetterti all'istanza in standby utilizzando SQL*Plus. Inserisci manualmente la password di accesso remoto SYS per connetterti 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 lo 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;
In caso di esito positivo, dopo l'elaborazione dovresti ricevere un messaggio simile al seguente esempio:
Finished Duplicate Db at ...
Esci da Gestione ripristino:
EXIT;
Finalizza la creazione del database in standby
Durante la duplicazione del database, ASM crea nuovi file di controllo per il database in standby. Connettiti alla nuova istanza in standby e recupera 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 sono 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 in 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 delle 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 in standby ed elimina il file temporaneo
pfile
e delle password:sqplus / as sysdba
SHUTDOWN IMMEDIATE; EXIT;
rm $ORACLE_HOME/dbs/orapwDBDG_SITE21.ora $ORACLE_HOME/dbs/initDBDG_SITE2.ora
Arresta il listener temporaneo utilizzato per la duplicazione del database sul primo server Bare Metal Solution nella posizione del database in 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 in standby.Aggiungi le nuove istanze e il nuovo database in standby al registro di 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 in standby utilizzando il comando
srvctl
:srvctl start database -db DBDG_SITE2
Passaggi successivi
Quindi, configura e attiva il broker Data Guard.