अपने लेन-देन लॉग का बैकअप लेना इतना महत्वपूर्ण क्यों है?


14

वर्तमान में हम एक क्लाइंट के लिए बैकअप समाधान लागू कर रहे हैं और उनका ERP समाधान SQL सर्वर का उपयोग करता है।

ईआरपी समाधान एक अलग कंपनी द्वारा स्थापित किया गया था। और वे मुझे बता रहे हैं कि लेन-देन लॉग का बैकअप लेना और छोटा करना सुपर महत्वपूर्ण है।

मैं इस लेन-देन लॉग पर थोड़ा पढ़ रहा हूं और मुझे नहीं लगता कि यह इतना महत्वपूर्ण क्यों है जब मैं पहले से ही पूरी मशीन का बैकअप ले रहा हूं (हम आर्कसर्व यूडीपी का उपयोग कर रहे हैं, जो SQL सर्वर के बारे में जानता है और उपयोग करता है VSS)। यह मेरी समझ है कि SQL सर्वर VM पर सफाई कार्य पहले से ही लॉग को छोटा करने का ध्यान रखते हैं, हालाँकि, UDP SQL सर्वर लॉग ट्रंकेशन की अनुमति भी देता है।

यह मेरी समझ है कि लेन-देन लॉग का उपयोग दूषित डेटाबेस को पुनर्स्थापित करने के लिए किया जा सकता है, क्योंकि, ठीक है, यह सभी लेनदेन का एक लॉग है। लेकिन मेरे पास पहले से ही पूरे डेटाबेस का एक घंटे का बैकअप है, इसलिए, मैं क्यों परवाह करूंगा?


Dba.stackexchange.com: - विषय यहाँ बंद उस के लिए एक साइट है
टॉम टॉम


1
हाँ। और अब महसूस करना शुरू करते हैं कि डीबीए सामान्य रूप से डेटाबेस के लिए बैकअप रणनीति बनाते हैं। इसलिए डेटाबेस प्रशासन के लिए विशिष्ट प्रश्न - बैकअप रणनीतियों की तरह - उस क्षेत्र से संबंधित है।
टॉम

1
@TomTom: क्षमा करें, मैं स्टैक एक्सचेंज में बहुत नया हूं। मैं स्पष्ट रूप से गलत समझता हूं कि "एंटरप्राइज स्टोरेज, बैकअप और डिजास्टर रिकवरी" क्या है। मुझे रास्ता दिखाने के लिए धन्यवाद।
डेर होकस्टापलर

यह यहाँ सामान्य मंच है। डेटाबेस एक एसयूसीएच क्षेत्र है जो अभी भी अधिक सामान्य सर्वरफॉल्ट के बाहर अपने स्वयं के उप-स्थान प्राप्त करते हैं।
टॉमटॉम

जवाबों:


11

आपको केवल यह करना है यदि आपका DB रिकवरी मोड "पूर्ण" पर सेट है। यदि यह "सरल" पर सेट है, तो आपको लेन-देन लॉग का बैकअप बनाने की आवश्यकता नहीं है। लेकिन इन दो विकल्पों के बीच अंतर के लिए बाहर देखो!

सबसे पहले: यदि आप किसी विशिष्ट समय तक DB को पुनर्स्थापित करना चाहते हैं, तो आपको "पूर्ण" मोड का उपयोग करना होगा। (मुझे लगता है कि आप समय को इतने सटीक रूप से समायोजित कर सकते हैं कि आप पुनर्स्थापना बिंदु के लिए मिलीसेकंड को भी निर्दिष्ट कर सकते हैं) "सरल" मोड में आप केवल अंतिम पूर्ण बैकअप पर जा सकते हैं

यदि आप अपने लेन-देन लॉग का बैकअप नहीं लेते / काटते हैं, तो यह पूरे समय (पूर्ण मोड में) बढ़ेगा। मैंने उन डेटाबेसों को देखा, जहां .trn फ़ाइल डेटाबेस से खुद से दोगुनी बड़ी थी। यह इस बात पर निर्भर करता है कि डीबी में कितनी बार बदलाव किए गए थे।

एक और बिंदु यह है कि एक लॉग बैकअप सामान्य रूप से पूर्ण बैकअप की तुलना में तेज होता है।

