أدوات النسخ الاحتياطي بوستجرس. أندريه سالنيكوف (بيانات البلشون)

أقترح عليك قراءة فك تشفير التقرير من قبل Andrey Salnikov من Data Egret "أدوات إنشاء النسخ الاحتياطي لـ PostgreSQL" . في النهاية ، جدول ملخص محدث من الأدوات


هذا الحديث يدور حول أدوات النسخ الاحتياطي المتوفرة في PostgreSQL. النسخ الاحتياطي المنطقي ، النسخ الاحتياطية الثنائية ، أدوات النسخ الاحتياطي المضمنة وأدوات الطرف الثالث. هي النسخ الاحتياطي التزايدي اللازمة عندما يمكن أن تساعد حقا. دعونا نرى متى والأداة الأكثر ملاءمة للاستخدام. ما هي أفضل طريقة لأتمتة عملية النسخ الاحتياطي والتحقق من سلامة نسخة احتياطية؟ ألق نظرة فاحصة على أدوات مثل pg_dump و pg_basebackup و barman و wal-e و wal-g و pgbackrest و BART و pg_probackup .



اسمي أندري سالنيكوف ، أنا موظف في Data Egret وسيتم تخصيص هذا التقرير لأدوات إنشاء نسخ احتياطية في PostgreSQL.



أولا عن من نحن ، شركتي. نشاطنا الرئيسي: نعمل كمسؤولين عن بعد ولدينا عدد كبير من العملاء. هناك قواعد ضخمة ، وهناك مجموعة من القواعد الصغيرة ، وهناك كل أنواع الخلطات عندما تكون قاعدة كبيرة واحدة أو مجموعة صغيرة منها. كما نقدم خدمات استشارية ومراجعة - وهذا هو الحال إذا لم يكن الناس بحاجة إلى دعم مستمر ، ولكن هناك حاجة إلى نوع من الخبرة.
نظرًا لأن PostgreSQL منتج مفتوح المصدر ، فسنشارك بشكل طبيعي في جميع أنواع المؤتمرات من حيث تبادل خبرتنا ومساعدة PostgreSQL بكل طريقة ممكنة. لأن قاعدة بيانات PostgreSQL جيدة حقًا. واتضح أننا رأينا عددًا كبيرًا من ملفات تعريف التحميل: أحمال DWH ، وأحمال WEB ، ومزيج التحميل. وكانت القواعد تتساقط بطرق مختلفة. الكثير من الخبرة.



هذا هو الجزء الأكثر إثارة للاهتمام من التقرير. لماذا النسخ الاحتياطية اللازمة؟ في الواقع ، هناك حاجة إلى ذلك حتى نتمكن من الراحة بسلام ، حتى نتمكن من النوم بسلام ، حتى نتمكن من التسكع في الحفلات بهدوء. الآن ، هذا هو الهدف الرئيسي من وجهة نظر القاعدة وراء الحاجة إلى النسخ الاحتياطية. بحيث كل شيء هادئ في حياتنا. لأنه إذا كان هناك نسخ احتياطية تم التحقق منها ، فيمكننا القيام بكل هذا. لكن ما يحدث مع القاعدة هو الشيء العاشر.



