Skip to main content
NetApp database solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

TR-5006: Implementazione Oracle VLDB ad alta produttività su Google Cloud NetApp Volumes con Data Guard

Collaboratori netapp-revathid kevin-hoke

Allen Cao, Niyaz Mohamed, NetApp

La soluzione fornisce una panoramica e dettagli per la configurazione di Oracle Very Large Database (VLDB) ad alta velocità su Google Cloud NetApp Volumes (GCNV) con Oracle Data Guard in Google Cloud.

Scopo

L'elevata produttività e l'Oracle VLDB mission-critical pongono una forte richiesta di storage del database back-end. Per soddisfare l'accordo sul livello di servizio (SLA), l'archiviazione del database deve fornire la capacità richiesta e un elevato numero di operazioni di input/output al secondo (IOPS), mantenendo al contempo prestazioni con latenza inferiore ai millisecondi. Ciò risulta particolarmente impegnativo quando si distribuisce un carico di lavoro di database di questo tipo nel cloud pubblico con un ambiente di risorse di archiviazione condivise. Non tutte le piattaforme di archiviazione sono uguali. GCNV è un servizio di archiviazione premium offerto da Google in grado di supportare distribuzioni di database Oracle mission-critical nel cloud di Google che richiedono IOPS sostenuti e caratteristiche di prestazioni a bassa latenza. L'architettura supporta carichi di lavoro OLTP e OLAP, con livelli di servizio configurabili che supportano vari profili di prestazioni. GCNV offre prestazioni incredibilmente veloci con latenza inferiore ai millisecondi, raggiungendo una velocità di elaborazione fino a 4,5 GiBps per volume con carichi di lavoro misti di lettura/scrittura.

Sfruttando la funzionalità di backup snapshot veloce (secondi) e di clonazione (minuti) di GCNV, è possibile clonare al volo copie complete del database di produzione da Physical Standby per soddisfare molti altri casi d'uso, come DEV, UAT, ecc. È possibile eliminare una licenza Active Data Guard e Snapshot Standby inefficiente e complesso. Il risparmio sui costi può essere notevole. Per una configurazione nominale di Oracle Data Guard con CPU a 64 core sia sui server Oracle primari che su quelli di standby, il solo risparmio sui costi di licenza di Active Data Guard ammonta a $ 1.472.000, in base all'ultimo listino prezzi Oracle.  

In questa documentazione, illustriamo come impostare un Oracle VLDB con configurazione Data Guard su storage GCNVS con più volumi NFS e Oracle ASM per il bilanciamento del carico di storage. È possibile eseguire rapidamente il backup dei volumi del database di standby tramite snapshot e clonarli per l'accesso in lettura/scrittura. Il team di NetApp Solutions Engineering fornisce un toolkit di automazione per creare e aggiornare cloni con una gestione semplificata del ciclo di vita.

Questa soluzione affronta i seguenti casi d'uso:

  • Implementazione di Oracle VLDB in un'impostazione Data Guard sul servizio di archiviazione GCNV nelle regioni Google Cloud.

  • Eseguire il backup degli snapshot e clonare il database di standby fisico per soddisfare casi d'uso quali reporting, sviluppo, test, ecc. tramite l'automazione.

Pubblico

Questa soluzione è destinata alle seguenti persone:

  • Un DBA che configura Oracle VLDB con Data Guard nel cloud Google per garantire elevata disponibilità, protezione dei dati e ripristino di emergenza.

  • Architetto di soluzioni di database interessato a Oracle VLDB con configurazione Data Guard nel cloud di Google.

  • Un amministratore di storage che gestisce lo storage GCNV che supporta il database Oracle.

  • Un proprietario di applicazioni a cui piace installare Oracle VLDB con Data Guard in un ambiente cloud di Google.

Ambiente di test e convalida della soluzione

I test e la convalida di questa soluzione sono stati eseguiti in un ambiente di laboratorio Google Cloud che potrebbe non corrispondere all'effettivo ambiente di distribuzione dell'utente. Per ulteriori informazioni, consultare la sezione Fattori chiave per la considerazione dell'implementazione .

Architettura

Questa immagine fornisce un quadro dettagliato dell'implementazione di Oracle Data Guard nel cloud Google su GCNV.

Componenti hardware e software

Hardware

Google Cloud NetApp Volumes

Servizio attuale offerto da Google

Due pool di archiviazione, livello di servizio Premium, QoS automatico

VM di Google Compute Engine per server DB

N1 (4 vCPU, 15 GiB di memoria)

Quattro VM DB, server DB primario, server DB di standby, server DB clone e osservatore Data Guard.

Software

RedHat Linux

Red Hat Enterprise Linux 8.10 (Ootpa) - x86/64

Immagine del Marketplace RHEL, PAYG

Infrastruttura Oracle Grid

Versione 19.18

Patch RU applicata p34762026_190000_Linux-x86-64.zip

Database Oracle

Versione 19.18

Patch RU applicata p34765931_190000_Linux-x86-64.zip

Patch dNFS OneOff

p32931941_190000_Linux-x86-64.zip

Applicato sia alla griglia che al database

Oracle OPatch

Versione 12.2.0.1.36

Ultima patch p6880880_190000_Linux-x86-64.zip

Ansible

Versione core 2.16.2

versione python - 3.10.13

NFS

Versione 3.0

dNFS abilitato per Oracle

Configurazione di Oracle VLDB Data Guard con una configurazione DR simulata da NY a LA

Banca dati

DB_NOME_UNICO

Nome del servizio Oracle Net

Primario

NTAP_NY

NTAP_NY.cvs-pm-host-1p.internal

Stand-by

NTAP_LA

NTAP_LA.cvs-pm-host-1p.internal

