გახსენით მოთხოვნის სესია პირველადზე და ნახეთ, რას ელის მარტივი ჩაწერა. თუ მონაცემთა ბაზა სინქრონული დადასტურების ხელმისაწვდომობის ჯგუფს ეკუთვნის და მეორადი დაკავშირებულია, ამ ლოდინის ნაწილი შენობას ტოვებს: ჟურნალის ჩანაწერები მიდიან ასლზე, იქ მკვრივდება, და ამ გამკვრივების ამბავი ბრუნდება დადასტურების დასრულებამდე. გამტარობა ამ ორმხრივ გზას არ ამოკლებს. ქვემოთ მოცემული გზამკვლევი ადევნებს დადასტურებას ეკრანიდან დაშორებულ დისკამდე და უკან.

დაიწყეთ პირველადის ლოდინის ტიპიდან

დაშორებულ ასლზე მლოდინე ჩაწერა ჩნდება ჟურნალთან დაკავშირებულ ლოდინად და არა პროცესორის ან ბლოკირების ლოდინად, და ტრანზაქციის ხანგრძლივობა მიჰყვება ორმხრივ გზას და არა სტრიქონების რაოდენობას. ბევრი პატარა დადასტურება ამას აშკარას ხდის, რადგან თითოეული ცალკე იხდის გზას. ერთი მასობრივი ოპერაცია იმავე ღირებულებას ერთ გრძელ დადასტურებაში მალავს.

სანამ ბმულზე რაიმეს დაასკვნით, დაალაგეთ სამუშაო დატვირთვა დადასტურებების სიხშირის მიხედვით.

წაიკითხეთ ასლის მდგომარეობა სანამ ქსელს წაიკითხავთ. მნიშვნელოვანი მრიცხველებია გაგზავნის რიგი, redo რიგი და სინქრონიზაციის მდგომარეობა, და ერთად ისინი აჩვენებენ, ეწევა თუ არა მეორადი ტემპს. მზარდი გაგზავნის რიგი ტრანსპორტზე მიუთითებს, ხოლო მზარდი redo რიგი მეორადის საკუთარ სამუშაოზე ან საცავზე. ეს სხვადასხვა შეკეთებაა და არც ერთი არ უმჯობესდება გამტარობის დამატებით.

თვალი ადევნეთ დადასტურებას მეორადამდე

სინქრონული დადასტურებისას პირველადი ელოდება დადასტურებას, რომ შესაბამისი ჟურნალი მეორადზე გამკვრივებულია, სანამ დადასტურებას დასრულებულად გამოაცხადებს. გამკვრივებული ნიშნავს მდგრადს ჟურნალში, და არა მონაცემთა გვერდებში ხელახლა გაშვებულს. სწორედ ეს განსხვავება ხსნის, რატომ შეიძლება სინქრონული მეორადი ჩამორჩეს redo-ში და მაინც ადასტურებდეს გამკვრივებას.

გაიარეთ გზა თანმიმდევრობით და გაზომეთ თითოეული ეტაპი და არა მთლიანი. ჟურნალის ჩანაწერები გადის ტრანსპორტში, მეორადი წერს და ხსნის მათ, და დადასტურება ბრუნდება იმავე გზით. ტრანსპორტის დაყოვნება, მეორადის დაგეგმვა და მეორადის ჟურნალის დისკის შეყოვნება ყველა ჯამში შედის, და მხოლოდ პირველი ეკუთვნის ქსელის მფლობელს. მეორადი, რომლის ჟურნალის მოცულობა სხვა რამით არის გაჯერებული, შეიძლება ყოველი დადასტურება გაჭიმოს, სანამ ბმული უქმად დგას.

SELECT ag.name AS ag_name, drs.database_id, drs.synchronization_state_desc,
       drs.log_send_queue_size, drs.redo_queue_size
FROM sys.dm_hadr_database_replica_states AS drs
JOIN sys.availability_groups AS ag ON ag.group_id = drs.group_id;