इसलिए मुझे लगता है कि हर घंटे एक पूर्ण बैकअप बनाने के लिए आपकी बैकअप योजना इष्टतम नहीं है। लेकिन यह आपकी स्थिति पर निर्भर करता है:

यदि आप कहते हैं: ठीक है अगर मैं डीबी को अंतिम पूर्ण घंटे तक बहाल कर सकता हूं, तो सब कुछ ठीक है। -> यदि आप हर घंटे पूर्ण बैकअप रखना चाहते हैं, तो आप रिकवरी मोड को "सरल" करने के बारे में भी सोच सकते हैं।

मेरी राय में, एक बेहतर विचार यह होगा कि आप तड़के सुबह पूरा बैकअप बना लें और फिर हर घंटे लेन-देन लॉग बैकअप करें। यह बहुत तेज़ होना चाहिए, और आप किसी भी समय आप जो भी करना चाहते हैं, उसे पुनर्स्थापित करने में सक्षम हैं। और आपकी .trn फ़ाइल बहुत अधिक नहीं बढ़ेगी ...

उम्मीद है की यह मदद करेगा।


यह बहुत मददगार धन्यवाद है। लेकिन यह देखते हुए कि मेरे पास पूरे सर्वर का एक घंटे का बैकअप है, मेरे पास लेनदेन लॉग भी है और डेटाबेस को उस समय के भीतर किसी भी बिंदु पर पुनर्स्थापित कर सकता है, है ना? निष्पादित बैकअप वृद्धिशील हैं, इसलिए यदि मुझे केवल लॉग इन बैकअप लेना है, तो मुझे लगता है कि उन्हें अधिक समय लेना चाहिए।
डेर होकस्टापलर

2
@ ऑलिवर साल्ज़बर्ग यदि आपके पास कोई लेन-देन लॉग है, तो आपको इसे वापस करने और इसे छोटा करने की आवश्यकता है अन्यथा यह अत्यधिक बढ़ जाएगा। यदि आप सरल मोड में जाते हैं, तो आपके पास समय में एक बिंदु पर जाने के लिए लेनदेन लॉग नहीं होगा और एक घंटे के डेटा तक खो जाएगा।
जेम्सरयन

@ ऑलिवरसालबर्ग यह निर्भर करता है। "पूरे सर्वर का प्रति घंटा बैकअप" के साथ आपका क्या मतलब है? ऐसा लगता है कि आप SQL- बैकअप सही नहीं बनाते हैं? यदि यह सही है और आप पूरे सर्वर / वीएम के स्नैपशॉट बैकअप जैसा कुछ करते हैं, तो आपको समस्या हो सकती है कि आप DB बैकअप में सुसंगत नहीं हैं। आपको वीएसएस के साथ कुछ का उपयोग करना चाहिए। लेकिन मैंने उन विशेषज्ञों से भी बात की जिन्होंने कहा था, कि मुझे वास्तव में बैकपूल पर भरोसा नहीं करना चाहिए कि वे सिस्टम और डीबी को एक सुसंगत स्थिति में वापस लाते हैं ... इसलिए मैं सिस्टम और डीबी बैकअप को अलग कर
दूंगा

ADDON: मुझे नहीं लगता है कि .trn लॉग को एक सामान्य SQL फुल बैकअप में शामिल किया गया है ... बैकअप में केवल DB सभी डेटा के साथ शामिल है। लेकिन Transaction Log में DB के CHANGES हैं। आप डेटाबेस इन informations के बिना काम करता है। इसलिए मुझे नहीं लगता कि वे शामिल हैं। यदि आप विशिष्ट समय पर वापस जाने के लिए सुविधा का उपयोग करना चाहते हैं तो यह एक और कारण है कि आपको लॉग इन का बैकअप लेना होगा। लेकिन अब मुझे आश्चर्य हो रहा है ... आपने मुझे थोड़ा भ्रमित कर दिया :-)
frupfrup

1
@OliverSalzburg आपकी पिछली टिप्पणी पर आधारित है यदि आपका बैकअप टूल समय में रिकवरी विकल्पों में एक छंटनी और बिंदु की पेशकश कर रहा है तो यह पहले से ही लेनदेन लॉग का बैकअप ले रहा है, बस स्पष्ट रूप से आपको यह नहीं बता रहा है।
जेसन कंबरलैंड