Fattori chiave per la considerazione dell'implementazione

  • * Configurazione Google Cloud NetApp Volumes .* I GCNV sono allocati nel cloud di Google come Storage Pools . In questi test e convalide, abbiamo distribuito un pool di archiviazione da 2 TiB per ospitare il database primario Oracle nella regione East4 e un pool di archiviazione da 4 TiB per ospitare il database standby e il clone del DB nella regione West4. Il pool di archiviazione GCNV offre quattro livelli di servizio: Flex, Standard, Premium ed Extreme. La capacità IO del pool di capacità ANF si basa sulla dimensione del pool di capacità e sul suo livello di servizio. Durante la creazione di un pool di capacità, si imposta la posizione del pool di archiviazione, il livello di servizio, la zona di disponibilità e la capacità del pool di archiviazione. Per la configurazione di Oracle Data Guard, la disponibilità zonale dovrebbe essere sufficiente poiché Data Guard fornisce la protezione dal failover del database in caso di errore a livello di zona.

  • Dimensionamento dei volumi del database. Per l'implementazione in produzione, NetApp consiglia di effettuare una valutazione completa dei requisiti di throughput del database Oracle dal report Oracle AWR. Quando si progetta il layout dei volumi GCNV per il database VLDB, tenere in considerazione le dimensioni del database, i requisiti di throughput e il livello di servizio. Si consiglia di utilizzare solo Premium O Extreme servizio per database Oracle. La larghezza di banda è garantita a 64 MiB/s per capacità di volume TiB fino a un massimo di 4,5 GiBps per Premium servizio e 128 MiB/s per capacità di volume TiB fino a 4,5 GiBps per Extreme servizio. Per soddisfare i requisiti, una maggiore produttività richiederà volumi più grandi.

  • Volumi multipli e bilanciamento del carico. Un singolo volume di grandi dimensioni può fornire un livello di prestazioni simile a quello di più volumi con le stesse dimensioni aggregate del volume, poiché la qualità del servizio è rigorosamente applicata in base alle dimensioni del volume e al livello di servizio del pool di archiviazione. Si consiglia di implementare più volumi (più punti di montaggio NFS) per Oracle VLDB per utilizzare al meglio il pool di risorse di archiviazione GCNV backend condiviso e per soddisfare i requisiti di throughput superiori a 4,5 GiBps. Implementare Oracle ASM per il bilanciamento del carico IO su più volumi NFS.

  • Considerazioni sull'istanza VM di Google Compute Engine. In questi test e convalide abbiamo utilizzato Compute Engine VM - N1 con 4 vCPU e 15 GiB di memoria. È necessario scegliere l'istanza VM del database Compute Engine in modo appropriato per Oracle VLDB con requisiti di throughput elevati. Oltre al numero di vCPU e alla quantità di RAM, la larghezza di banda della rete VM (limite di throughput in ingresso e in uscita o NIC) può diventare un collo di bottiglia prima che venga raggiunta la velocità di throughput dell'archiviazione del database.

  • Configurazione dNFS. Utilizzando dNFS, un database Oracle in esecuzione su una VM Google Compute Engine con storage GCNV può gestire un I/O significativamente maggiore rispetto al client NFS nativo. Assicurarsi che la patch p32931941 di Oracle dNFS venga applicata per risolvere potenziali bug.

Distribuzione della soluzione

Nella sezione seguente viene illustrata la configurazione per Oracle VLDB su GCNV in un'impostazione Oracle Data Guard tra un Oracle DB primario nel Google Cloud della regione orientale con storage GCNV e un Oracle DB di standby fisico nel Google Cloud della regione occidentale con storage GCNV.

Prerequisiti per la distribuzione

Details

Per la distribuzione sono richiesti i seguenti prerequisiti.

  1. È stato configurato un account Google Cloud ed è stato creato un progetto all'interno del tuo account Google per distribuire le risorse per la configurazione di Oracle Data Guard.

  2. Crea una VPC e delle subnet che coprano le regioni desiderate per Data Guard. Per una configurazione DR resiliente, si consiglia di posizionare i database primario e di standby in posizioni geografiche diverse, in grado di tollerare gravi disastri in una regione locale.

  3. Dalla console del portale Google Cloud, distribuisci quattro istanze VM Linux di Google Compute Engine, una come server Oracle DB primario, una come server Oracle DB di standby, un server DB di destinazione clone e un osservatore Oracle Data Guard. Per maggiori dettagli sulla configurazione dell'ambiente, consultare il diagramma dell'architettura nella sezione precedente. Segui la documentazione di Google"Crea un'istanza di VM Linux in Compute Engine" per istruzioni dettagliate.

    Nota Assicurati di aver allocato almeno 50 G nel volume radice delle VM di Azure per avere spazio sufficiente per organizzare i file di installazione di Oracle. Per impostazione predefinita, le VM di Google Compute Engine sono bloccate a livello di istanza. Per abilitare la comunicazione tra VM, è necessario creare regole firewall specifiche per aprire il flusso di traffico della porta TCP, come la tipica porta Oracle 1521.
  4. Dalla console del portale Google Cloud, distribuisci due pool di archiviazione GCNV per ospitare i volumi del database Oracle. Riferito alla documentazione"Creazione di un pool di archiviazione: avvio rapido" per istruzioni dettagliate. Di seguito sono riportati alcuni screenshot per una rapida consultazione.

    Screenshot che mostra la configurazione dell'ambiente GCNV. Screenshot che mostra la configurazione dell'ambiente GCNV. Screenshot che mostra la configurazione dell'ambiente GCNV. Screenshot che mostra la configurazione dell'ambiente GCNV.

  5. Creare volumi di database in pool di archiviazione. Riferito alla documentazione"Creare un volume di avvio rapido" per istruzioni dettagliate. Di seguito sono riportati alcuni screenshot per una rapida consultazione.

    Screenshot che mostra la configurazione dell'ambiente GCNV. Screenshot che mostra la configurazione dell'ambiente GCNV. Screenshot che mostra la configurazione dell'ambiente GCNV. Screenshot che mostra la configurazione dell'ambiente GCNV. Screenshot che mostra la configurazione dell'ambiente GCNV. Screenshot che mostra la configurazione dell'ambiente GCNV.

  6. Il database Oracle primario avrebbe dovuto essere installato e configurato nel server Oracle DB primario. D'altro canto, nel server Oracle DB di standby o nel server Oracle DB clone, viene installato solo il software Oracle e non viene creato alcun database Oracle. Idealmente, il layout delle directory dei file Oracle dovrebbe corrispondere esattamente su tutti i server Oracle DB. Per assistenza sull'infrastruttura Oracle Grid e sull'installazione e configurazione del database con NFS/ASM, fare riferimento a TR-4974. Sebbene la soluzione sia convalidata nell'ambiente AWS FSx/EC2, può essere applicata anche all'ambiente Google GCNV/Compute Engine.