გადაიღეთ ეს სურათი წარმომადგენლობითი ჩაწერის წინ და შემდეგ და არა ერთხელ წყნარ შუადღეს. სწორედ სხვაობა გეუბნებათ, რომელი რიგი გადავიდა, სანამ დადასტურება ელოდა.

გაზომეთ გზა და არა ბმული

გამტარუნარიანობის ტესტი ზომავს ტევადობას ორ წერტილს შორის, რომლებიც თქვენი ასლები არ არიან, ისეთი დატვირთვის ქვეშ, რომელიც თქვენი სამუშაო არ არის. სთხოვეთ ქსელის მფლობელს დაყოვნება და დანაკარგი რეალური ასლის გზაზე, სანამ რეალური ტრაფიკი მიდის, ორივე მიმართულებით. დანაკარგი აქ ტევადობაზე მნიშვნელოვანია, რადგან დაკარგული სეგმენტი ხელახალ გაგზავნას ჯდება და ყოველი დადასტურება ერთ დადასტურებას ელოდება. ბმული, რომელიც ჩამოტვირთვის ტესტში შესანიშნავად გამოიყურება, შეიძლება მაინც უვარგისი იყოს სალაპარაკო დადასტურების ნიმუშისთვის.

გაზომვისას ხელუხლებლად შეინარჩუნეთ მონაცემთა ბაზის ტრანსპორტის უსაფრთხოება და წვდომის კონტროლი. გზის გაზომვა არასოდეს არის მათ გვერდის ავლის მიზეზი.

დააკავშირეთ დროები მრიცხველებთან და არა ინტუიციასთან. თუ გაგზავნის რიგი ცარიელი რჩება და დადასტურება მაინც ელოდება, დაყოვნება დადასტურებაში ან მეორადის ხსნაშია. თუ გაგზავნის რიგი სტაბილურად იზრდება, შეზღუდვა ტრანსპორტი ან ტევადობაა. ჩაწერეთ, რომელმა დაკვირვებამ დაამყარა დასკვნა, რომ შემდეგმა ადამიანმა გაიმეოროს გაზომვა და არა კამათი.

რას ცვლის სინამდვილეში ასინქრონული რეჟიმი

ასინქრონული დადასტურება აშორებს მეორადის გამკვრივების დადასტურების ლოდინს, ამიტომ ჩაწერები ჩქარდება და ამიტომ იცვლება თქვენი გამძლეობის პოზიცია. პირველადი ადასტურებს ტრანზაქციას იმ დაშორებული დადასტურების გარეშე. შემდეგ მეორადს ნებადართულია ჩამორჩეს, და ეს ჩამორჩენა არის გამოვლენა.

თუ პირველადი დაიკარგება სანამ ჟურნალი მიაღწევს გამოსადეგ გადართვის მიზანს, სერვისის იძულებით ამ ასლზე გადატანა ყრის ტრანზაქციებს, რომლებიც აპლიკაციისთვის უკვე დადასტურებულად იყო შეტყობინებული.

ეს აღდგენის წერტილის გადაწყვეტილებაა და ეკუთვნის მონაცემთა ბაზის მფლობელს, და არა წარმადობის მიმოხილვას. ჯერ დააყენეთ დასაშვები მონაცემთა დაკარგვის ფანჯარა, აირჩიეთ რეჟიმი, რომელიც აკმაყოფილებს მას, შემდეგ ოპტიმიზაცია გააკეთეთ ამ საზღვრის შიგნით. სინქრონული დაცვის შემანარჩუნებელი ვარიანტები მოიცავს თავიდან ასაცილებელი დადასტურების ორმხრივი მოგზაურობების მოშორებას იქ, სადაც აპლიკაცია უშვებს, გაზომილი ტრანსპორტის ან საცავის შეფერხების გამოსწორებას, და ასლის გადაადგილებას, რომ დადასტურებამ ნაკლები მანძილი გაიაროს. აწონეთ ისინი იმ გამძლეობის მოთხოვნასთან, რომლითაც დაიწყეთ და რომელიც არ შეცვლილა.

დაკავშირებული სტატიები