Համակարգային սպասարկում
ՀԾ-Բանկ և ՀԾ-Հաշվապահություն համակարգերի համար պահեստային սերվերի կազմակերպումը
KBA-1023-GTDB62
Խնդրի նկարագրություն

ՀԾ-Բանկ և ՀԾ-Հաշվապահություն համակարգերի համար անհրաժեշտ է ունենալ պահեստային սերվեր, որը կնպաստի կազմակերպության անխափան աշխատանքին այն դեպքերում, երբ տեղի է ունեցել համակարգի սերվերային մասի ծրագրային կամ ֆիզիկական խափանումներ:

Հայկական Ծրագրեր ընկերությունը առաջարկում է համակարգի պահեստային սերվեր կազմակերպել MS SQL Server-ի հնարավորություններով մասնավորապես Mirroring-ի մեխանիզմով:

Տվյալ հոդվածում նկարագրված է, թե ինչպես է կազմակերպվում համակարգի պահեստային սերվերը MS SQL Server-ի Mirroring-ով

Նշված մեխանիզմում պահեստային սերվերի վրա ունենում ենք մեր աշխատանքային տվյալների պահոցի կրկնօրինակը և ցանկացած փոփոխություն, որ կատարվում է հիմնական աշխատանքային բազայի վրա կիրառվում է նաև պահեստային սերվերի բազայի վրա, և ցանկացած խափանումների դեպքում ընդամենը անհրաժեշտ է պահեստային սերվերը բերել աշխատանքային վիճակի:

Խնդրի լուծման քայլեր

Որոշ տերմիններ

  1. Principal Server – հիմնական սերվերն է, որի վրա գտնվում է ընթացիկ աշխատող տվյալների բազան:
  2. Mirror Server – պահեստային սերվերն է: Նրա վրա գտնվում է տվյալների բազա, որը սինխրոնիզացվում է ընթացիկ աշխատող տվյալների բազայի հետ Mirroring մեխանիզմով: Principal Server-ը խափանման ժամանակ փոխարինվելու է Mirror Server-ով:
  3. Principal Database – Principal Server-ի վրա գտնվող ընթացիկ աշխատող տվյալների բազան է:
  4. Mirror Database – Principal Database-ի հետ սինխրոնիզացվող տվյալների բազա, որը NonOperational վիճակում գտնվում է Mirror Server-ի վրա: Սրանով փոխարինվում է Principal Database-ը Principal Server-ի խափանման ժամանակ:

Նշում: Mirror Database-ը պետք է ունենա նույն անվանումը ինչ Principal Database-ը:

 

Նախնական պահանջներ

Սերվեր համակարգիչների վրա պետք է տեղադրված լինեն ստորև նշված MS SQL-ներից որևէ մեկը.

  • Microsoft SQL Server 2012 Standard Edition
  • Microsoft SQL Server 2012 Enterprise Edition 
  • Microsoft SQL Server 2012 Developer Edition
  •          Principal Server-ի և Mirror Server-ի վրա “SQL Server (Instance_name)” և “SQL Server Agent (Instance_name)” սերվիսները պետք է աշխատացնել նույն օգտագործողի անվան տակից.
  • Եթե սերվերները գտնվում են domain միջավայրում, ապա Active Directory-ում անհրաժեշտ է ստեղծել մի օգտագործող, որը կունենա ադմինիստրատորի իրավասություններ 2 սերվերների վրա էլ:
  • Եթե սերվերները գտնվում են workgroup միջավայրում, ապա յուրաքանչյուր սերվերի վրա անհրաժեշտ է ստեղծել օգտագործող նույն անունով և նշանաբանով, որոնցից յուրաքանչյուրը կունենա ադմինիստրատորի իրավասություններ այն սերվերի վրա, որի վրա ստեղծված է:

 Mirroring-ում մասնակցող տվյալների բազայի “Recovery model”-ը պետք է լինի “Full”: Դրա համար անհրաժեշտ է “SQL Server Management Studio” միջավայրից այդ տվյալների բազայի “Properties”-ի “Options” մասից “Recovery model”-ը դնել “Full” (նկ. 1):

Նկար 1.

Mirroring-ի  կոնֆիգուրացիան

1.       Ստեղծեք Principal Database-ի “Full” պահեստային պատճեն և տեղափոխեք այն Mirror Server-ի վրա: Պահեստային պատճեի ֆայլի ընդլայնումը պետք է լինի “bak”:

2.       Այնուհետև ստեղծեք Principal Database-ի “Transaction Log” պահեստային պատճեն և նույպես տեղափոխեք Mirror Server-ի վրա: Պահեստային պատճեի ֆայլի ընդլայնումը պետք է լինի “trn” (նկ. 2):

Նկար 2.