Configurazione primaria di Oracle VLDB per Data Guard

Details

In questa dimostrazione, abbiamo configurato un database Oracle primario denominato NTAP sul server DB primario con otto punti di montaggio NFS: /u01 per il binario Oracle, /u02, /u03, /u04, /u05, /u06, /u07 per i file di dati Oracle e carico bilanciato con il gruppo di dischi Oracle ASM +DATA; /u08 per i log attivi Oracle, i file di log archiviati e carico bilanciato con il gruppo di dischi Oracle ASM +LOGS. Per motivi di ridondanza, i file di controllo Oracle vengono posizionati sia sui gruppi di dischi +DATA che +LOGS. Questa configurazione serve come riferimento. L'effettiva distribuzione dovrebbe tenere in considerazione le esigenze e i requisiti specifici in termini di dimensioni del pool di archiviazione, livello di servizio, numero di volumi di database e dimensioni di ciascun volume.

Per procedure dettagliate passo passo per la configurazione di Oracle Data Guard su NFS con ASM, fare riferimento a TR-5002 -"Riduzione dei costi di Oracle Active Data Guard con Azure NetApp Files" . Sebbene le procedure in TR-5002 siano state convalidate nell'ambiente Azure ANF, sono ugualmente applicabili all'ambiente Google GCNV.