ما هي مجموعة من الأدوات لإنشاء نسخ احتياطية في عالم PostgreSQL؟ هذه هي أداة الاسترداد المدمجة pg_dump أو pg_dumpall أو pg_restore. هذه هي الأداة الوحيدة التي تسمح لك بعمل نسخ احتياطية منطقية. بمعنى أنه يمكن أن pg_dump لك ، سواء في SQL لتفريغ ، وفي تنسيق ثنائي صغير لتفريغ البيانات. ويأتي من خارج منطقة الجزاء مع بوستجرس.
الأداة التالية (pg_basebackup) لإنشاء نُسخ احتياطية ، والتي تنفد أيضًا من الصندوق وتبدأ أيضًا بهذه الأداة ، وستكون جميعها أدوات لإنشاء نسخ احتياطية لقواعد البيانات الثنائية. Pg_basebackup هي أيضًا أداة تخرج من العلبة ، مما يسمح لنا بتحميل مستودعات postgreSQL وأخذ نسخة ثنائية من قاعدة البيانات ، وإطلاق النار على قاعدة بيانات مستمرة ، وإذا كنا نريد أن نتمكن من أرشفتها في الوقت المناسب ، يمكننا تكوين PostgreSQL لتفريغها إلى نوع من القرص. هذه هي الأدوات الأساسية. إنها جيدة ، وهي تعمل ، وتؤدي وظائفها في سن الخامسة ، لكنها غير مريحة فيما يتعلق بالإدارة ونوع من الكتلة. عندما يكون لديك 20 قاعدة بيانات ، سوف تحتاج إلى القيام بذلك بنفسك البرمجة النصية.
الأدوات التالية هي أدوات سحابة نقية محددة - wal-e و wal-g. يقوم نفس الأشخاص بتطويرها ، لكن التطوير الإلكتروني قد انتهى ، وقد تحولوا إلى wal-g. هذه الأدوات موجهة أساسًا لنظام AWS وللتخزين في S3. لا يزال Wal-e قادرًا على العمل مع Google Cloud و Azure ومع نظام القرص ، يمكنك فقط تحديد نوع من محرك الأقراص البعيد. تعمل Wal-g فقط مع AWS ، فقط مع S3. حسنا ، أو أي واجهة أخرى مماثلة مع S3. نستخدمها ، الأشياء الجيدة. سأقوم بتفكيك كل أداة بالتفصيل.



وفي الحزمة التالية من الأدوات ، هذه هي الأدوات التي تعتمد على pg_basebackup أو تستخدمها مباشرةً ، أو تنفذ وظائفها بطريقة أو بأخرى. يتم كتابتها جميعًا بواسطة مطورين يلتزمون بـ PostgreSQL الرئيسي ولديهم شوكة تجارية خاصة بهم ، والتي تعزز في دائرة نفوذهم.
أداة بارمان الأكثر شعبية ، والتي نستخدمها على نطاق واسع جدا في البلاد. هذا هو في الأساس التفاف بيثون حول pg_basebackup. يمكن أن تعمل أيضا على بروتوكولات سه. أداة pgbackrest مثيرة جدا للاهتمام وواعدة للغاية. PostgreSQL تشارك في التطوير وتلتزم به بنشاط. كانت مكتوبة في الأصل في بيثون. الآن الإصدار المستخدم - هو مكتوب في C لتسريع وإمكانية إزالة موازية من النسخ الاحتياطية.
Pg_probackup هي أداة مساعدة من زملائنا الروس في PostgreSQL Professional والتي تتيح لك عمل نسخ احتياطية تدريجية ، وهي صغيرة الحجم للغاية.
وأحدث أداة مساعدة هي أداة النسخ الاحتياطي والاسترداد (BART) من EnterpriseDB. انها ليست شعبية جدا معنا. هو أساسا ل CentOS وريد هات. لأوبونتو ، معها ، في رأيي ، من الصعب. ونظرًا لانخفاض شعبية BART معنا ، لم يتم العثور عليها (BART) تقريبًا في أي مكان في المنشآت.



سأحاول تقسيم هذه الأدوات إلى بعض الأشياء المهمة.


  • أولاً ، من المهم بالنسبة لنا كيف سنقوم بتخزينه ، وعلى أي محركات وأي خدمات. وهناك قائمة من الخصائص التي سوف نمر بها.


  • فصل البيانات التالي ، أقسم هنا أنه ، عند إزالة النسخة الاحتياطية أو استعادة النسخة الاحتياطية ، يمكننا قص جزء من خادم قاعدة البيانات بالكامل (الخادم) والعمل معها كقاعدة بيانات متكاملة ومتكاملة.


  • كم يدعمون إصدارات مختلفة من قاعدة البيانات.


  • ما هي أوضاع التشغيل لديهم من حيث التوازي ، من حيث نوع من الأتمتة وما شابه ذلك.


  • وإمكانية الخدمة هي مقدار ما يمكننا فصلها في خدمة منفصلة ، والتي ستخضع هي نفسها لقواعد البيانات وتزيل النسخ الاحتياطية وفقًا لجدول زمني معين.


  • التحقق من الصحة - أردت التحقق من النسخة الاحتياطية من حيث التأكد من أننا يمكن أن نتعافى منها بعد ذلك وسيكون لدينا قاعدة طبيعية غير منقطعة.


    والآن ، لنذهب إلى هذه النقاط الست الكبرى بمزيد من التفصيل. وسأضع علامة هناك على الأداة التي ستمنحنا.




