نصائح تقنية: كيف يمكنني نسخ قاعدة بيانات Postgres احتياطيًا واستعادتها؟

كران سينغ

19‏/06‏/2013

البريد الإلكتروني

1 min read

نصائح تقنية: كيف يمكنني نسخ قاعدة بيانات Postgres احتياطيًا واستعادتها؟

كران سينغ

19‏/06‏/2013

البريد الإلكتروني

1 min read

نصائح تقنية: كيف يمكنني نسخ قاعدة بيانات Postgres احتياطيًا واستعادتها؟

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

أولاً، إخلاء مسؤولية. يوفر هذا المنشور دليلًا عامًا حول كيفية النسخ الاحتياطي لجدول قاعدة بيانات Postgres. الأمثلة المقدمة لا تشير إلى أي جدول أو قاعدة بيانات محددة. إذا كنت تحاول نسخ جدول محدد احتياطيًا، يجب عليك أيضًا نسخ الجداول التي تشير إلى الجداول الأصلية احتياطيًا. بما أن Postgres هو قاعدة بيانات علائقية، فسيكون هناك دائمًا مراجع بين عدد من الجداول.




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

تفريغ SQL/pg_dump:

الفكرة وراء طريقة SQL-dump هي إنشاء ملف نصي يحتوي على أوامر SQL تعمل عند إعادتها إلى الخادم على إعادة إنشاء قاعدة البيانات في نفس الحالة التي كانت عليها في وقت الإنشاء. يوفر PostgreSQL البرنامج المساعد pg_dump لهذا الغرض.




pg_dump هو أداة فعالة وشاملة لأخذ نسخ احتياطية من قاعدة بيانات Postgres واستخدام النسخ الاحتياطية لاستعادة قاعدة البيانات. ولكنه ليس محصورًا فقط في قاعدة البيانات. يمكننا استخدام pg_dump لنسخ الجداول احتياطيًا ثم استخدامها لاستعادة الجداول الفردية أيضًا. باستخدام pg_dump يمكنك نسخ قاعدة البيانات المحلية احتياطيًا واستعادتها على قاعدة بيانات عن بُعد.

كيفية النسخ الاحتياطي لقاعدة بيانات Postgres:

نسخ احتياطي لجدول Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

الأمر أعلاه هو مثال على كيفية عمل نسخة احتياطية لجدول محدد من قاعدة بيانات Postgres. باستخدام الأمر أعلاه، نقوم بعمل نسخة احتياطية للجدول ‘orgs’ في مخطط ‘maincontrol’  من قاعدة البيانات ‘pe’ إلى ملف ms_table.sql. لعمل نسخة احتياطية لجدول محدد، استخدم الخيار –table TABLENAME في الأمر pg_dump. إذا كانت هناك أسماء جداول متشابهة في مخططات مختلفة فاستخدم الخيار –schema SCHEMANAME.

  1. نسخ احتياطي لقاعدة بيانات Postgres محددة :

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    هذا مثال لعمل نسخة احتياطية لقاعدة بيانات Postgres محددة. باستخدام الأمر أعلاه، نقوم بعمل نسخة احتياطية لقاعدة بيانات Message Central ‘pe’ في ملف pe_dump.sql. يحتوي ملف النسخ الاحتياطي على أوامر إنشاء الجدول وتعديل الجدول ونسخ لجميع الجداول في قاعدة البيانات ‘pe’.

  2. نسخ احتياطي لجميع قواعد بيانات Postgres :

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    يمكنك عمل نسخة احتياطية لجميع قواعد البيانات باستخدام الأمر pg_dumpall. الأمر أعلاه سينشئ نسخة لجميع قواعد البيانات الموجودة على مثيل Postgres الذي يعمل على خادم معين. لعرض جميع قواعد البيانات التي تم عمل نسخة احتياطية لها، استخدم الأمر grep “^[\]connect” all.sql.

نسخ احتياطي لجدول Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