Di seguito sono illustrati i dettagli di un Oracle VLDB primario in una configurazione Data Guard nell'ambiente Google GCNV.

  1. Il database primario NTAP nel server DB del motore di calcolo primario viene distribuito come database a istanza singola in una configurazione di riavvio autonoma sullo storage GCNV con protocollo NFS e ASM come gestore del volume di storage del database.

    orap.us-east4-a.c.cvs-pm-host-1p.internal:
    Zone: us-east-4a
    size: n1-standard-4 (4 vCPUs, 15 GB Memory)
    OS: Linux (redhat 8.10)
    pub_ip: 35.212.124.14
    pri_ip: 10.70.11.5
    
    [oracle@orap ~]$ df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  7.2G     0  7.2G   0% /dev
    tmpfs                     7.3G     0  7.3G   0% /dev/shm
    tmpfs                     7.3G  8.5M  7.2G   1% /run
    tmpfs                     7.3G     0  7.3G   0% /sys/fs/cgroup
    /dev/sda2                  50G   40G   11G  80% /
    /dev/sda1                 200M  5.9M  194M   3% /boot/efi
    10.165.128.180:/orap-u05  250G  201G   50G  81% /u05
    10.165.128.180:/orap-u08  400G  322G   79G  81% /u08
    10.165.128.180:/orap-u04  250G  201G   50G  81% /u04
    10.165.128.180:/orap-u07  250G  201G   50G  81% /u07
    10.165.128.180:/orap-u02  250G  201G   50G  81% /u02
    10.165.128.180:/orap-u06  250G  201G   50G  81% /u06
    10.165.128.180:/orap-u01  100G   21G   80G  21% /u01
    10.165.128.180:/orap-u03  250G  201G   50G  81% /u03
    
    
    [oracle@orap ~]$ cat /etc/oratab
    #
    
    
    
    # This file is used by ORACLE utilities.  It is created by root.sh
    # and updated by either Database Configuration Assistant while creating
    # a database or ASM Configuration Assistant while creating ASM instance.
    
    # A colon, ':', is used as the field terminator.  A new line terminates
    # the entry.  Lines beginning with a pound sign, '#', are comments.
    #
    # Entries are of the form:
    #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
    #
    # The first and second fields are the system identifier and home
    # directory of the database respectively.  The third field indicates
    # to the dbstart utility that the database should , "Y", or should not,
    # "N", be brought up at system boot time.
    #
    # Multiple entries with the same $ORACLE_SID are not allowed.
    #
    #
    +ASM:/u01/app/oracle/product/19.0.0/grid:N
    NTAP:/u01/app/oracle/product/19.0.0/NTAP:N
  2. Accedi al server DB primario come utente Oracle. Convalida la configurazione della griglia.

    $GRID_HOME/bin/crsctl stat res -t
    [oracle@orap ~]$ $GRID_HOME/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       orap                     STABLE
    ora.LISTENER.lsnr
                   ONLINE  ONLINE       orap                     STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       orap                     STABLE
    ora.asm
                   ONLINE  ONLINE       orap                     Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      orap                     STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       orap                     STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.evmd
          1        ONLINE  ONLINE       orap                     STABLE
    ora.ntap.db
          1        ONLINE  ONLINE       orap                     Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /NTAP,STABLE
    --------------------------------------------------------------------------------
    [oracle@orap ~]$
  3. Configurazione del gruppo di dischi ASM.

    asmcmd
    [oracle@orap ~]$ asmcmd
    ASMCMD> lsdg
    State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  EXTERN  N         512             512   4096  4194304   1228800  1219888                0         1219888              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304    327680   326556                0          326556              0             N  LOGS/
    ASMCMD> lsdsk
    Path
    /u02/oradata/asm/orap_data_disk_01
    /u02/oradata/asm/orap_data_disk_02
    /u02/oradata/asm/orap_data_disk_03
    /u02/oradata/asm/orap_data_disk_04
    /u03/oradata/asm/orap_data_disk_05
    /u03/oradata/asm/orap_data_disk_06
    /u03/oradata/asm/orap_data_disk_07
    /u03/oradata/asm/orap_data_disk_08
    /u04/oradata/asm/orap_data_disk_09
    /u04/oradata/asm/orap_data_disk_10
    /u04/oradata/asm/orap_data_disk_11
    /u04/oradata/asm/orap_data_disk_12
    /u05/oradata/asm/orap_data_disk_13
    /u05/oradata/asm/orap_data_disk_14
    /u05/oradata/asm/orap_data_disk_15
    /u05/oradata/asm/orap_data_disk_16
    /u06/oradata/asm/orap_data_disk_17
    /u06/oradata/asm/orap_data_disk_18
    /u06/oradata/asm/orap_data_disk_19
    /u06/oradata/asm/orap_data_disk_20
    /u07/oradata/asm/orap_data_disk_21
    /u07/oradata/asm/orap_data_disk_22
    /u07/oradata/asm/orap_data_disk_23
    /u07/oradata/asm/orap_data_disk_24
    /u08/oralogs/asm/orap_logs_disk_01
    /u08/oralogs/asm/orap_logs_disk_02
    /u08/oralogs/asm/orap_logs_disk_03
    /u08/oralogs/asm/orap_logs_disk_04
    ASMCMD>
  4. Impostazione dei parametri per Data Guard sul DB primario.

    SQL> show parameter name
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cdb_cluster_name                     string
    cell_offloadgroup_name               string
    db_file_name_convert                 string
    db_name                              string      ntap
    db_unique_name                       string      ntap_ny
    global_names                         boolean     FALSE
    instance_name                        string      NTAP
    lock_name_space                      string
    log_file_name_convert                string
    pdb_file_name_convert                string
    processor_group_name                 string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    service_names                        string      ntap_ny.cvs-pm-host-1p.interna
    
    SQL> sho parameter log_archive_dest
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest                     string
    log_archive_dest_1                   string      LOCATION=USE_DB_RECOVERY_FILE_
                                                     DEST VALID_FOR=(ALL_LOGFILES,A
                                                     LL_ROLES) DB_UNIQUE_NAME=NTAP_
                                                     NY
    log_archive_dest_10                  string
    log_archive_dest_11                  string
    log_archive_dest_12                  string
    log_archive_dest_13                  string
    log_archive_dest_14                  string
    log_archive_dest_15                  string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_16                  string
    log_archive_dest_17                  string
    log_archive_dest_18                  string
    log_archive_dest_19                  string
    log_archive_dest_2                   string      SERVICE=NTAP_LA ASYNC VALID_FO
                                                     R=(ONLINE_LOGFILES,PRIMARY_ROL
                                                     E) DB_UNIQUE_NAME=NTAP_LA
    log_archive_dest_20                  string
    log_archive_dest_21                  string
    log_archive_dest_22                  string
  5. Configurazione del DB primario.

    SQL> select name, open_mode, log_mode from v$database;
    
    NAME      OPEN_MODE            LOG_MODE
    --------- -------------------- ------------
    NTAP      READ WRITE           ARCHIVELOG
    
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 NTAP_PDB1                      READ WRITE NO
             4 NTAP_PDB2                      READ WRITE NO
             5 NTAP_PDB3                      READ WRITE NO
    
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/DATAFILE/system.257.1198026005
    +DATA/NTAP/DATAFILE/sysaux.258.1198026051
    +DATA/NTAP/DATAFILE/undotbs1.259.1198026075
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.266.1198027075
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.267.1198027075
    +DATA/NTAP/DATAFILE/users.260.1198026077
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.268.1198027075
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/system.272.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/sysaux.273.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/undotbs1.271.1198028157
    +DATA/NTAP/32639B76C9BC91A8E063050B460A2116/DATAFILE/users.275.1198028185
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/system.277.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/sysaux.278.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/undotbs1.276.1198028187
    +DATA/NTAP/32639D40D02D925FE063050B460A60E3/DATAFILE/users.280.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/system.282.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/sysaux.283.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/undotbs1.281.1198028209
    +DATA/NTAP/32639E973AF79299E063050B460AFBAD/DATAFILE/users.285.1198028229
    
    19 rows selected.
    
    
    SQL> select member from v$logfile;
    
    MEMBER
    --------------------------------------------------------------------------------
    +DATA/NTAP/ONLINELOG/group_3.264.1198026139
    +LOGS/NTAP/ONLINELOG/group_3.259.1198026147
    +DATA/NTAP/ONLINELOG/group_2.263.1198026137
    +LOGS/NTAP/ONLINELOG/group_2.258.1198026145
    +DATA/NTAP/ONLINELOG/group_1.262.1198026137
    +LOGS/NTAP/ONLINELOG/group_1.257.1198026145
    +DATA/NTAP/ONLINELOG/group_4.286.1198511423
    +LOGS/NTAP/ONLINELOG/group_4.265.1198511425
    +DATA/NTAP/ONLINELOG/group_5.287.1198511445
    +LOGS/NTAP/ONLINELOG/group_5.266.1198511447
    +DATA/NTAP/ONLINELOG/group_6.288.1198511459
    
    MEMBER
    --------------------------------------------------------------------------------
    +LOGS/NTAP/ONLINELOG/group_6.267.1198511461
    +DATA/NTAP/ONLINELOG/group_7.289.1198511477
    +LOGS/NTAP/ONLINELOG/group_7.268.1198511479
    
    14 rows selected.
    
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/CONTROLFILE/current.261.1198026135
    +LOGS/NTAP/CONTROLFILE/current.256.1198026135
  6. Configurazione dell'ascoltatore Oracle.

    lsnrctl status listener
    [oracle@orap admin]$ lsnrctl status
    
    LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-APR-2025 16:14:00
    
    Copyright (c) 1991, 2022, Oracle.  All rights reserved.
    
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
    Start Date                14-APR-2025 19:44:21
    Uptime                    0 days 20 hr. 29 min. 38 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /u01/app/oracle/product/19.0.0/grid/network/admin/listener.ora
    Listener Log File         /u01/app/oracle/diag/tnslsnr/orap/listener/alert/log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orap.us-east4-a.c.cvs-pm-host-1p.internal)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
    Services Summary...
    Service "+ASM" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "+ASM_DATA" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "+ASM_LOGS" has 1 instance(s).
      Instance "+ASM", status READY, has 1 handler(s) for this service...
    Service "32639b76c9bc91a8e063050b460a2116.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "32639d40d02d925fe063050b460a60e3.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "32639e973af79299e063050b460afbad.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "86b637b62fdf7a65e053f706e80a27ca.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "NTAPXDB.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "NTAP_NY_DGMGRL.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status UNKNOWN, has 1 handler(s) for this service...
    Service "ntap.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb1.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb2.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    Service "ntap_pdb3.cvs-pm-host-1p.internal" has 1 instance(s).
      Instance "NTAP", status READY, has 1 handler(s) for this service...
    The command completed successfully
  7. Il flashback è abilitato nel database primario.

    SQL> select name, database_role, flashback_on from v$database;
    
    NAME      DATABASE_ROLE    FLASHBACK_ON
    --------- ---------------- ------------------
    NTAP      PRIMARY          YES
  8. Configurazione dNFS sul database primario.

    SQL> select svrname, dirname from v$dnfs_servers;
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u04
    
    10.165.128.180
    /orap-u05
    
    10.165.128.180
    /orap-u07
    
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u03
    
    10.165.128.180
    /orap-u06
    
    10.165.128.180
    /orap-u02
    
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.165.128.180
    /orap-u08
    
    10.165.128.180
    /orap-u01
    
    
    8 rows selected.