من خلال التخزين ، يمكنهم تخزين كل شيء في نظام الملفات ، أي أنه يمكننا إعادة تركيب قرصنا على نظام التشغيل ونسخ النسخ الاحتياطية هناك. جميع الأدوات تسمح لك بذلك. محرك أقراص الشبكة المثبت هو نفسه ، لأنه يتم الحصول عليه في نظام الملفات المحلي الخاص بنا.
في AWS (S3) ، يمكن أن تعمل ثلاث أدوات لنا - wal-g ، wal-e ، pgbackrest. لأنه من بين هذه الأدوات المساعدة: barman وهكذا ، فهو الوحيد الذي يمكنه العمل مع AWS (S3).
مع Azure ، فقط wal-e. Google Cloud هي wal-e فقط.



  • يتم توفير نسخة منطقية من البيانات إلينا فقط بواسطة pg_dump ، pg_dumpall. الفرق بينهما هو أن pg_dumpall يعالج مثيل قاعدة البيانات بالكامل (الخادم) ، في pg_dump يمكنك تحديد قاعدة بيانات محددة على المثيل والعمل معها.
  • النسخ الثنائية هي كل ما تبقى.
  • أحد العوامل المهمة أثناء التخزين هو أنه إذا تم تقييد موارد القرص بطريقة ما ، فغالبًا ما تنشأ المواقف عندما نقوم بتقسيم قاعدة البيانات إلى مساحات مختلفة للجدول. ينطبق هذا أيضًا على خوادم الحديد ، لأنك لا تريد أن تعاني من RAID. ينطبق هذا على السحب ، نظرًا لوجود قيود معينة ، خاصةً عند استخدام سيارة مزودة بأقراص NVME وعدد الأقراص المتصلة ، يتم توصيل الكثير منها. يتم توسيع مثيلات AWS ، ولكن مع محركات أقراص EBS. وعند استعادة البيانات ، سيكون من المهم بالنسبة لنا أن نتمكن من إعادة توزيع مساحات الجداول هذه ، وتخصيصها على مسارات جديدة وأقراص جديدة. والآن هذه الخاصية الجيدة موجودة في wal-e. في wal-g ما زالوا لا يعرفون كيفية التعامل معها. يمكن أن تعمل Pg_probackup معها. بارمان ، basebackup ، pgbackrest. غالبًا ما يكون هذا الأمر مهمًا ، خاصةً عندما يكون لديك قاعدة بيانات من 10 إلى 10 تيرابايت. بين عملاء الإنتاج لدينا ، يتم طي كل قواعد البيانات هذه تقريبًا في مساحات الجدول.


الآن عن حجم ما يمكن أن يكون لدينا نسخة احتياطية. كل هذا سوف يذهب في سياق النسخ الاحتياطية الثنائية. من الواضح أن النسخ الاحتياطي الثنائي هو مقدار وزن قاعدة البيانات معنا ، وهذا ما نسخته. يزن 8 تيرابايت ، قمنا بنسخ 8 تيرابايت. 1 ميغابايت يزن 1 ميغابايت ، نسخ. كيفية توفير مساحة عندما نريد سلسلة طويلة من النسخ الاحتياطية؟ للقيام بذلك ، جاء مع بعض الأدوات. وهذا هو ، قاعدة البيانات بتخزين البيانات في ملفاتها. إذا كان لدينا قاعدة بيانات أرشيف طويلة ، فإننا عادة ما نغير هناك نسبة صغيرة من هذه الملفات. ولهذا ، توصلوا إلى نسخة احتياطية تفاضلية.


النسخ الاحتياطي التفاضلي ما هو؟ نحن ننظر إلى الملفات التي تغيرت ونسخ فقط إلى التخزين ، حيث لتخزين النسخ الاحتياطي. وسنربط جميع الملفات الأخرى مع وصلة صلبة بقاعدة البيانات هذه. اتضح أننا بالتالي توفير مساحة. وفي الوقت نفسه ، يمكننا حذف نسخ احتياطية لقواعد البيانات القديمة بأمان دون العبث بأحدث النسخ الاحتياطية.


هذا شيء جيد ، لكننا قررنا المضي قدمًا وتوصلنا إلى نسخة احتياطية تدريجية. النسخ الاحتياطي التزايدي نوعان.


