- نحوه پشتیبان گیری و بازیابی دیتابیس PostgreSQL - Developer

Blogs

نحوه پشتیبان گیری و بازیابی دیتابیس PostgreSQL

نحوه پتشیبان گیری دیتابیس(بکاپ)

برای گرفتن پشتیبان(بکاپ) از دیتابیس PostgerSQL نیاز به ابزاری به نام pg_dump هست که با استفاده از دستورات SQL یک فایل دیتابیس ایجاد و اطلاعات مورد نظر را ذخیر می کند. فایل ایجاد شده در قابل فرمتی است که دسترسی و بازیابی دیتابیس را بسیار آسان می کند.

 

نحوه بازیابابی دیتابیس

برای بازیابی دیتابیس که با استفاده از pg_dump پشتیبان گیری شده است 2 راه وجود دارد:

  1. psql برای بازیابی دیتابیسی که با فرمت plain SQL script ذخیره شده است استفاده می شود.
  2. pg_restore برای بازیابی دیتابیسی که با  بقیه فرمت ها ( tar-format- directory-format- custom-format ) ذخیر شده است استفاده می شود.

 

نحوه پیشتیان گیری دیتابیس محلی

pg_dump -U db_user -W -F t db_name > /path/to/your/file/dump_name.tar

توضیحاتی درباره دستور  بالا

  • U- مشخص می کند که کدام کاربر به سرور PostgreSQL متصل می شود.
  • W- قبل از اتصال به سرور ، pg_dump را مجبور به درخواست رمز عبور می کند.
  • F- برای تعیین فرمت فایلی که قرار است ایجاد شود استفاده می شود که می تواند شامل موارد زیر باشد:
    • p – plain-text SQL script
    • c – custom-format archive
    • d – directory-format archive
    • t – tar-format archive
  • پس از انکه اتصال به دیتابیس موفقیت آمیز بود، مسیر و نام دیتابیسی که قرار است از آن پشتیبان گرفته شود را مشخص میکنم.

به طور پیش فرض فرمت فایل ایجاد شده plain-text SQL script(t) است.

 

بازیابی دیتابیس محلی با استفاده از psql

برای بازیابی دیتابیسی که با فرمت plain SQL script ذخیر شده است از دستور زیر استفاده می کنیم:

psql -U db_user db_name < dump_name.sql(backup file)

 

بازیابی دیتابیس محلی با استفاده از pg_restore

برای بازیابی دیتابیسی که با فرمت های tar,directory and custom ذخیره شده است است از دستور زیر استفاده می کنیم:

pg_restore -d db_name /path/to/your/file/dump_name.tar -c -U db_user

 

نحوه گرفتن پشتیبان از تمام دیتبایس ها

برای گرفتن پشیتبان همه دیتابیس ها به جای pg_dump کافی است که pg_dumpall را وارد کنید و برای دیدن دیتابیس های موجود می توان از دستور  ?- pg_dump استفاده کرد.

pg_dumpall > all_pg_dbs.sql

بازیابی تمام دیتابیس

psql -f all_pg_dbs.sql postgres

نحوه گرفتن پشتیبان از دیتابیس ریموت

برای پشتیبان گیری از دیتابیس ریموت از دستور زیر استفاده می کنیم:

pg_dump -U db_user -h host_name -p port_name db_name > db_name.sql

همچنین می توان دیتابیس را مستقیماً از یک سرور به سرور دیگر انتقال داد، برای این کار از pg_dump و psql استفاده می کنیم:

pg_dump -U db_user -h source_host db_name | psql -U db_user -h destination_host db_name

بازیابی دیتابیس ریموت

pg_restore -h host_name -p port_name -d db_name -U db_user dump_name.dump

 or

psql -h host_name -p port_name -d db_name -U db_user dump_name.dump

 

نحوه گرفتن پشتیبان از یک جدول خاص

pg_dump این قابلیت را به ما می دهد که بتوانیم جدول و یا چندین جدول خاص را که مد نظرمان است رو پشیتبان گیری کنیم. برای این کار از دستور زیر استفاده می کنیم:

pg_dump --table or -t table_name -U db_user -f db_name > /path/to/your/file/dump_name.tar

دستور پشتیبان گیری از چند جدول

pg_dump --table or -t table_name -t table_name2 -t table_name3 -U db_user -f db_name > /path/to/your/file/dump_name.tar

بازیابی جدول در دیتابیس

pg_restore -t table_name -d db_name dump_name.dump

 

00

More Blog Entries

0 Comments