3

कुंआ। आप परवाह करते हैं क्योंकि यदि आपके पास आपका पुनर्प्राप्ति मॉडल पूरा सेट है और आप SQL के बैकअप (और सर्वर बैकअप नहीं) का उपयोग करके लेन-देन लॉग का बैकअप नहीं लेते हैं, तो लेन-देन लॉग तब तक बढ़ता रहता है जब तक कि यह सभी उपलब्ध डिस्क स्थान का उपभोग नहीं करता। (मैंने एक बार एक कम सहयोगी को सिस्टम ड्राइव पर SQL सर्वर स्थापित करने और लेन-देन लॉग का बैकअप लेने के लिए कभी नहीं देखा। यह विंडोज खा गया ।)

हां, यह समय के साथ-साथ एक विशिष्ट बिंदु पर भी बहाल होगा। नीचे मिनट तक। जैसे ट्विंकल कहते हैं, हां, टेबल और इस तरह छोड़ने वाले लोग।

मुझे नहीं पता कि आप अपने पूरे डेटाबेस के प्रति घंटा बैकअप के लिए क्या उपयोग कर रहे हैं, और यदि यह वही उत्पाद है जो आप पूरे मशीन के लिए उपयोग कर रहे हैं। यदि ऐसा है, तो गैर-SQL- अवगत बैकअप समाधान पुनर्स्थापित करने के लिए समर्थित नहीं है। VSS को MDF और LDF फ़ाइलों की प्रतिलिपि बनाने में जितना समय लगता है, उदाहरण के लिए एक आंतरिक टाइमस्टैम्प मिसमैच हो सकता है।


1

हम कई ईआरपी सिस्टम भी प्रबंधित करते हैं। और समस्या यह है कि रात में अक्सर लंबे समय तक चलने वाली बैच की नौकरियां होती हैं जो अन्य प्रणालियों के साथ डेटा को सिंक करती हैं। और वे कभी-कभी एक घंटे या उससे अधिक समय लेते हैं। तो दुर्घटना के मामले में आप जो करना चाहते हैं वह उस बिंदु पर कूदना है जहां आपके पास लगातार डेटा है। (जिसका अर्थ दो बैच की नौकरियों के बीच सही है।) यदि आप केवल उस समय को देखते हैं जो आप हमेशा नहीं जान सकते हैं कि इस समय डेटा बेस की स्थिति क्या थी।

लेकिन निश्चित रूप से यह स्थिति पर निर्भर करता है। यदि आपके पास कोई स्वचालित नौकरी आदि नहीं है, तो आप एक घंटे के बैकअप के साथ पूरी तरह से ठीक हो सकते हैं।


1

आप ऐसा क्यों करना चाहते हैं, इसके कई कारण हैं:

  1. एक डेटाबेस सिस्टम आमतौर पर व्यस्त है, शायद प्रति सेकंड हजारों लेनदेन कर रहा है। डेटा को विभिन्न फाइल सिस्टम पर कई फाइलों में फैलाया जा सकता है। यह सुनिश्चित करने के लिए तुच्छ नहीं है कि डेटाबेस पुनर्स्थापित करने के बाद सुसंगत (उर्फ प्रयोग करने योग्य) स्थिति में है। यदि आपका बैकअप समाधान कार्य पर निर्भर है, महान है, लेकिन आप इस पर अपनी नौकरी को दांव पर लगाने से पहले इस बारे में निश्चित रूप से बेहतर होंगे।
  2. एक उदाहरण: किसी ने गलती से महत्वपूर्ण डेटा के साथ एक तालिका को गिरा दिया। यदि आपके पास पॉइंट-इन-टाइम रिकवरी क्षमता के साथ डेटाबेस बैकअप है, तो आप पूरे सिस्टम को पुनर्स्थापित किए बिना, डेटा को जल्दी से पुनर्स्थापित कर सकते हैं।
  3. यदि डेटाबेस पूर्ण पुनर्प्राप्ति मोड में है, तो SQL सर्वर का लेन-देन लॉग बढ़ेगा। लेन-देन लॉग में संग्रहण स्थान केवल पुन: उपयोग किया जाता है यदि लेनदेन लॉग का बैकअप लिया गया है। यदि आप नियमित रूप से लेन-देन लॉग का बैकअप नहीं लेते हैं, तो आपकी फ़ाइल प्रणाली तब तक भर जाएगी जब तक कि कोई स्थान नहीं बचा है। किस बिंदु पर सब कुछ तत्काल रुक जाएगा , क्योंकि कोई नया लेनदेन शुरू नहीं किया जा सकता है।