الأول على مستوى الملف. إنه يختلف عن النسخ الاحتياطي التفاضلي فقط في أن النسخ الاحتياطي التفاضلي يركز على نسخة احتياطية كاملة من قاعدة البيانات الخاصة بك ، وفيما يتعلق بنسخة احتياطية كاملة فإنه يقوم بنسخ ملفات ونسخ مختلفة. يمكن أن يركز النسخ الاحتياطي التزايدي على النسخ الاحتياطية التفاضلية ، ولا ينسخ سوى الملفات التي تم تغييرها مقارنةً بالنسخ الاحتياطي التفاضلي. لتزايدية ، سوف تحتاج إلى سلسلة كاملة من النسخ الاحتياطية. أي أن النسخة الاحتياطية الرئيسية -> النسخة الاحتياطية التزايدية الأولى (ستكون دائمًا تفاضلية) -> ثم جميع النسخ الاحتياطية الإضافية. يركز النسخ الاحتياطي التفاضلي دائمًا على قاعدة بيانات احتياطية كاملة. يمكن أن تركز تدريجيا على أنواع أخرى من النسخ الاحتياطي.
ذهب Pg_probackup و BART في طريقة إنشاء نسخ احتياطية تزايدي حسب الكتلة. لأنه لا يمكننا تغيير الملف بأكمله ، ولكن كتلة البيانات. وهذه الأدوات المساعدة تعمل من خلال ملفات wal وتحدد الكتل التي تغيرت منك بالضبط. يتم نسخ كتل النسخ الاحتياطي هذه للنسخ الاحتياطي. من أجل الاسترداد باستخدام نسخة احتياطية تدريجية كهذه ، ستحتاج أيضًا إلى نسخة كاملة من قاعدة البيانات بالإضافة إلى أنك لا تزال بحاجة إلى حفظ هذه القطع الإضافية التي تمت كتابتها من wal. هذا يفرض بعض قيود الأداة المساعدة ، لأنه يجب تشغيلها من خلال ملفات wal. يحتوي PostgreSQL Professional أيضًا على طبقة فوق بنية ملف قاعدة البيانات. لذلك ، فهي تبحث بسرعة كبيرة لهذه الكتل. النسخ الاحتياطية الإضافية هذه صغيرة جدًا. إذا كان لديك تغيير صغير في قاعدة البيانات٪ وبسبب حقيقة أن الكثير من المعلومات التقنية تتم كتابتها إلى ملف wal ، فإن هذه الأدوات المساعدة تقوم بعمل نسخة احتياطية لعشرات الكيلوبايت من البيانات لمدة 1 ثانية.



مزيد من تبادل البيانات. هذا يعني أنه إذا كنا بحاجة إلى النسخ الاحتياطي وليس كل شيء. أو استعادة ليس كل شيء. هذا ممكن فقط مع النسخ الاحتياطي المنطقي ، وهذا يسمح لنا بالقيام فقط pg_dump. توفر المرافق وظائف واسعة إلى حد ما. يمكن أن يسمح لك Pg_dump بتفريغ بنية قاعدة البيانات إذا كنت بحاجة إلى ذلك. يمكنك تفريغ جدول واحد على وجه التحديد أو يمكنك استبعاد جدول واحد من تفريغ أو تفريغ قائمة الجداول ، واستبعاد القائمة. وظيفة واسعة جدا في هذا الصدد. ناقص هذا هو أنه عند التعافي من مثل هذا التفريغ ، إذا كان لديك قاعدة بيانات كبيرة ، فسوف تضطر إلى قضاء الكثير من الوقت لاستردادها ، لأن كل هذا يحتاج إلى أن يلعب على مثيل نقي من PostgreSQL.
هذه الأدوات المساعدة ملائمة للغاية لاستخدام الحالة عندما نبالغ في تقدير نقاط القوة لدينا ولم نقم بإنشاء مجموعة من قواعد البيانات الصغيرة. يمكننا دمجها في حالة واحدة. يمكننا أن نرى ذلك بهذه الطريقة إذا قمنا مرة أخرى بتقييم قوتنا ، أو أن قاعدة البيانات الخاصة بنا منتفخة أو إذا قمنا بتغيير الهيكل هناك من متراصة إلى خدمة واحدة ونشهد البيانات. Pg_dump في هذه الحالة هو الشيء الوحيد الذي يتيح لك القيام بذلك دون ألم.


