sql >> Database >  >> RDS >> Database

Active Data Guard Physical Standby instellen in RAC One Node Architecture - Deel 1

Dit artikel is deel 1 van een tweedelige serie die de stappen beschrijft voor het instellen van Active Data Guard Physical Standby in RAC One Node Architecture.

Inleiding

Oracle Data Guard is een van de belangrijkste componenten van Oracle Database High Availability (HA), een geïntegreerde reeks oplossingen die organisaties helpt om inactiviteit, al dan niet gepland, tot een minimum te beperken. garanderen dat hun zaken stromen. Active Data Guard is een gelicentieerde optie voor Oracle Database Enterprise Edition die de basisfunctionaliteit van Data Guard [1] verbreedt door geavanceerde bronnen toe te staan, zoals:consultaties, rapporten, stand-by database-updates die geen invloed hebben op de primaire database, automatisch herstel van beschadigde datablokken, onder andere incrementele back-ups.

Oracle RAC One Node maakt gebruik van een gedeelde schijfarchitectuur om een ​​oplossing met hoge databasebeschikbaarheid te bieden, vergelijkbaar met Oracle Real Application Clusters (RAC). In tegenstelling tot Oracle RAC, dat meerdere instances tegelijk uitvoert, biedt Oracle RAC One Node een failover-oplossing in slechts één instance. Bovendien kan het de infrastructuur in cluster eenvoudiger maken, omdat het gemakkelijk kan worden bijgewerkt naar een Oracle Real Application Clusters-instellingen met meerdere instances.

Omgeving

  • Primaire database gebruikt Oracle RAC met 2 nodes
  • De gebruikte beschermingsmodus is "Maximum Performance" met de modus "asynchroon opnieuw uitvoeren"
  • De functie "Fast Start Failover" wordt niet gebruikt.
  • Data Guard Broker-instellingen

1. Stel db_unique_name in op primaire database:

sqlplus> systeemset wijzigen db_unique_name='analytics' scope=spfile sid='*';

2. Kopieer "Oracle-wachtwoordbestand" naar server-standby:

scp orapwanalytics oracle@hostdr:/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs

3. In Nodes 1 en 2 bankinstanties van de primaire server, voeg je items toe in listener.ora:

Knooppunt 1:

(SID_DESC =(GLOBAL_DBNAME =analytics1_dgmgrl)(SID_NAME =analytics1)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

Knooppunt 2:

 (SID_DESC =(GLOBAL_DBNAME =analytics2_dgmgrl)(SID_NAME =analytics2)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

4. Voeg in de standby-server een item toe in listener.ora

 (SID_DESC =(GLOBAL_DBNAME =analytics_DG_DGMGRL)(SID_NAME =analytics_dg)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))

Na deze instellingen is het uitvoeren van het commando "listener reload" nodig om de luisteraar te dwingen de listener.ora-items opnieuw te lezen. Aandacht! Deze bewerking heeft invloed op de beschikbaarheid van de luisteraar.

5. Voeg items toe aan het bestand tnsnames.ora in de primaire en standby-database;

5.1. Reageer op oude invoer

 #analytics =# (DESCRIPTION =# (ADDRESS =(PROTOCOL =TCP)(HOST =hostdr-pscan1)(PORT =1521))# (CONNECT_DATA =# (SERVER =DEDICATED)# (SERVICE_NAME =analytics)# ) )

5.2. Nieuwe items toevoegen:

 analytics =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr-pscan1)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(UR=A)))analytics1 =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(SID =analytics1)(UR=A))) analytics2 =(DESCRIPTION =(ADRES =(PROTOCOL =TCP)(HOST =hostdr02vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(SID =analytics2)(UR=A)) )analytics1_DGMGRL =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =hostdr01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_DGMGRL)(UR=A)))analytics2_DGMGRL BESCHRIJVING =(ADRES =(PROTOCOL =TCP)(HOST =hostdr02vmp01-vip)(POORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_DGMGRL)(UR=A)))

