Crea il database in 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 delle variabili di ambiente a seconda della configurazione.
configura il database in standby
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 di database, la duplicazione viene eseguita utilizzando un listener temporaneo. Questo esempio utilizza la porta 1523, ma puoi utilizzare qualsiasi porta aperta per la comunicazione 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 il servizio di rete configurazione: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 in standby
Ogni istanza di database richiede una directory in cui archiviare gli audit log. 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 i parametri specifici dell'istanza in modo che riflettano i nomi delle istanze
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 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 di parametri di database aggiornato con modifiche utilizzando gli esempi forniti in questa guida. Tieni presente che contenente parametri aggiuntivi specifici per il tuo e la configurazione del database. Solo i parametri che richiedono la modifica del parametro in standby sono visualizzati:
*.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 variabili di ambiente per il database in standby:DBDG_SITE21:ORACLE_HOME:N
Crea il database di standby
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 lo standby su un nodo. Accedi al primo server Bare Metal Solution in standby avvia SQL*Plus, quindi avvia il database in standby
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 del database di riserva. Da ogni soluzione Bare Metal Solution server nella posizione del database principale, prova a connetterti all'app in standby utilizzando SQL*Plus. Inserisci manualmente la password di accesso remoto SYS di connettersi correttamente all'istanza.
sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdba
Se l'esito è positivo, dovresti ricevere un prompt SQL*Plus standard, in cui controlla 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 in 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 ha esito positivo, al termine dell'elaborazione dovresti ricevere un messaggio simile al nell'esempio seguente:
Finished Duplicate Db at ...
Esci da Recovery Manager:
EXIT;
Finalizza la creazione del database in standby
Durante la duplicazione del database, ASM crea nuovi file di controllo per l'standby per configurare un database. Connettiti alla nuova istanza in standby e scarica il nuovo file di controllo nomi di utenti. L'esempio seguente mostra due file di controllo archiviati nell'
+DATA
e+RECO
di gruppi di dischi:sqlplus / as sysdba
SET LINESIZE 140 COLUMN NAME FORMAT a15 COLUMN VALUE FORMAT a125 SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='control_files';
Il nome o i nomi dei file di controllo sono mostrati in "Valore" campo:
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 per il parametro
control_files
in$ORACLE_HOME/dbs/initDBDG_SITE21.ora
con la nuova e i relativi valori. Se sono presenti più file di controllo, incapsulali in un virgolette, 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 in
$ORACLE_HOME/network/admin/listener.ora
sul primo server Bare Metal Solution nel percorso del database in standby.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
A questo punto, configura e attiva il broker Data Guard.