يمكنك أيضًا استعادة قاعدة بيانات واحدة ويتم سرد pgbackrest هنا. لديه مثل هذه الشريحة ، حتى نتمكن من الإشارة إلى أننا بحاجة إلى قاعدة بيانات واحدة فقط من نسخة احتياطية ثنائية. ماذا يفعل؟ تقوم باستعادة قاعدة البيانات الافتراضية من النسخة الاحتياطية ، وهذا هو قالب و postgres وقاعدة البيانات التي حددناها. جميع قواعد البيانات الأخرى ، فإنه يعيد تعيين الملفات ويجعلها طول الصفر. وهذا يعني أن PostgreSQL لديها بنية شفافة لتخزين قواعد البيانات في الملفات ، حيث يمكنك في هذا المستوى ، كما كانت ، تقليل قاعدة البيانات المستعادة. لنفترض أننا بحاجة إلى العثور على البيانات العاجلة من ثنائي ، لا نريد رفع قاعدة 10 تيرابايت ، ولدينا قاعدتان هناك ، ونقوم بجمع واحدة ، والتي تسمح بإجمالي 5 تيرابايت. في هذه الحالة ، بالطبع ، يتم انتهاك التناسق ، ولكن بالنسبة لبعض الحلول السريعة ، عندما تحتاج إلى رفع بيانات جذر الأنف على وجه السرعة من قاعدة بيانات كبيرة ، والتي توجد منها ، فهذه ميزات جيدة للغاية. ولكن كقاعدة بيانات احتياطية كاملة لا ينبغي النظر خلال الانتعاش. وهذا هو ، هو للعمل في حالات الطوارئ.



كيف يتم العمل مع العديد من إصدارات قاعدة البيانات؟ هنا ، أيضا ، كل شيء مثير للاهتمام للغاية. يعد Pg_dump جيدًا للغاية حيث أننا لسنا مرتبطين بأي إصدار من قاعدة البيانات لاستعادته. يوجد وضع نص عادي ، وهو فقط SQL خالص ، الذي يصف بنية قاعدة البيانات بأكملها ، وجميع البيانات. من حيث المبدأ ، يمكنك الاسترداد من أي مكان تريده ، في MySQL ، في MSSQL ، في Oracle مع بعض التعديلات على هذا التفريغ. بين الإصدارات الرئيسية من بوستجرس ، هذه المقالب هي أيضا سهلة الاستخدام إلى حد ما.
إصدار متعدد ، ماذا يعني هذا؟ هذا هو مدى قدرة الأداة على معالجة إصدارات مختلفة من قواعد البيانات والعمل في وقت واحد مع PostgreSQL 9.6 ، 10 ، 11. كل شيء ما عدا تلك المضمنة من pg_dump و pg_basebackup ، لأنها مرتبطة بالإصدار المحدد الذي تأتي به. الباقي يركز على هذه المرافق. يمكن الإشارة إلى موقع pg_basebackup ، pg_dump للإصدارات المختلفة. انهم على التوالي مع إصدار PostgreSQL اختيار أحدث أداة لإزالة النسخ الاحتياطي.
جميع الأدوات المساعدة باستثناء pg_dump مناسبة لإنشاء نسخ متماثلة وخوادم احتياطية ، لأن هذه نسخ احتياطية منطقية. باستخدام أي من هذه الأدوات المساعدة ، يمكنك استعادة الخوادم والاتصال بالمعالج للعمل كنسخة متماثلة لهذا الخادم.