Ciò completa la dimostrazione di una configurazione Data Guard per VLDB NTAP nel sito primario su GCNV con NFS/ASM.

Configurazione di standby Oracle VLDB per Data Guard

Details

Oracle Data Guard richiede la configurazione del kernel del sistema operativo e gli stack software Oracle, inclusi i set di patch sul server DB di standby, per corrispondere al server DB primario. Per una gestione semplice e intuitiva, la configurazione dell'archiviazione del database del server DB di standby dovrebbe idealmente corrispondere anche a quella del server DB primario, ad esempio il layout della directory del database e le dimensioni dei punti di montaggio NFS.

Di nuovo, per procedure dettagliate passo passo per la configurazione di Oracle Data Guard standby su NFS con ASM, fare riferimento a"TR-5002 - Riduzione dei costi di Oracle Active Data Guard con Azure NetApp Files" E"TR-4974 - Oracle 19c in riavvio autonomo su AWS FSx/EC2 con NFS/ASM" sezioni pertinenti. Di seguito vengono illustrati i dettagli della configurazione di Oracle VLDB in standby sul server DB in standby in un'impostazione Data Guard nell'ambiente Google GCNV.

  1. Configurazione del server Oracle DB in standby nel sito in standby nel laboratorio dimostrativo.

    oras.us-west4-a.c.cvs-pm-host-1p.internal:
    Zone: us-west4-a
    size: n1-standard-4 (4 vCPUs, 15 GB Memory)
    OS: Linux (redhat 8.10)
    pub_ip: 35.219.129.195
    pri_ip: 10.70.14.16
    
    [oracle@oras ~]$ df -h
    Filesystem                Size  Used Avail Use% Mounted on
    devtmpfs                  7.2G     0  7.2G   0% /dev
    tmpfs                     7.3G  1.1G  6.2G  16% /dev/shm
    tmpfs                     7.3G  8.5M  7.2G   1% /run
    tmpfs                     7.3G     0  7.3G   0% /sys/fs/cgroup
    /dev/sda2                  50G   40G   11G  80% /
    /dev/sda1                 200M  5.9M  194M   3% /boot/efi
    10.165.128.197:/oras-u07  250G  201G   50G  81% /u07
    10.165.128.197:/oras-u06  250G  201G   50G  81% /u06
    10.165.128.197:/oras-u02  250G  201G   50G  81% /u02
    10.165.128.196:/oras-u03  250G  201G   50G  81% /u03
    10.165.128.196:/oras-u01  100G   20G   81G  20% /u01
    10.165.128.197:/oras-u05  250G  201G   50G  81% /u05
    10.165.128.197:/oras-u04  250G  201G   50G  81% /u04
    10.165.128.197:/oras-u08  400G  317G   84G  80% /u08
    
    [oracle@oras ~]$ cat /etc/oratab
    #Backup file is  /u01/app/oracle/crsdata/oras/output/oratab.bak.oras.oracle line added by Agent
    #
    
    
    
    # This file is used by ORACLE utilities.  It is created by root.sh
    # and updated by either Database Configuration Assistant while creating
    # a database or ASM Configuration Assistant while creating ASM instance.
    
    # A colon, ':', is used as the field terminator.  A new line terminates
    # the entry.  Lines beginning with a pound sign, '#', are comments.
    #
    # Entries are of the form:
    #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
    #
    # The first and second fields are the system identifier and home
    # directory of the database respectively.  The third field indicates
    # to the dbstart utility that the database should , "Y", or should not,
    # "N", be brought up at system boot time.
    #
    # Multiple entries with the same $ORACLE_SID are not allowed.
    #
    #
    +ASM:/u01/app/oracle/product/19.0.0/grid:N
    NTAP:/u01/app/oracle/product/19.0.0/NTAP:N              # line added by Agent
  2. Configurazione dell'infrastruttura di griglia sul server DB di standby.

    [oracle@oras ~]$ $GRID_HOME/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       oras                     STABLE
    ora.LISTENER.lsnr
                   ONLINE  ONLINE       oras                     STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       oras                     STABLE
    ora.asm
                   ONLINE  ONLINE       oras                     Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      oras                     STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       oras                     STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.evmd
          1        ONLINE  ONLINE       oras                     STABLE
    ora.ntap_la.db
          1        ONLINE  INTERMEDIATE oras                     Dismounted,Mount Ini
                                                                 tiated,HOME=/u01/app
                                                                 /oracle/product/19.0
                                                                 .0/NTAP,STABLE
    --------------------------------------------------------------------------------
  3. Configurazione dei gruppi di dischi ASM sul server DB di standby.

    [oracle@oras ~]$ asmcmd
    ASMCMD> lsdg
    State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  EXTERN  N         512             512   4096  4194304   1228800  1228420                0         1228420              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304    322336   322204                0          322204              0             N  LOGS/
    ASMCMD> lsdsk
    Path
    /u02/oradata/asm/oras_data_disk_01
    /u02/oradata/asm/oras_data_disk_02
    /u02/oradata/asm/oras_data_disk_03
    /u02/oradata/asm/oras_data_disk_04
    /u03/oradata/asm/oras_data_disk_05
    /u03/oradata/asm/oras_data_disk_06
    /u03/oradata/asm/oras_data_disk_07
    /u03/oradata/asm/oras_data_disk_08
    /u04/oradata/asm/oras_data_disk_09
    /u04/oradata/asm/oras_data_disk_10
    /u04/oradata/asm/oras_data_disk_11
    /u04/oradata/asm/oras_data_disk_12
    /u05/oradata/asm/oras_data_disk_13
    /u05/oradata/asm/oras_data_disk_14
    /u05/oradata/asm/oras_data_disk_15
    /u05/oradata/asm/oras_data_disk_16
    /u06/oradata/asm/oras_data_disk_17
    /u06/oradata/asm/oras_data_disk_18
    /u06/oradata/asm/oras_data_disk_19
    /u06/oradata/asm/oras_data_disk_20
    /u07/oradata/asm/oras_data_disk_21
    /u07/oradata/asm/oras_data_disk_22
    /u07/oradata/asm/oras_data_disk_23
    /u07/oradata/asm/oras_data_disk_24
    /u08/oralogs/asm/oras_logs_disk_01
    /u08/oralogs/asm/oras_logs_disk_02
    /u08/oralogs/asm/oras_logs_disk_03
    /u08/oralogs/asm/oras_logs_disk_04
    ASMCMD>
  4. Impostazione dei parametri per Data Guard sul DB di standby.

    SQL> show parameter name
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cdb_cluster_name                     string
    cell_offloadgroup_name               string
    db_file_name_convert                 string
    db_name                              string      NTAP
    db_unique_name                       string      NTAP_LA
    global_names                         boolean     FALSE
    instance_name                        string      NTAP
    lock_name_space                      string
    log_file_name_convert                string
    pdb_file_name_convert                string
    processor_group_name                 string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    service_names                        string      NTAP_LA.cvs-pm-host-1p.interna
                                                     l
    
    SQL> show parameter log_archive_config
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_config                   string      DG_CONFIG=(NTAP_NY,NTAP_LA)
    SQL> show parameter fal_server
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    fal_server                           string      NTAP_NY
  5. Configurazione del DB di standby.

    SQL> select name, open_mode, log_mode from v$database;
    
    NAME      OPEN_MODE            LOG_MODE
    --------- -------------------- ------------
    NTAP      MOUNTED              ARCHIVELOG
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       MOUNTED
             3 NTAP_PDB1                      MOUNTED
             4 NTAP_PDB2                      MOUNTED
             5 NTAP_PDB3                      MOUNTED
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/DATAFILE/system.261.1198520347
    +DATA/NTAP_LA/DATAFILE/sysaux.262.1198520373
    +DATA/NTAP_LA/DATAFILE/undotbs1.263.1198520399
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/system.264.1198520417
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/sysaux.265.1198520435
    +DATA/NTAP_LA/DATAFILE/users.266.1198520451
    +DATA/NTAP_LA/32635CC1DCF58A60E063050B460AB746/DATAFILE/undotbs1.267.1198520455
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/system.268.1198520471
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/sysaux.269.1198520489
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/undotbs1.270.1198520505
    +DATA/NTAP_LA/32639B76C9BC91A8E063050B460A2116/DATAFILE/users.271.1198520513
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/system.272.1198520517
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/sysaux.273.1198520533
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/undotbs1.274.1198520551
    +DATA/NTAP_LA/32639D40D02D925FE063050B460A60E3/DATAFILE/users.275.1198520559
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/system.276.1198520563
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/sysaux.277.1198520579
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/undotbs1.278.1198520595
    +DATA/NTAP_LA/32639E973AF79299E063050B460AFBAD/DATAFILE/users.279.1198520605
    
    19 rows selected.
    
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/CONTROLFILE/current.260.1198520303
    +LOGS/NTAP_LA/CONTROLFILE/current.257.1198520305
    
    
    SQL> select group#, type, member from v$logfile order by 2, 1;
    
        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------------------
             1 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_1.280.1198520649
             1 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_1.259.1198520651
             2 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_2.281.1198520659
             2 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_2.258.1198520661
             3 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_3.282.1198520669
             3 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_3.260.1198520671
             4 STANDBY +DATA/NTAP_LA/ONLINELOG/group_4.283.1198520677
             4 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_4.261.1198520679
             5 STANDBY +DATA/NTAP_LA/ONLINELOG/group_5.284.1198520687
             5 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_5.262.1198520689
             6 STANDBY +DATA/NTAP_LA/ONLINELOG/group_6.285.1198520697
    
        GROUP# TYPE    MEMBER
    ---------- ------- ------------------------------------------------------------
             6 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_6.263.1198520699
             7 STANDBY +DATA/NTAP_LA/ONLINELOG/group_7.286.1198520707
             7 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_7.264.1198520709
    
    14 rows selected.
  6. Convalida lo stato di ripristino del database di standby. Nota il recovery logmerger In APPLYING_LOG azione.

    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    post role transition              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    recovery logmerger                1         24 APPLYING_LOG
    managed recovery                  0          0 IDLE
    RFS ping                          1         24 IDLE
    archive redo                      0          0 IDLE
    archive redo                      0          0 IDLE
    gap manager                       0          0 IDLE
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    archive local                     0          0 IDLE
    redo transport timer              0          0 IDLE
    archive redo                      0          0 IDLE
    RFS async                         1         24 IDLE
    redo transport monitor            0          0 IDLE
    log writer                        0          0 IDLE
    
    17 rows selected.
  7. Il flashback è abilitato nel database di standby.

    SQL> select name, database_role, flashback_on from v$database;
    
    NAME      DATABASE_ROLE    FLASHBACK_ON
    --------- ---------------- ------------------
    NTAP      PHYSICAL STANDBY YES
  8. Configurazione dNFS sul DB di standby.