3.       Mirror Server-ի վրա ստեղծեք նոր տվյալների բազա Principal Database-ի անվանումով: Դա կլինի Mirror Database-ը: 

4.       Mirror Database-ի վրա վերականգնեք 1. կետով ստեղծված պահեստային պատճեն: “Restore Database” պատուհանի “Options” մասում դրեք “Overwrite the existing database” և “RESTORE WITH NORECOVERY” նշիչները (նկ. 3):

Նկար 3.

5.       Mirror Database-ի վրա վերականգնեք 2. կետով ստեղծված Transaction Log պահեստային պատճեն: “Restore Database” պատուհանի “Options” մասում դրեք “RESTORE WITH NORECOVERY” նշիչը (նկ. 4 և 5):

Նկար 4.

Նկար 5.

6.       Principal Server-ի վրա մուտք գործեք “SQL Server Management Studio”, Principal Database-ի անվան վրա սեղմեք մկնիկի աջ ստեղնը և նշեք “Tasks\Mirror…” (նկ. 6):

Նկար 6. 

7.        “Database Properties\Mirroring” պատուհանում սեղմեք “Configure Security…” կոճակը (նկ. 7):

Նկար 7.

8.       “Include Witness Server” պատուհանում, որպես հարցի պատասխան նշեք “No” կետը և սեղմեք “Next” կոճակը (նկ. 8):

Նկար 8.

9.       “Choose Servers to Configure” պատուհանում “Principal server instance” և “Mirror server instance” նշիչները պետք է նշված լինեն (նկ. 9): Սեղմեք “Next” կոճակը:

Նկար 9.

10.    Հաջորդ պատուհանը Principal server-ի կոնֆիգուրացիայի պատուհանն է: Այստեղ պետք է նշված լինի “Principal server instance” անվանումը, Mirroring-ի աշխատանքի համար նախատեսված պորտի համարը: Հանեք “Encrypt data set through this endpoint” նշիչը և որպես “Endpoint name:” լրացրեք “principal” (նկ. 10): Սեղմեք “Next” կոճակը:

Նկար 10. 

11.    Հաջորդ պատուհանը Mirror server-ի կոնֆիգուրացիայի պատուհանն է: Այստեղ պետք է նշված լինի “Mirror server instance” անվանումը, Mirroring-ի աշխատանքի համար նախատեսված պորտի համարը: Սեղմեք “Connect…” կոճակը և միացեք Mirror server–ին (միանալու ժամանակ նշեք “SQL Server Authentication” և տեղադրեք “Remember password” նշիչը): Հանեք “Encrypt data set through this endpoint” նշիչը և որպես “Endpoint name:” լրացրեք “mirror” (նկ. 11): Սեղմեք “Finish” կոճակը:

Նկար 11.

12.    Հաջորդ պատուհանը առաջարկում է սկսել Mirroring-ի աշխատանքը: Առայժմ սեղմում ենք “Do Not Start Mirroring” կոճակը (նկ. 12):

Նկար 12.  

13.    Կբացվի “Database Properties\Mirroring” պատուհանը, որտեղ լրացված են Principal server-ի և Mirror server-ի վերաբերյալ տվյալներ: Այստեղ պետք է նշել նախընտրելի “Operating mode”-ը: Նշում ենք “High performance (asynchronous)” այնուհետև սեղմում ենք “Start Mirroring” կոճակը (նկ. 13):

Նկար 13. 

14.    Աշխատանքը հաջող սկսելուց հետո “Stataus:” մասում գրվում է Mirroring-ում տվյալների բազաների մասնակցության ընթացիկ վիճակը (նկ. 14): “Refresh” կոճակը թարմացնում է “Status:” մասում գրված հաղորդագրությունը: Սեղմեք “OK” կոճակը:

Նկար 14.

15.    Principal database-ի և Mirror database-ի տեսքը “SQL Server Management Studio”-ում Mirroring-ը միացնելուց հետո բերված է նկար 15-ում:

Նկար 15.

   

“Database Properties\Mirroring” պատուհան

                Հակիրճ նկարագրենք “Database Properties\Mirroring” պատուհանում առկա կոճակների ֆունկցիաները:

 Pause – Mirroring մեխանիզմը բերում է սպասողական վիճակի: Աշխատանքը վերսկսվում է “Resume” կոճակով:

Remove Mirroring կամ Stop Mirroring – Դադարեցնում է Mirroring-ը: Principal database-ը մնում է աշխատանքային վիճակի, իսկ Mirror database-ը անցնում է “NonOperational” վիճակի:

Failover – Փոխում է Principal database-ի և Mirror database-ի դերերը: Mirror database-ը գալիս է աշխատանքային վիճակի, իսկ Principal database-ը անցնում է “NonOperational” վիճակի: Mirroring-ը շարունակում է աշխատել:

                Ուշադրություն` Failover կազմակերպելուց առաջ անհրաժեշտ է “Operating mode”-ը անց կացնել “synchronous”-ի: Failover-ից հետո պետք է “Operating mode”-ը նորից դնել “asynchronous”:

 

Log-ը փոքրացնող Maintenance Plan-ի ստեղծումը

Mirroring աշխատացնելու համար անհրաժեշտ է, որ Principal database–ի “Recovery model”–ը լինի “Full”: Այս դեպքում MS SQL համակարգը տվյալների բազայի Log-ը կտրելու խնդիրը թողնում է օգտագործողի վրա: Դրա համար էլ անհրաժեշտ է ստեղծել Maintenance Plan (MP), որը կկատարի Log-ի պատճենում և կկիրառի Shrink գործողությունը Principal database-ի վրա:

1.        “SQL Server Management Studio” միջավայրի ձախ կողմում գտնվող ծառի վրա բացեք “Server_Name\Management\Maintenace Plans” ճյուղը, սեղմեք մկնիկի աջ ստեղնը և ընտրեք “Maintenance Plan Wizard” (նկ. 1):

Նկար 1.

2.       “Select Plan Properties” պատուհանի “Name” դաշտում լրացրեք անվանում MP-ի համար, այնուհետև սեղմեք “Change…” կոճակը և նշեք հաճախականություն MP-ի աշխատանքի համար: Որպես հաճախականություն ցանկալի է նշել օրական 1 անգամ ընտրելով համեմատաբար ոչ ծանրաբեռնված ժամ, օրինակ` daily at 1:00AM (նկ. 2): Սեղմեք “Next” կոճակը:

Նկար 2. 

3.       “Select Maintenance Tasks” պատուհանում նշեք “Shrink Database”, “Back Up Database (Transaction Log)” և “Maintenance Cleanup Task” նշիչները այնուհետև սեղմեք “Next” կոճակը (նկ. 3):

Նկար 3.

4.       “Select Maintenace Task Order” պատուհանում MP-ի քայլերը “Move Up…” և “Move Down…” կոճակների օգնությամբ դասավորեք հետևյալ կարգով`“Maintenance Cleanup Task”, “Back Up Database (Transaction Log)” այնուհետև  “Shrink Database”: Սեղմեք “Next” կոճակը (նկ. 4):

Նկար 4.

5.       Ստեղծեք մի թղթապանակ համակարգչի կոշտ սկավառակի վրա կամայական մի տեղ: “Define Maintenance Cleanup Task” պատուհանի “Folder” մասում նշեք այդ թղթապանակը, “File extension:” մասում լրացրեք “trn”, իսկ “Delete files older than the following:” մասում նշեք “20 Hour(s)”: Սեղմեք “Next” կոճակը (նկ. 5):

Նկար 5. 

6.       “Define Back Up Database (Transaction Log) Task” պատուհանի “Database(s):” մասում նշեք Principal database-ը, “Folder” մասում նշեք նախորդ քայլում ստեղծված թղթապանակը, իսկ “Backup file extension:” մասում լրացրեք “trn”: Սեղմեք “Next” կոճակը (նկ. 6):

Նկար 6. 

7.       “Define Shrink Database Task” պատուհանի “Database(s):” մասում նշեք Principal database-ը և սեղմեք “Next” կոճակը (նկ. 7):

Նկար 7.

8.       “Select Report Options” պատուհանում հանեք “Write a report to a text file” նշիչը և սեղմեք “Next” կոճակը (նկ. 8):

Նկար 8.

9.       “Complete the Wizard” պատուհանում սեղմեք “Finish”:

Principal server-ի խափանում

1.       “SQL Server Management Studio” միջավայրի մենյուից ընտրեք “File\New\Query with Current Connection” կամ ստեղնաշարի վրա սեղմեք “Ctrl + N” (նկ. 1): Բացված պատուհանում կատարեք հետևյալ հարցումը`

ALTER DATABASE <mirror_database> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

որտեղ mirror_database փոփոխականը Mirror database-ի անվանումն է: Մի քանի րոպեից Mirror database-ը կգա աշխատանքային վիճակի:

Նկար 1.

2.       Բոլոր համակարգիչների վրա Config.as ֆայլում Principal server-ի անվան փոխարեն լրացրեք Mirror server-ի անվանումը:

3.       Syscon.exe ծրագրով կատարել ծրագրի տարբերակի թարմացում, օգտագործողների համաձայնեցում և համակարգային նշանաբանի փոփոխում:

                 Ուշադրություն`խորհուրդ չի տրվում փոփոխել Mirror server-ի անվանումը Principal server-ի անունով 2 կետից խուսափելու համար:

 

Լրացուցիչ մեկնաբանություն

© 2025 Հայկական Ծրագրեր