كيف يمكن إزالة النسخ الاحتياطية بشكل عام ، ما هي وسائط موجودة لإزالة النسخ الاحتياطية. يمكنك ببساطة نسخ الملفات باستخدام أدوات OS القياسية: عبر بروتوكول ssh (rsync ، scp) وربما بعض الأدوات المساعدة الأخرى. لماذا توجد مثل هذه الفرصة ، لأنها تتيح لك موازاة النسخ. Pgbackrest يعمل فقط بهذه الطريقة ، يمكن أن يعمل barman بهذه الطريقة ، ويمكن أن يعمل باستخدام بروتوكول PostgreSQL.
بروتوكول PostgreSQL - عندما تتصل أداة النسخ الاحتياطي بـ PostgreSQL وتسحب جميع الملفات وسجلات الأرشيف التي تنشأ أثناء عملية النسخ الاحتياطي باستخدام بروتوكول النسخ المتماثل. يمكن لأي شخص آخر وبارمان القيام بذلك.
في الأساس ، يمكن لكل شيء القيام بنسخة احتياطية من نسخة طبق الأصل ، ذلك يعتمد على إصدار PostgreSQL. باستخدام PostgreSQL 10 و 11 ، يمكننا إزالة النسخ الاحتياطية من نسخة متماثلة. لكنني لا أوصي بهذا ، بشكل عام ، لن توصي أي من شركتنا بذلك. نظرًا لوجود مواقف عندما فقدوا المراقبة ، أخذوا نسخة احتياطية من النسخة المتماثلة لمدة شهر ، والتي سقطت عن الخادم الرئيسي وليست ذات صلة. أي ، يجب دائمًا إزالة النسخ الاحتياطية في أي حال من الخادم الرئيسي. في هذه الحالة فقط ، ستكون متأكدًا من أن لديك قاعدة بيانات احتياطية حديثة.
نسخ متعددة النسخ الاحتياطية - يمكن للجميع القيام بذلك ، لأن كل شيء لأسباب مختلفة ، شخص ما من خلال بروتوكول ssh ، شخص تم تنفيذه على مستوى نسخة قاعدة البيانات. باستثناء pg_basebackup و BART ، لأن عملية BART تكون فقط على pg_basebackup عندما تتم إزالة النسخة الاحتياطية وتكون ، للأسف ، مترابطة أحادية ولن تكون متعددة الخيوط.



مثال على تعدد العمليات. كنت استعادة قاعدة بيانات 8 تيرابايت. عندما تركز على اختيار نظام لإزالة النسخ الاحتياطية ، فاعلم أن wal-e مكتوب في Python ، يتم كتابة wal-g في Golang. اضطررت لاستعادة قاعدة 8 تيرابايت. واجهت Wal-e حدود Python وسحبتني مع AWS بسرعة 600 ميغابت في الثانية. عندما تحولت إلى wal-g ، كان لديه موقف أنه لا يستطيع العمل مع النسخ الاحتياطية الإلكترونية ، لكن يمكنه سحب ملفات wal. لذلك ، هذه الصورة المتوسطة هنا هي استعادة قاعدة البيانات. ثم توالت وول ، الذي كان هناك في S3 واستعادته إلى نقطة معينة في الوقت المناسب. صادف Wal-e حدود Python والتزامن في Python ، إنه مشروط جدًا. صادف w-g واجهة S3 ، أي مدى السرعة التي يمكن أن يوفرها S3 في كل لحظة ، وبسرعة استغرق الأمر. في المتوسط ​​، كان 2 جيجابايت / ثانية ، وهو أمر جيد بما فيه الكفاية. هذا هو ، مع wal-e ، تم تلقي ساعة من التغييرات في قاعدة البيانات في 45 دقيقة من النسخ الاحتياطي المتداول. مع wal-g ، اتضح أنهم توالت ساعة في مكان ما في قاعدة البيانات لمدة 5 دقائق.



أوضاع التشغيل ، ما هو مثير للاهتمام هنا في نظام النسخ الاحتياطي.


  • الانتعاش في الوقت المناسب إلى نقطة محددة. إذا كان لدينا سجلات مؤرشفة وقمنا بنسخها ، فيمكننا استعادتها. يسمح لك بعمل نظام نسخ احتياطي ، وهو يشبه العامل القياسي. الشيء الرئيسي هو أننا نقوم بتخزين ملفات wal في مكان ما. مقالب ، بالطبع ، لا يعرفون كيف ، لأنها قليلا عن شيء آخر.
  • يعد ضبط التحميل على الشبكة أمرًا مهمًا للغاية ، لأنه كما قلت ، من المستحسن إزالة التفريغ من الخادم الرئيسي ، فأنت تضمن لنفسك حقًا حصولك على النسخة الاحتياطية الفعلية. حسنًا ، في بعض الأحيان يحدث أن يتم تحميل الخوادم بحيث يصعب الوصول إليها. لدينا بعض العملاء عصا واجهة شبكة منفصلة. في بعض الأحيان هناك حد أدنى من وقت التحميل. كما أنها جيدة عندما يمكننا تحديد الحمل على الشبكة عند إنشاء نسخة احتياطية. يتيح لك ذلك إجراء pg_basebackup و barman و BART و wal-e و wal-g.
  • ضغط على الطاير. هذا هو السؤال عن المبلغ الذي سنرسله عبر الشبكة. إذا تمكنا من ضغط الملف قبل إرساله إلى المستودع ، فهذا أمر جيد في الحال. ويمكن للجميع فعل ذلك تقريبًا ، هنا. الشيء الرئيسي هو الإشارة إلى مستوى الضغط هناك.