SQL> select svrname, dirname from v$dnfs_servers;

SVRNAME
--------------------------------------------------------------------------------
DIRNAME
--------------------------------------------------------------------------------
10.165.128.197
/oras-u04

10.165.128.197
/oras-u05

10.165.128.197
/oras-u06

10.165.128.197
/oras-u07

10.165.128.197
/oras-u02

10.165.128.197
/oras-u08

10.165.128.196
/oras-u03

10.165.128.196
/oras-u01


8 rows selected.

Ciò completa la dimostrazione di una configurazione Data Guard per VLDB NTAP con ripristino standby gestito abilitato nel sito di standby.

Configurazione di Data Guard Broker e FSFO con un osservatore

Configurazione di Data Guard Broker

Details

Oracle Data Guard Broker è un framework di gestione distribuito che automatizza e centralizza la creazione, la manutenzione e il monitoraggio delle configurazioni di Oracle Data Guard. La sezione seguente illustra come configurare Data Guard Broker per gestire l'ambiente Data Guard.

  1. Avviare Data Guard Broker sia sul database primario che su quello di standby con il seguente comando tramite sqlplus.

    alter system set dg_broker_start=true scope=both;
  2. Dal database primario, connettersi a Data Guard Borker come SYSDBA.

    [oracle@orap ~]$ dgmgrl sys@NTAP_NY
    DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Dec 11 20:53:20 2024
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
    
    Welcome to DGMGRL, type "help" for information.
    Password:
    Connected to "NTAP_NY"
    Connected as SYSDBA.
    DGMGRL>
  3. Crea e abilita la configurazione di Data Guard Broker.

    DGMGRL> create configuration dg_config as primary database is NTAP_NY connect identifier is NTAP_NY;
    Configuration "dg_config" created with primary database "ntap_ny"
    DGMGRL> add database NTAP_LA as connect identifier is NTAP_LA;
    Database "ntap_la" added
    DGMGRL> enable configuration;
    Enabled.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxPerformance
      Members:
      ntap_ny - Primary database
        ntap_la - Physical standby database
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 3 seconds ago)
  4. Convalidare lo stato del database all'interno del framework di gestione Data Guard Broker.

    DGMGRL> show database ntap_ny;
    
    Database - ntap_ny
    
      Role:               PRIMARY
      Intended State:     TRANSPORT-ON
      Instance(s):
        NTAP
    
    Database Status:
    SUCCESS
    
    
    DGMGRL> show database ntap_la;
    
    Database - ntap_la
    
      Role:               PHYSICAL STANDBY
      Intended State:     APPLY-ON
      Transport Lag:      0 seconds (computed 0 seconds ago)
      Apply Lag:          0 seconds (computed 0 seconds ago)
      Average Apply Rate: 3.00 KByte/s
      Real Time Query:    OFF
      Instance(s):
        NTAP
    
    Database Status:
    SUCCESS
    
    DGMGRL>