5.3. Inzendingen van DG:

analytics_DG =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP)(HOST =host01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_dg) (UR =A)))analytics_DG_DGMGRL =(BESCHRIJVING =(ADRES =(PROTOCOL =TCP)(HOST =host01vmp01-vip)(POORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_dg_dgmgrl)(UR=A)))

6. Test nieuwe invoer in het bestand tnsnames.ora

 tnsping analyticstnsping analytics1tnsping analytics2tnsping analytics_DGtnsping analytics1_DGMGRLtnsping analytics2_DGMGRLtnsping analytics_DG_DGMGRL

7. Schakel "Force logging" en "Archivelog-modus" in de primaire database in. Opmerking:de instantie was al geconfigureerd in de archieflogmodus.

 sqlplus> verander database force logging;sqlplus> selecteer force_logging, log_mode van v$database;FORCE_LOGGING LOG_MODE--------------------------- ------------ ------------JA ARCHIEFLOGBOEK

8. Controleer de RedoLogs-instellingen in de primaire database. Gebruikte script logfiles.sql is beschikbaar op oracle-base.com.

9. Standby-logbestanden toevoegen.

Gebruik de volgende formule [2] om het aanbevolen aantal stand-by redo-logs te bepalen:

(maximaal # logbestandgroepen +1) * maximaal # threads

Mijn primaire database heeft twee threads en elk heeft vier online groepen voor opnieuw uitvoeren, daarom zouden we tien standby-logboeken voor opnieuw uitvoeren moeten hebben.

(maximaal # logbestandgroepen +1) * maximaal # threads =((4 + 1) * 2 =10)

 sqlplus> database wijzigen standby logbestand toevoegen thread 1 groep 41 ('+DG_RECO_DR') grootte 1024M;sqlplus> database wijzigen standby logbestand toevoegen thread 2 groep 42 ('+DG_RECO_DR') grootte 1024M;sqlplus> database wijzigen standby logbestand toevoegen thread 1 groep 43 ('+DG_RECO_DR') grootte 1024M;sqlplus> wijzig database voeg stand-by logbestand toe thread 2 groep 44 ('+DG_RECO_DR') grootte 1024M;sqlplus> wijzig database voeg stand-by logbestand toe thread 1 groep 45 ('+DG_RECO_DR') grootte 1024M;sqlplus> database wijzigen voeg stand-by logbestand toe thread 2 groep 46 ('+DG_RECO_DR') grootte 1024M;sqlplus> verander database voeg stand-by logbestand toe thread 1 groep 47 ('+DG_RECO_DR') grootte 1024M;sqlplus> verander database voeg stand-by logbestand toe thread 2 groep 48 ('+DG_RECO_DR') grootte 1024M;sqlplus> verander database voeg stand-by logbestand toe thread 2 groep 49 ('+DG_RECO_DR') grootte 1024M;sqlplus> verander database voeg stand-by logbestand toe thread 2 groep 50 ('+DG_RECO_DR') maat 1024M;

10. Maak in de primaire database een p-bestand dat de basis zal zijn van de bestanden van de standby-databaseparameters.

 maak pfile='/tmp/initanalytics_dg_aux.ora' van spfile;

11. Maak in de Standby-database het bestand pfile met de gegevens van de externe server. De eenvoudigste manier om dit bestand te maken, is door het parameterbestand van de primaire database (item 10) naar de standby-database te kopiëren en het te bewerken.

$ cd $ORACLE_HOME/dbs$ vi initanalytics_dg_aux.ora#*.audit_file_dest='/u01/app/oracle/admin/analytics/adump'*.audit_file_dest='/u01/app/oracle/admin/analytics_dg/adump '*.audit_trail='db'#.cluster_database=true*.cluster_database=false*.compatible='12.1.0.2.0'#*.control_files='+DG_DATA_DR/analytics/controlfile/current.1257.954609365','+DG_RECO_DR /analytics/controlfile/current.527.954609365'*.control_files='+DG_DATA/analytics_dg/controlfile/current1.ctl','+DG_RECO/analytics_dg/controlfile/current2.ctl'*.db_block_size=8192#*.db_create_file_dest='+file_dest='+ DG_DATA_DR'*.db_create_file_dest='+DG_DATA'#*.db_create_online_log_dest_1='+DG_DATA_DR'*.db_create_online_log_creat_1='+DG_DATA'#*.db_create_online_log_dest_2 *.db_name='analytics'*.db_files=2000#*.db_recovery_file_dest='+DG_RECO_DR'*.db_recovery_file_dest='+DG_RECO'*.db_recovery_file_dest_size=100G#*.db_unique_name=s'analytic_unique_name=/pre> 

12. Maak directoryhiërarchieën.

12.1. Maak een map aan voor “audit dump” waarin de bestanden en database auditing zullen worden aangemaakt.

 mkdir -p /u01/app/oracle/admin/analytics_dg/adump

12.2. Maak in ASM mappen aan voor controlebestanden en parameterbestanden:

 mkdir +DG_DATA/analytics_DG/mkdir +DG_DATA/analytics_DG/PARAMETERFILEmkdir +DG_DATA/analytics_DG/CONTROLFILEmkdir +DG_DATA/analytics_DG/BROKERCFGmkDir/analytics_DG/BROKERCFGmkDir/analytica 

13. Maak spfile en pfile in Standby Database

 $ export ORACLE_SID=analytics_dg$ sqlplus / as sysdba

13.1. Start de standby-database met pfile initanalytics_dg_aux.ora en converteer parameterbestand (pfile) naar spfile.

 sqlplus> opstarten nomount pfile='/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs/initanalytics_dg_aux.ora';sqlplus> create spfile='+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora' van pfile='/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs/initanalytics_dg_aux.ora';

13.2. Maak een pbestand aan en voeg in dit bestand het volgende item in:

 echo "spfile='+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora'">> initanalytics_dg.ora

13.3. Opstarten van instantie met spfile naar posterieure databaseherstel.

$ export ORACLE_SID=analytics_dg$ sqlplus sys als sysdbasqlplus> onmiddellijk afsluiten;sqlplus> opstarten nomount;

14. Voer herstel uit met het duplicaat van de database;

 connect doel sys/xxxxxx@analytics1;connect hulp sys/xxxxxx@analytics_dg_dgmgrl;RUN {Kanaal pr1 apparaattype schijf toewijzen; kanaal pr2 apparaattype schijf toewijzen; hulpkanaal stby1 type schijf toewijzen; hulpkanaal stby2 type schijf toewijzen;DUPLICEREN DOEL DATABASE VOOR STANDBY VAN ACTIEVE DATABASE;RELEASE CHANNEL pr1;RELEASE CHANNEL pr2;RELEASE CHANNEL stby1;RELEASE CHANNEL stby2;}

In de volgende post gaan we verder met deze saga!

Referenties

[1] Beste praktijken van Oracle Active Data Guard. Beschikbaar op:https://www.oracle.com/database/technologies/active-data-guard-12c-best-practice.html

[2] Oracle Database High Availability Best Practices 11g Release 2 (11.2). Beschikbaar op:https://docs.oracle.com/cd/E24693_01/server.11203/e10803/config_dg.htm

[3] Data Guard-makelaar. Beschikbaar op:https://docs.oracle.com/cd/E11882_01/server.112/e40771/dbpropref.htm#DGBKR3781


  1. Waarom geeft SQL-server deze fout:Kan de waarde NULL niet invoegen in kolom 'id'?

  2. 5 goede redenen om Microsoft Access-sjablonen te downloaden en te gebruiken

  3. Hoe te ontsnappen aan het vraagteken (?) -teken met Spring JpaRepository

  4. Een database-e-mailaccount verwijderen uit een profiel in SQL Server (T-SQL)