إمكانية الخدمة ، ما هو المثير للاهتمام هنا لأنظمة النسخ الاحتياطي؟


  • CLI — , , , , . , CLI, , , . , , .
  • barman, pgbackrest BART, . , 20-30 , , , , backup- . , , .
  • – , , backup-, , backup-. , - . . .
  • – backup-, , - . , , . , , , , wal , , . wal-e, wal-g, , backup - . 7 backup .


backup. , backup, backup , , . , . , . . stage . , , backup . CLI , backup .


, , . , backup . , . , . , . . checksum PostgreSQL. , checksum PostgreSQL. checksum, .


pgbackrest pg_probackup backup , checksum. checksum.


, backup, checksum , , checksum . .



روابط مفيدة:



. , . , .



: , backup , , , . , , backup. , , - , , , , , , . - ?


: , , . . . - , , backup , , , . , . , , , , , , / . , , . , . , . , .


: , , ? .


: . 4 . . . backup. . , .


: ?


: . . wal-e, wal-g, pgbackrest. borman, pg_dump, basebackup. , , . .


: , - PostgreSQL, , , postgis - -?


: , backup , . checksum , PostgreSQL checksum, , . postgis, - . Pg_dump , , , SQL . SQL . . , , . dump, .


: , . , - ?


: . dump , . , – , , - , , . , . , - , .


: , , , bloat ?


: .


: — , - . , Symantec, Veritas Backup Exec . PostgreSQL?


: , , . PostgreSQL , pg_start_backup. , . .


: , - Symantec, Veritas Backup Exec .


: .


: , , . checksum - , , - ?


: — . stage , . stage . . . , -, . . .


: , WAL , S3. wal-e, wal-g - awscli . ?


( ): wal-g. wal-g. 40 wal-g . . , . , prefetch, wal , . , — , wal. wal , page cache , , wal, , . , .


: . , PostgreSQL — -> /dev/null, , . , . smoke . amcheck , . , , , .


: 10 . . . . wal — . ?


: . . . , .


: , pg_dump, . ?


: - . , .


: , , - ?


: pg_dump , .


: pg_dump, , , , , .


: , -, .


: , .


: , - .


: . . . . , , . . Pg_dump , - , exit_code . , , . , .


PS №1 pg_dump, pg_basebackup.


barmanwal-ewal-gpg_probackuppgbackrestBART
ssh (rsync, scp)++
++++++
S3+++
Azure++
Google Cloud++
+++++
++
++
barmanwal-ewal-gpg_probackuppgbackrestBART
++
+
-++++++
+++++
نقطة في الوقت الانتعاش++++++
تعديل حمل الشبكة+++
على ذبابة ضغط+++++
CLI++++++
خادم مخصص+++
ساقوول الإلكترونيةوول زpg_probackuppgbackrestبارت
تخزين النسخ الاحتياطي منظم++++++
سياسات الاحتفاظ+كرونكرون+++
CLI للرصد++++++
صلاحية إكمال النسخ الاحتياطي++++++
اختباري postgresql++

ملاحظة رقم 2: أخطاء ، تصحيحات بموجب المادة ، يمكن إجراء إضافات إلى الجدول المحوري من خلال طلب السحب


PS # 3 Wal-g ترحب بالمتطوعين للمساعدة في الوثائق.


ملاحظة رقم 4 لتثبيت wal-g باستخدام rpm ، يمكنك استخدام مستودع التخزين الخاص بي: Github ، Fedora COPR .


ملاحظة رقم 5: كيفية عمل نسخة احتياطية كاملة وتدريجية احتياطية في إنشاء وتخزين في S3 ، وحفظ النسخ الاحتياطي الكامل فقط على الشريط؟ إذا كان لديك أفكار ، قل لي في التعليقات أو في PM.



مسح: ما هي أدوات النسخ الاحتياطي التي تستخدمها؟


PS رقم 6 قناة برقية PostgreSQL: https://t.me/pgsql

Source: https://habr.com/ru/post/ar485622/


All Articles