1

जब आपका डेटाबेस एक घंटे में बैकअप लेने में सक्षम हो जाता है, तो आपको एक अलग मॉडल की आवश्यकता होती है।

आपके डेटाबेस का एक पूर्ण बैकअप आपके लॉग को छोटा कर देगा, लेकिन इसे "SQL जागरूक" होने की आवश्यकता है, क्योंकि उस परिदृश्य में, यह बैकअप सॉफ़्टवेयर है जो SQL सर्वर को बता रहा है कि यह क्या है, और क्या छोटा करना है।

जैसा कि दूसरों का उल्लेख है, यदि आपके पास "पूर्ण" रिकवरी मॉडल में एक डेटाबेस है, तो यह लेन-देन लॉग अनिश्चित काल तक बढ़ेगा, जब तक कि आप पूर्ण SQL-जागरूक बैकअप नहीं बनाते हैं।

पुनर्प्राप्ति वास्तव में यहाँ समस्या है, बैकअप नहीं। और यह एक तकनीकी निर्णय नहीं है, यह एक व्यवसायिक निर्णय है!

यदि आपके व्यवसाय के मालिक अपने डेटाबेस लेनदेन के एक घंटे या उससे अधिक समय तक खो देने के साथ ठीक हैं (जो फिर से करना बहुत मुश्किल या असंभव हो सकता है!) तो आपका मॉडल काम करता है। यदि वे पूरे डेटाबेस को बैकअप से पुनर्स्थापित करते समय घंटों तक सिस्टम के साथ ठीक हैं, तो आपका मॉडल काम करता है।

हालांकि, यदि आपका व्यवसाय उनके संचालन के लिए ईआरपी सिस्टम को महत्वपूर्ण संपत्ति मानता है (वे सभी नहीं हैं?), तो आपकी महत्वपूर्ण सेवाओं के लिए अधिकतम स्वीकार्य रिकवरी टाइम (उर्फ आरटीओ, रिकवरी टाइम ऑब्जेक्टिव) सेट करना एक व्यावसायिक निर्णय होगा।

इसके अलावा, व्यवसाय के मालिकों या सिस्टम हितधारकों को यह परिभाषित करने की आवश्यकता है कि वे किसी घटना, उर्फ ​​आरपीओ (रिकवरी पॉइंट ऑब्जेक्टिव) में खोने के लिए कितना डेटा तैयार करना चाहते हैं।

यदि आप उनसे पूछते हैं तो उत्तर "नहीं डेटा खो सकता है! ईआरपी सिस्टम 24/7/365 उपलब्ध होना चाहिए!" ... जिसे हम सभी जानते हैं कि लागत प्रभावी होने की संभावना नहीं है। यदि आप उन्हें पूरी तरह से निरर्थक, नॉन-स्टॉप सिस्टम के निर्माण से जुड़ी लागत के साथ पेश करते हैं, तो वे अधिक उचित तरीके से आएंगे;);

मुद्दा यह है, यदि आप किसी भी लेन-देन को खोने से बचा सकते हैं, तो आप अपने व्यवसाय को संभावित रूप से सैकड़ों या हजारों खोए हुए काम के घंटे बचा रहे हैं। यह किसी भी कंपनी में बड़ी बचत की राशि है, और आपकी कंपनी के आकार के साथ बढ़ता है ...


पुनर्प्राप्ति के लिए +1 क्रूक्स है, न कि बैकअप। और व्यापार उपयोगकर्ताओं को निर्णय में लाना।
RateControl

1

इस पर सभी की शानदार प्रतिक्रियाएँ थीं, लेकिन मैं एक और महत्वपूर्ण नोट जोड़ना चाहूँगा ... या दो।