الأمر أعلاه هو مثال على كيفية عمل نسخة احتياطية لجدول محدد من قاعدة بيانات Postgres. باستخدام الأمر أعلاه، نقوم بعمل نسخة احتياطية للجدول ‘orgs’ في مخطط ‘maincontrol’  من قاعدة البيانات ‘pe’ إلى ملف ms_table.sql. لعمل نسخة احتياطية لجدول محدد، استخدم الخيار –table TABLENAME في الأمر pg_dump. إذا كانت هناك أسماء جداول متشابهة في مخططات مختلفة فاستخدم الخيار –schema SCHEMANAME.

  1. نسخ احتياطي لقاعدة بيانات Postgres محددة :

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    هذا مثال لعمل نسخة احتياطية لقاعدة بيانات Postgres محددة. باستخدام الأمر أعلاه، نقوم بعمل نسخة احتياطية لقاعدة بيانات Message Central ‘pe’ في ملف pe_dump.sql. يحتوي ملف النسخ الاحتياطي على أوامر إنشاء الجدول وتعديل الجدول ونسخ لجميع الجداول في قاعدة البيانات ‘pe’.

  2. نسخ احتياطي لجميع قواعد بيانات Postgres :

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    يمكنك عمل نسخة احتياطية لجميع قواعد البيانات باستخدام الأمر pg_dumpall. الأمر أعلاه سينشئ نسخة لجميع قواعد البيانات الموجودة على مثيل Postgres الذي يعمل على خادم معين. لعرض جميع قواعد البيانات التي تم عمل نسخة احتياطية لها، استخدم الأمر grep “^[\]connect” all.sql.

نسخ احتياطي لجدول Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

الأمر أعلاه هو مثال على كيفية عمل نسخة احتياطية لجدول محدد من قاعدة بيانات Postgres. باستخدام الأمر أعلاه، نقوم بعمل نسخة احتياطية للجدول ‘orgs’ في مخطط ‘maincontrol’  من قاعدة البيانات ‘pe’ إلى ملف ms_table.sql. لعمل نسخة احتياطية لجدول محدد، استخدم الخيار –table TABLENAME في الأمر pg_dump. إذا كانت هناك أسماء جداول متشابهة في مخططات مختلفة فاستخدم الخيار –schema SCHEMANAME.

  1. نسخ احتياطي لقاعدة بيانات Postgres محددة :

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    هذا مثال لعمل نسخة احتياطية لقاعدة بيانات Postgres محددة. باستخدام الأمر أعلاه، نقوم بعمل نسخة احتياطية لقاعدة بيانات Message Central ‘pe’ في ملف pe_dump.sql. يحتوي ملف النسخ الاحتياطي على أوامر إنشاء الجدول وتعديل الجدول ونسخ لجميع الجداول في قاعدة البيانات ‘pe’.

  2. نسخ احتياطي لجميع قواعد بيانات Postgres :

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    يمكنك عمل نسخة احتياطية لجميع قواعد البيانات باستخدام الأمر pg_dumpall. الأمر أعلاه سينشئ نسخة لجميع قواعد البيانات الموجودة على مثيل Postgres الذي يعمل على خادم معين. لعرض جميع قواعد البيانات التي تم عمل نسخة احتياطية لها، استخدم الأمر grep “^[\]connect” all.sql.

كيفية استعادة قاعدة بيانات Postgres

  1. استعادة جدول PostgreSQL :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe

    الأمر أعلاه سيقوم بتثبيت الجدول الذي تم نسخه احتياطيًا في ملف ms_table.sql إلى قاعدة البيانات 'pe'. تأكد من أن هذا الجدول لا يوجد بالفعل حتى لا تواجه مجموعة من الأخطاء 'الموجودة بالفعل'. هذا الأمر ينشئ الجدول ويصدر جميع البيانات إلى الجدول الجديد.

  2. استعادة قاعدة بيانات PostgreSQL :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql

    مشابه لاستعادة الجدول، يمكننا استخدام الأمر أعلاه لاستعادة قاعدة البيانات بالكامل. هنا نقوم باستعادة قاعدة البيانات 'pe' باستخدام الملف pe_dump.sql الذي أنشأناه أثناء نسخة احتياطية للقاعدة في قسم النسخ الاحتياطي أعلاه.

  3. استعادة جميع قواعد البيانات :

    $ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql

    استعادة جميع قواعد البيانات باستخدام الأمر أعلاه. 'all_dump.sql' كان الملف الذي تم إنشاؤه باستخدام pg_dumpall. الأمر أعلاه سيعطينا جميع قواعد بيانات PostgreSQL في نفس الحالة التي كانت عليها عندما تم أخذ نسخة احتياطية منها من خادم قاعدة البيانات الأصلي.

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

R

وصول

G

نمو

م

إدارة

A

أتمتة

النشرة الإخبارية

ابقَ على اطلاع مع Bird من خلال التحديثات الأسبوعية إلى بريدك الوارد.