In caso di errore, Data Guard Broker può essere utilizzato per eseguire il failover immediato del database primario su quello di standby. Se Fast-Start Failover è abilitato, Data Guard Broker può eseguire il failover del database primario sullo standby quando viene rilevato un errore senza l'intervento dell'utente.

Configurare FSFO con un osservatore

Details

Facoltativamente, è possibile abilitare Fast Start Fail Over (FSFO) per consentire a Data Guard Broker di eseguire automaticamente il failover del database primario sul database di standby in caso di errore. Di seguito sono riportate le procedure per configurare FSFO con un'istanza di osservatore.

  1. Crea un'istanza leggera di Google Compute Engine per eseguire Observer in una zona diversa rispetto al server DB primario o di standby. Nel caso di prova, abbiamo utilizzato un'istanza N1 con 2 vCPU e 7,5 G di memoria. Avere la stessa versione di Oracle installata sull'host.

  2. Accedi come utente Oracle e imposta l'ambiente Oracle nel file .bash_profile dell'utente Oracle.

    vi ~/.bash_profile
    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/NTAP
    export PATH=$ORACLE_HOME/bin:$PATH
  3. Aggiungere voci del nome TNS del DB primario e di standby al file tnsname.ora.

    vi $ORACLE_HOME/network/admin/tsnames.ora
    NTAP_NY =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = orap.us-east4-a.c.cvs-pm-host-1p.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = NTAP_NY.cvs-pm-host-1p.internal)
          (UR=A)
        )
      )
    
    NTAP_LA =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oras.us-west4-a.c.cvs-pm-host-1p.internal)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = NTAP_LA.cvs-pm-host-1p.internal)
          (UR=A)
        )
      )
  4. Crea e inizializza il portafoglio con una password.

    mkdir -p /u01/app/oracle/admin/NTAP/wallet
    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -create
    [oracle@orao NTAP]$ mkdir -p /u01/app/oracle/admin/NTAP/wallet
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -create
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Enter password:
    Enter password again:
    [oracle@orao NTAP]$
  5. Abilita l'autenticazione senza password per i sistemi utente del database primario e di standby. Inserisci prima la password di sistema, quindi la password del portafoglio dal passaggio precedente.

    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_NY sys

    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_LA sys

    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_NY sys
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Your secret/Password is missing in the command line
    Enter your secret/Password:
    Re-enter your secret/Password:
    Enter wallet password:
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -createCredential NTAP_LA sys
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Your secret/Password is missing in the command line
    Enter your secret/Password:
    Re-enter your secret/Password:
    Enter wallet password:
    [oracle@orao NTAP]$
  6. Aggiorna sqlnet.ora con la posizione del wallet.

    vi $ORACLE_HOME/network/admin/sqlnet.ora
    WALLET_LOCATION =
       (SOURCE =
          (METHOD = FILE)
          (METHOD_DATA = (DIRECTORY = /u01/app/oracle/admin/NTAP/wallet))
    )
    SQLNET.WALLET_OVERRIDE = TRUE
  7. Convalida le credenziali.

    mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -listCredential
    sqlplus /@NTAP_LA as sysdba
    sqlplus /@NTAP_NY as sysdba
    [oracle@orao NTAP]$ mkstore -wrl /u01/app/oracle/admin/NTAP/wallet -listCredential
    Oracle Secret Store Tool Release 19.0.0.0.0 - Production
    Version 19.4.0.0.0
    Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
    
    Enter wallet password:
    List credential (index: connect_string username)
    2: NTAP_LA sys
    1: NTAP_NY sys
  8. Configurare e abilitare il failover Fast-Start.

    mkdir /u01/app/oracle/admin/NTAP/fsfo
    dgmgrl
    Welcome to DGMGRL, type "help" for information.
    DGMGRL> connect /@NTAP_NY
    Connected to "ntap_ny"
    Connected as SYSDBA.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        ntap_la - Physical standby database
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 58 seconds ago)
    
    DGMGRL> enable fast_start failover;
    Enabled in Zero Data Loss Mode.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        Warning: ORA-16819: fast-start failover observer not started
    
        ntap_la - (*) Physical standby database
    
    Fast-Start Failover: Enabled in Zero Data Loss Mode
    
    Configuration Status:
    WARNING   (status updated 43 seconds ago)
  9. Avvia e convalida l'osservatore.

    nohup dgmgrl /@NTAP_NY "start observer file='/u01/app/oracle/admin/NTAP/fsfo/fsfo.dat'" >> /u01/app/oracle/admin/NTAP/fsfo/dgmgrl.log &
    [oracle@orao NTAP]$ nohup dgmgrl /@NTAP_NY "start observer file='/u01/app/oracle/admin/NTAP/fsfo/fsfo.dat'" >> /u01/app/oracle/admin/NTAP/fsfo/dgmgrl.log &
    [1] 94957
    
    [oracle@orao fsfo]$ dgmgrl
    DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Apr 16 21:12:09 2025
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
    
    Welcome to DGMGRL, type "help" for information.
    DGMGRL> connect /@NTAP_NY
    Connected to "ntap_ny"
    Connected as SYSDBA.
    DGMGRL> show configuration verbose;
    
    Configuration - dg_config
    
      Protection Mode: MaxAvailability
      Members:
      ntap_ny - Primary database
        ntap_la - (*) Physical standby database
    
      (*) Fast-Start Failover target
    
      Properties:
        FastStartFailoverThreshold      = '30'
        OperationTimeout                = '30'
        TraceLevel                      = 'USER'
        FastStartFailoverLagLimit       = '30'
        CommunicationTimeout            = '180'
        ObserverReconnect               = '0'
        FastStartFailoverAutoReinstate  = 'TRUE'
        FastStartFailoverPmyShutdown    = 'TRUE'
        BystandersFollowRoleChange      = 'ALL'
        ObserverOverride                = 'FALSE'
        ExternalDestination1            = ''
        ExternalDestination2            = ''
        PrimaryLostWriteAction          = 'CONTINUE'
        ConfigurationWideServiceName    = 'ntap_CFG'
    
    Fast-Start Failover: Enabled in Zero Data Loss Mode
      Lag Limit:          30 seconds (not in use)
      Threshold:          30 seconds
      Active Target:      ntap_la
      Potential Targets:  "ntap_la"
        ntap_la    valid
      Observer:           orao
      Shutdown Primary:   TRUE
      Auto-reinstate:     TRUE
      Observer Reconnect: (none)
      Observer Override:  FALSE
    
    Configuration Status:
    SUCCESS
    
    DGMGRL>