SQL सर्वर रिकवरी मॉडल के विवरण और डेटा हानि के लिए आपकी व्यावसायिक आवश्यकताओं को जानना दोनों बहुत महत्वपूर्ण हैं; हालाँकि, इस मामले में यह आवश्यक है कि आप समझें कि आपका बैकअप उत्पाद SQL सर्वर के साथ कैसे काम करता है। (उपरोक्त टिप्पणियों के आधार पर, ऐसा लगता है कि आप वीएसएस कॉपी के माध्यम से डिस्क वॉल्यूम का बैकअप ले रहे हैं, जिसका अर्थ है कि SQL सर्वर बैकअप की आवश्यकता हो सकती है या इसके अतिरिक्त नहीं हो सकती।)

हाल ही में एक समान उत्पाद का मूल्यांकन करने के बाद, कुछ महत्वपूर्ण बिंदु जिनके बारे में आपको पूछना पड़ सकता है:

  • पूर्ण पुनर्प्राप्ति में डेटाबेस के लिए समय पर एक बिंदु पर पुनर्स्थापना कैसे की जाती है?
  • पूर्ण पुनर्प्राप्ति में एक नए डेटाबेस के लिए प्रारंभिक बैकअप कैसे संभाला जाता है?
  • क्या बैकअप उत्पाद को समय में एक बिंदु पर पुनर्स्थापित करने के लिए SQL सर्वर लॉग बैकअप की आवश्यकता होती है? (मेरे मामले में, जवाब हां था।)
  • क्या आपका स्टोरेज इन्फ्रास्ट्रक्चर सामान्य SQL लोड के अलावा VSS प्रतियों / अंतरों (किसी दिए गए अंतराल पर) के लिए डेटा की मात्रा को संभाल सकता है?

आशा है कि यह उपयोगी है।

मेरी टीम ने हमारे हालिया मूल्यांकन के साथ जो अनुभव किया, वह उपरोक्त प्रश्नों के कुछ बहुत ही रोचक उत्तर प्रदान करता है। एक बात सुनिश्चित है, वीएसएस बैकअप उत्पाद के साथ बैकअप हमारे लिए अधिक जटिल हैं।


0

जैसा कि कई अन्य लोग पहले ही कह चुके हैं, यदि आप वीएम या स्टोरेज को बैकअप / स्नैपशॉट के लिए किसी तीसरे पक्ष के उपकरण का उपयोग कर रहे हैं, तो आप अभी भी एक वैध बैकअप नहीं होने का जोखिम चलाते हैं। सभी तीसरे पक्ष के उपकरण जो SQL सर्वर बैकअप का प्रबंधन करते हैं और वीएसएस का उपयोग करके SQL सर्वर से जुड़ेंगे। यह अनुरोध करता है कि SQL सर्वर डेटा फ़ाइलों में सभी I / O को छोड़ दे ताकि एक सुसंगत स्नैपशॉट लिया जा सके। यदि नहीं, तो आपके पास विभिन्न राज्यों में कई लेनदेन हो सकते हैं और एक पुनर्स्थापना को पता नहीं चलेगा कि क्या उन लेनदेन को आगे या पीछे किया जा सकता है।

मैंने हर तीसरे पक्ष के VM / Storage स्नैपशॉट टूलिंग के साथ काम नहीं किया है, लेकिन जिन लोगों के साथ मैंने काम किया है, वे कभी भी स्टोरेज को स्नैपशॉट में सक्षम नहीं थे जहाँ सिस्टम डेटाबेस स्थित थे - SQL सर्वर उन डेटाबेसों को समाप्त नहीं कर सकता है। वे सभी उन डेटाबेस को एक स्ट्रीम तरीके से बैकअप लेते हैं - यानी ... बैकअप डेटा जारी करते हैं और फिर बैकअप फाइल को स्नैप करते हैं।

इन सबसे ऊपर, जैसा कि कई ने यह भी कहा है, यदि आप पूर्ण पुनर्प्राप्ति मॉडल में हैं, और आप नियमित रूप से बैक लॉग लॉग जारी नहीं करते हैं, तो लेन-देन लॉग तब तक बढ़ता रहेगा जब तक कि डिस्क पर कोई जगह नहीं बची हो।

असली सवाल जो आपको पूछा जाना चाहिए, और मैं इसे ऊपर से याद कर सकता हूं ... क्या आपने कई बार इन बैकअप से सफलतापूर्वक बहाल किया है, और क्या आप उन रिस्टोर में डेटा की निरंतरता से खुश हैं। व्यक्तिगत रूप से, यहां तक ​​कि यह मेरे लिए पर्याप्त नहीं होगा, यह अभी भी पासा के रोल की तरह लगता है, और यह एक अच्छा डीबीए है जो कभी भी बैकअप और रिकवरी की बात नहीं करता है।


0

पहचानें कि लेन-देन लॉग केवल एक पुनर्प्राप्ति तंत्र नहीं है। उचित लॉग रखरखाव भी समग्र डेटाबेस प्रदर्शन (यानी, लेन-देन थ्रूपुट) में एक महत्वपूर्ण भूमिका निभा सकता है।

आपकी लॉग फ़ाइलों का बार-बार बैकअप करने से कुछ चीज़ें होती हैं:

  1. यह भौतिक लॉग फ़ाइलों में वीएलएफ गणना को कम करता है जो प्रदर्शन के लिए अच्छा है।
  2. आप उस घटना में लॉग बैकअप का उपयोग करने के लिए बेहतर तैयार हैं जिसे आपको डेटाबेस को पुनर्प्राप्त करने की आवश्यकता है।
  3. यह एक पूर्ण बैकअप की तुलना में काफी तेज है

यदि आप प्रति घंटे पूर्ण बैकअप करने के साथ दूर हो सकते हैं तो आपको यकीन नहीं है कि आप अधिक लगातार लॉग बैकअप से कितना लाभान्वित होंगे। आखिरकार, जैसा कि मैं समझता हूं कि यह एक पूर्ण बैकअप भी बैकअप होगा लॉग के रूप में ज्यादा के रूप में आवश्यक है ताकि एक पूर्ण पुनर्स्थापना सुनिश्चित हो सके।

दूसरी ओर, यदि आपका ऐप आपके प्रति घंटा पूर्ण बैकअप के बीच में कई बार लेनदेन करता है, तो यह बता सकता है कि मूल देवों ने अधिक बारीक लॉग रखरखाव का सुझाव क्यों दिया। लेन-देन के बहुत से आपके लॉग में वीएलएफ की गिनती बढ़ सकती है जो लॉग को छंटनी तक एक प्रदर्शन जुर्माना लगा सकती है। मैंने इसे एक आवेदन के भीतर 'क्वेरी टाइमआउट की समय सीमा समाप्त' त्रुटि के रूप में व्यक्त किया है (कुछ ही समय पहले यह लटका हुआ है)।

लेन-देन लॉग रखरखाव से संबंधित सिफारिशें इस लेख में बहुत अच्छी तरह से वर्णित हैं 8 बेहतर लेनदेन लॉग थ्रूपुट के लिए कदम । इसके अतिरिक्त, प्रभावी डेटाबेस रखरखाव के लिए शीर्ष आलेख इस लेख में (<200) के लिए लक्ष्य के लिए कुछ हद तक मनमाने ढंग से वीएलएफ गणना का उल्लेख है, जिसने मेरे लिए बहुत अच्छा काम किया है।


0

अन्य लोगों ने पहले से ही एक ट्रांसलॉग बैकअप आदि के अधिकांश कारण बताए हैं। कुछ संदेह के रूप में लगता है कि जब आप पहले से ही सर्वर का बैकअप लेते हैं तो यह अच्छी रणनीति क्यों है।

मेरे लिए कुछ अच्छे कारण सामने आए हैं जो ऊपर नहीं हैं। क्या होगा अगर आप 3rd पार्टी ऐप का बैकअप लेने में विफल रहते हैं, जिसे आप पुनर्स्थापित कर सकते हैं? क्या आपने अपना बैकअप पुनर्स्थापित करने का प्रयास किया है? एक नए सर्वर के बारे में जो आपने अभी-अभी अपने टेम्प्लेट से बनाया है (सोचिए DR)? आपके डोमेन के किसी अन्य सर्वर के बारे में क्या है जिसके पास एक अलग कॉलेशन है? या SQL उदाहरण?

मैं बिना किसी कारण के निरर्थक बैकअप लेता हूं, कभी-कभी आपके तीसरे पक्ष के ऐप को पुनर्स्थापित करने का सबसे तेज़ तरीका नहीं है। कभी-कभी आपके तृतीय पक्ष एप्लिकेशन को सहेजना भी प्रभावित होता है, या अपने स्वयं के कारणों के लिए भ्रष्ट है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.