ویرگول
ورودثبت نام
سعید نیب
سعید نیب
سعید نیب
سعید نیب
خواندن ۲ دقیقه·۹ ماه پیش

پشتیبان گیری بخش ۲ -pg_dump

سوییچ tکوچک یا table بکاپ گیری تنها از یک جدول

میتوان در اسم جداول از کاراکترهای خاص مثل ستاره برای بکاپ گیری از چندین جدول استفاده کرد مثل person* که از تمام جداولی که با person شروع می شود بکاپ گرفته می شود.

با سوییچ -T یا exclude--tableمشخص می کنیم که از چه جداولی بکاپ گرفته نشود مثل جداول log

pg_dump -t person* db1 > db.sql


سوییچ nکوچک مشخص می کند از چه schema بکاپ گرفته شود و سوییچ N بزرگ مشخص می کند از چه schema بکاپ گرفته نشود.

دستور زیر از تمام schema هایی که با est شروع و با gsm پایان و با west شروع و با gsm ختم شود بکاپ میگیرد به جز schemaهایی که کلمه test دارند.

pg_dump -n 'east*gsm' -n 'west*gsm' -N '*test*' db1 > db.sql


سوییچ دستور زیر با دستور بالا فرقی ندارد فقط به جای اینکه دو schema را به صورت جدا معرفی کند یکجا معرفی کرده است

pg_dump -n '(east|west)*gsm' -N '*test*' db1> db.sql


نکته ای که وجود دارد چون postgres یک دیتابیس case in setive است و به کلمات بزرگ و کوچک حساس است اگر بخواهیم در اسامی جداول یا بانک ها یا هر اسمی که حرف بزرگ دارد استفاده کنیم باید از علامت "\ استفاده کنیم مثل بکاپ گیری زیر چون اسم جدولی که قرار است بکاپ گرفته شود دارای حروف بزرگ است(MixedCaseName) از علامت "\ استفاده شده

pg_dump -t "\"MixedCaseName\"" db1> mytab.sql


اگر فیلترهایی که می خواهیم روی بکاپ بگزاریم زیاد است می توان آن ها را در یک فایل نوشته و با سوییچ filter آن را فراخوانی کرد مثلا از جدول mytable و تمامی جداولی که با table شروع می شوند به غیر از جدول table2 و log و schema test بکاپ گرفته شود. فایلی به نام filte1.txt ایجاد می کنیم که محتویاتش به صورت زیر باشد

include table mytable

include table table *

exclude table table2

exclude table log

exclude schema test

حالا با دستور زیر بکاپ می گیریم

pg_dump --filter=filter.txt db1> db.sql


سوییچ zبزرگ یا compress باعث فشرده سازی بکاپ می شودکه از 0 یعنی بدون فشرده سازی شروع و تا 9

یعنی حداکثر فشرده سازی ادامه دارد

pg_dump -t person* db1 --compress=9 -f db.sql


سوییچ a یا data-only فقط از داده ها بکاپ می گیرد و از ساختار نمی گیرد و بلعکس آن سوییچ s یا schema-only فقط از ساختار بکاپ می گیرد و از داده نمی گیرد.


سوییچ cکوچک یا clean باعث می شود ابتدا فایل بکاپ دستور drop database نیز افزاوده شود تا هنگام restore بانک قبلی را حذف کند و سوییچ Cبزرگ یا create باعث می شود ابتدای فایل بکاپ دستور create database افزوده شود تا هنگام بازگردانی بانک ابتدا ساخته شود و سپس بازگردانی داده ها و جداول و دیگر آبجکتها انجام شود.

معمولا سوییچ clear و create یکدیگر انجام می شود.


فشرده سازی
۰
۰
سعید نیب
سعید نیب
شاید از این پست‌ها خوشتان بیاید