Trong quá trình vận hành các cơ sở dữ liệu, việc sao lưu và phục hồi dữ liệu là một nhu cầu tất yếu của các nhà quản trị Cơ sở dữ liệu (Database Administrator - DBA). Hôm nay, tôi sẽ viết bài hướng dẫn cách sao lưu và phục hồi dữ liệu đối với Hệ Quản trị Cơ sở dữ liệu PostgreSQL.
Giả định:
- Phiên bản CSDL: PostgreSQL 9.2.x
- Đường dẫn (Path) đến các trình client (pg_dump, psql, v.v.) của PostgreSQL là:
/usr/local/pgsql/bin
. Nếu bạn cài đặt và cấu hình PostgreSQL như Hướng dẫn biên dịch và cài đặt PostgreSQL 9.2.x trên Ubuntu 12.04 LTS thì nội dung dưới đây có thể áp dụng cho bạn 100% mà không cần phải điều chỉnh gì.
Sao lưu một database PostgreSQL
Giả sử chúng ta có database có tên dbtest, thực hiện sao lưu bằng cách dump vào file dbtest.dump trong thư mục /home/root2 như sau:
pg_dump -U postgres -f /home/root2/dbtest.dump dbtest
Trong trường hợp dung lượng database dbtest của bạn chứa các object lớn, bạn có thể thêm tuỳ chọn tar
pg_dump -U postgres -f /home/root2/dbtest.tar -Ft dbtest
Phục hồi dữ liệu một database PostgreSQL
psql -U postgres -d dbtest -f dbtest.dump
hoặc nếu bản sao lưu được lưu dưới dạng tar
pg_restore -U postgres -d dbtest dbtest.tar
Sao lưu một table trong một database PostgreSQL
pg_dump -Ft -d postgres -t mytable | gzip > mytable.tar.gz
Phục hồi dữ liệu một table trong một database PostgreSQL
gunzip mytable.tar.gz
pg_restore -d myotherdb /path/to/mytable.tar
Sao lưu toàn bộ các database trên server PostgreSQL vào db.out
pg_dumpall > db.out
Phục hồi toàn bộ các database trên server PostgreSQL từ một bản sao lưu db.out trước đó
psql -f db.out postgres
Sao lưu và phục hồi Cơ sở Dữ liệu PostgreSQL
Phục hồi dữ liệu PostgreSQL PostgreSQL PostgreSQL Backup PostgreSQL Restore Sao lưu PostgreSQL