Nota Per ottenere una perdita di dati pari a zero, la modalità di protezione di Oracle Data Guard deve essere impostata su MaxAvailability O MaxProtection modalità. La modalità di protezione predefinita di MaxPerformance può essere modificato dall'interfaccia di Data Guard Broker modificando la configurazione di Data Guard e cambiando LogXptMode da ASYNC a SYNC. La modalità di destinazione del log di archivio Oracle deve essere modificata di conseguenza. Quando l'applicazione di registro in tempo reale è abilitata per Data Guard come richiesto per MaxAvailability , evitare di riavviare automaticamente il database perché il riavvio automatico del database potrebbe aprire inavvertitamente il database di standby in READ ONLY WITH APPLY modalità, che richiede una licenza Active Data Guard. Invece, avviare il database manualmente per assicurarsi che rimanga in un MOUNT stato con recupero gestito in tempo reale.

Clona il database di standby per altri casi d'uso tramite automazione

Details

Il seguente toolkit di automazione è specificamente progettato per creare o aggiornare cloni di un database standby Oracle Data Guard distribuito su GCNV con configurazione NFS/ASM per una gestione completa del ciclo di vita del clone.

https://bitbucket.ngage.netapp.com/projects/NS-BB/repos/na_oracle_clone_gcnv/browse
Nota Al momento, l'accesso al toolkit è consentito solo agli utenti interni NetApp con accesso Bitbucket. Gli utenti esterni interessati possono richiedere l'accesso al proprio account team o contattare il team NetApp Solutions Engineering. Fare riferimento a"Ciclo di vita automatizzato di Oracle Clone su GCNV con ASM" per le istruzioni d'uso.

Dove trovare ulteriori informazioni

Per saperne di più sulle informazioni descritte nel presente documento, consultare i seguenti documenti e/o siti web: