Тази статия е част 1 от поредица от две части, която описва стъпките за настройка на физическа готовност на Active Data Guard в архитектурата с един възел на RAC.
Въведение
Oracle Data Guard е един от основните компоненти на Oracle Database High Availability (HA), интегриран набор от решения, който помага на организациите да сведат до минимум неактивността, независимо дали е планирана или не, за гарантират, че техният бизнес протича. Active Data Guard е лицензирана опция за Oracle Database Enterprise Edition, която разширява основната функционалност на Data Guard [1], като позволява разширени ресурси, като:консултации, отчети, актуализации на база данни в готовност, които не засягат основната база данни, автоматично възстановяване на повредени блокове от данни, инкрементални архиви, между другото.
Oracle RAC One Node използва споделена дискова архитектура, за да предостави решение с висока наличност на база данни, подобно на Oracle Real Application Clusters (RAC). За разлика от Oracle RAC, който изпълнява няколко екземпляра едновременно, Oracle RAC One Node предоставя решение за отказ само в един екземпляр, плюс това може да направи инфраструктурата в клъстер по-лесна, като лесно се актуализира до настройките на Oracle Real Application Clusters с няколко екземпляра.
Околна среда
- Основната база данни използва Oracle RAC с 2 възела
- Използваният режим на защита ще бъде „Максимална производителност“, като се използва режим „асинхронен повторен транспорт“
- Функцията „Fast Start Failover“ няма да се използва.
- Настройки на Data Guard Broker
1. Задайте db_unique_name на Primary Database:
sqlplus> промяна на системния набор db_unique_name='analytics' scope=spfile sid='*';
2. Копирайте „файл с парола на Oracle“ в режим на готовност на сървъра:
scp orapwanalytics oracle@hostdr:/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs
3. В банкови екземпляри на възли 1 и 2 на основния сървър добавете записи в listener.ora:
Възел 1:
(SID_DESC =(GLOBAL_DBNAME =analytics1_dgmgrl)(SID_NAME =analytics1)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))
Възел 2:
(SID_DESC =(GLOBAL_DBNAME =analytics2_dgmgrl)(SID_NAME =analytics2)(ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))
4. В сървъра в режим на готовност добавете запис в 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))
След тези настройки е необходимо да се изпълни командата „презареждане на слушателя“, за да се принуди слушателят да прочете отново записите на listener.ora. Внимание! Тази операция ще повлияе на наличността на слушателя.
5. Добавете записи във файла tnsnames.ora в основната и резервната база данни;
5.1. Коментирайте стария запис
#analytics =# (ОПИСАНИЕ =# (АДРЕС =(PROTOCOL =TCP)(HOST =hostdr-pscan1)(PORT =1521))# (CONNECT_DATA =# (SERVER =ОБЕДИНЕНО)# (SERVICE_NAME =analytics)# ) )
5.2. Добавяне на нови записи:
analytics =(ОПИСАНИЕ =(АДРЕС =(PROTOCOL =TCP)(HOST =hostdr-pscan1)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics)(UR=A)))analytics1 =(ОПИСАНИЕ =(АДРЕС =(PROTOCOL =TCP)(HOST =hostdr01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =ОБЕДИНЕНО)(SERVICE_NAME =analytics)(SID =analytics1)(UR=A))) analytics2 =(ОПИСАНИЕ =(АДРЕС =(PROTOCOL =TCP)(HOST =hostdr02vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =ОБЕДИНЕНО)(SERVICE_NAME =analytics)(SID =analytics2)(UR=A)) )analytics1_DGMGRL =(ОПИСАНИЕ =(АДРЕС =(PROTOCOL =TCP)(HOST =hostdr01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_DGMGRL)) ОПИСАНИЕ =(АДРЕС =(PROTOCOL =TCP)(HOST =hostdr02vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_DGMGRL)(UR=A)))
5.3. Вписвания на DG:
analytics_DG =(ОПИСАНИЕ =(АДРЕС =(PROTOCOL =TCP)(HOST =host01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME =analytics_dg) (URL =A)))G_DMG =(ОПИСАНИЕ =(АДРЕС =(PROTOCOL =TCP)(HOST =host01vmp01-vip)(PORT =1521))(CONNECT_DATA =(SERVER =ОБЕДИНЕНО)(SERVICE_NAME =analytics_dg_dgmgrl)(UR=A)))
6. Тествайте новите записи във файла tnsnames.ora
tnsping analyticsstnsping analytics1tnsping analytics2tnsping analytics_DGtnsping analytics1_DGMGRLtnsping analytics2_DGMGRLtnsping analytics_DG_DGMGRL
7. Активирайте „Принудително регистриране“ и „Режим на архивиране“ в Основна база данни. Забележка:Инстанцията вече е конфигурирана в режим на архивиране.
sqlplus> alter база данни принудително регистриране;sqlplus> изберете force_logging, log_mode от v$database;FORCE_LOGGING LOG_MODE-------------------------- ------------ ------------ДА АРХИВЛОГ
8. Проверете настройките на RedoLogs в Основна база данни. Използваният скрипт logfiles.sql е достъпен на oracle-base.com.
9. Добавете регистрационни файлове в режим на готовност.
За да определите препоръчителния брой дневници за повторно изпълнение в режим на готовност, използвайте следната формула [2]:
(максимален брой групи регистрационни файлове +1) * максимален брой нишки
Основната ми база данни има две нишки и всяка от тях има четири онлайн групи за повторно изпълнение, следователно трябва да имаме десет резервни регистрационни файлове за повторно изпълнение.
(максимален брой групи регистрационни файлове +1) * максимален брой нишки =((4 + 1) * 2 =10)
sqlplus> променяне на база данни добавяне на резервен лог файл нишка 1 група 41 ('+DG_RECO_DR') размер 1024M;sqlplus> промяна на базата данни добавяне на резервен лог файл нишка 2 група 42 ('+DG_RECO_DR') размер 1024M;sqlplus' резервна база данни добавяне на дневник нишка 1 група 43 ('+DG_RECO_DR') размер 1024M;sqlplus> промяна на база данни добавяне на резервен лог файл нишка 2 група 44 ('+DG_RECO_DR') размер 1024M;sqlplus> промяна на база данни добавяне на резервен лог файл нишка 1 група 45 ('+DG_) размер 1024M;sqlplus> промяна на база данни добавяне на резервен лог файл нишка 2 група 46 ('+DG_RECO_DR') размер 1024M;sqlplus> промяна на база данни добавяне на резервен лог файл нишка 1 група 47 ('+DG_RECO_DR') размер 1024M; sqlplus размер на резервния дневник> altere database addby нишка 2 група 48 ('+DG_RECO_DR') размер 1024M;sqlplus> промяна на база данни добавяне на резервен лог файл нишка 2 група 49 ('+DG_RECO_DR') размер 1024M;sqlplus> промяна на база данни добавяне на резервен лог файл нишка 2 група 50 ('+DG_RECO размер 1024M;
10. В Основна база данни създайте pfile, който ще бъде базата на файловете с параметри на резервната база данни.
create pfile='/tmp/initanalytics_dg_aux.ora' от spfile;
11. В базата данни в режим на готовност създайте файла pfile с информацията за отдалечения сървър. Най-лесният начин да създадете този файл е да копирате файла с параметри на основната база данни (елемент 10) в резервна база данни и да го редактирате.
$ 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_ '*.audit_trail='db'#.cluster_database=true*.cluster_database=false*.compatible='12.1.0.2.0'#*.control_files='+DG_DATA_DR/analytics/controlfile/current.1257'REC_DG65 /analytics/controlfile/current.527.954609365'*.control_files='+DG_DATA/analytics_dg/controfile/current1.ctl','+DG_RECO/analytics_dg/controlfile/current2.ctl'*.dbcrew=block#e_2_deb=b_block# DG_DATA_DR'*.db_create_file_dest='+DG_DATA'#*.db_create_online_log_dest_1='+DG_DATA_DR'*.db_create_online_log_dest_1='+DG_DATA'#*.db_create_online_log_dest_2='+DG_RECO_DR'*.db_create_online_log_dest_2='+DG_RECO'*.db_domain='' *.db_name='analytics'*.db_files=2000#*.db_recovery_file_dest='+DG_RECO_DR'*.db_recovery_file_dest='+DG_RECO'*.db_recovery_file_dest_name=100G_recovery_file_dest_name=100G_u_nique_name. /предварително>12. Създайте йерархии на директории.
12.1. Създайте директория за “audit dump”, в която ще бъдат създадени файловете и одитът на базата данни.
mkdir -p /u01/app/oracle/admin/analytics_dg/adump12.2. В ASM създайте директории за контролен файл и файлове с параметри:
mkdir +DG_DATA/analytics_DG/mkdir +DG_DATA/analytics_DG/PARAMETERFILEmkdir +DG_DATA/analytics_DG/CONTROLFILEmkdir +DG_DATA/analytics_DG/BROKERCFGanalytics_DG/PARAMETERFILEmkdir +DG_DATA/analytics_DG/CONTROLFILEmkdir +DG_DATA/analytics_DG/BROKERCFGanalytics_DG/PARAMETERFILEmkdir +DG_DATA/analytics_DG/CONTROLFILEmkdir +DG_DATA/analytics_DG/BROKERCFGanalytics_DG/PARAMETERFILEmkdir +DG_DATA/analytics_DG/BROKERCFGanalytics_DG/PARAMETERFILEmkdir +DG_DATA/analytics_DG/BROKERCFGanalytics_DG/PARAMETERFILE/mkdir13. Създайте spfile и pfile в Standby Database
$ export ORACLE_SID=analytics_dg$ sqlplus / като sysdba13.1. Стартирайте база данни в готовност с pfile initanalytics_dg_aux.ora и преобразувайте файла с параметри (pfile) в spfile.
sqlplus> startup nomount pfile='/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs/initanalytics_dg_aux.ora';sqlplus> create spfile='+DG_DATA/analytics_DG/PARAMETERGANAFILE' от pfile='/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs/initanalytics_dg_aux.ora';13.2. Създайте pfile и в този файл поставете следния запис:
echo "spfile='+DG_DATA/analytics_DG/PARAMETERFILE/spfileanalytics_dg.ora'">> initanalytics_dg.ora13.3. Стартиране на екземпляра със spfile за възстановяване на базата данни отзад.
$ export ORACLE_SID=analytics_dg$ sqlplus sys като sysdbasqlplus> незабавно изключване;sqlplus> startup nomount;14. Изпълнете възстановяване с дубликат на базата данни;
свържете целевия sys/xxxxxx@analytics1;свържете спомагателния sys/xxxxxx@analytics_dg_dgmgrl;RUN {Разпределете канал pr1 тип устройство диск;Разпределете канал pr2 тип устройство диск; задайте спомагателен канал stby1 тип диск; разпределете DUPLICATE тип помощен диск; ЦЕЛЕВА БАЗА ДАННИ ЗА РЕЖИМ НА РЕЖИМ ОТ АКТИВНА БАЗА ДАННИ; ИЗПУСКАНЕ НА КАНАЛ pr1; ОТПУСКАНЕ НА КАНАЛ pr2; ОТПУСКАНЕ НА КАНАЛ stby1; ОТПУСКАНЕ НА КАНАЛ stby2;}
Следващата публикация ще продължим тази сага!
Препратки
[1] Най-добри практики за Oracle Active Data Guard. Наличен на:https://www.oracle.com/database/technologies/active-data-guard-12c-best-practice.html [2] Най-добри практики за висока достъпност на базата данни на Oracle 11g, издание 2 (11.2). Наличен на:https://docs.oracle.com/cd/E24693_01/server.11203/e10803/config_dg.htm [3] Брокер за защита на данните. Наличен на:https://docs.oracle.com/cd/E11882_01/server.112/e40771/dbpropref.htm#DGBKR3781