Trong môi trường phát triển, không đề cập tới việc bạn có một cơ sở dữ liệu PostgreSQL To hay nhỏ, việc sao lưu và khôi phục một cơ sở dữ liệu là một tác vụ cơ bản để trong việc quản trị cơ sở dữ liệu. Trong bài này mình sẽ hướng dẫn sao lưu và khôi phục cơ sở dữ liệu PostgreSQL
Mục lục
Sao lưu cơ sở dữ liệu PostgreSQL
PostgreSQL Cung cấp công cụ pg_dump giúp chúng ta có thể sao lưu cơ sở dữ liệu. Nó tạo ra một file ở định dạng SQL để chúng ta có thể sử dụng sau này
Để sao lưu, bạn đăng nhập vào máy chủ DB của bạn, sau đó chuyển sang tài khoản ủe Postgres và chạy công cụ pg_dump như phía dưới, thay thế cloudzonedb bằng tên Database bạn cần sao lưu. Mặc định thì định dạng xuất ra là file plain-text SQL script
$ pg_dump cloudzonedb >cloudzonedb.sql
Công cụ pg_dump cũng hỗ trợ nhiều định dạng xuất ra khác nhau. Bạn có thể chỉ định định dạng xuất ra bằng tham số -F trong đó nó sẽ nhận một trong ba giá trị sau
- Giá trị c: custom format archive
- Giá trị d: directory format archive
- Giá trị t: tar format archive
Tất cả các định dạng trên đều thích hợp để dùng với công cụ pg_restore. Các bạn có thể xem một số ví dụ sau đây
$ pg_dump -F c cloudzonedb >cloudzonedb.dump
$ pg_dump -F t cloudzonedb >cloudzonedb.tar
Để xuất ra dưới dạng thư mục, bạn sử dụng tham số -f để chỉ định một thư mục đích thay cho một file. Thư mục này sẽ được tạo bởi pg_dump nếu nó không tồn tại
$ pg_dump -F d cloudzonedb -f cloudzonedumpdir
Để backup toàn bộ các cơ sở dữ liệu trong hệ thống, bạn sẽ sử dụng công cụ pg_dumpall để sao lưu và công cụ psql để khôi phục
$ pg_dumpall > all_pg_dbs.sql
$ pgsql -f all_pg_dbs.sql postgres
Khôi phục cơ sở dữ liệu PostgreSQL
Bạn có thể sử dụng công cụ psql hoặc pg_restore
- Psql được sử dụng để khôi phục text file được tạo bởi pg_dump
- pg_restore được sử dụng để khôi phục từ các định dạng như custom, tar hoặc thư mục
Ví dụ sử dụng
$ psql cloudzonedb < cloudzonedb.sql
$ pg_restore -d cloudzonedb cloudzonedb.dump
$ pg_restore -d cloudzonedb cloudzonedb.tar
$ pg_restore -d cloudzonedb cloudzonedumpdir
Backup các CSDL lớn
Bạn có thể kết hợp giữa công cụ pg_dump kết hợp với các công cụ nén files như gzip
$ pg_dump cloudzonedb | gzip > cloudzonedb.gz
Nếu CSDL của bạn cực kì lớn, bạn có thể giới hạn number_of_jobs bằng cách sử dụng tham số -j như dưới đây
$ pg_dump -F d -j 5 -f cloudzonedumpdir
Backup CSDL PostgreSQL từ xa
Bạn sẽ sử dụng các tham số
- -h để chỉ định remote host (VD ở dây là 10.10.20.10)
- -p để chỉ định remote pỏt (Ở đây là 5432)
- -U để chỉ định database role name (cloudzone)
$ pg_dump -U cloudzone -h 10.10.20.10 -p 5432 cloudzonedb > cloudzonedb.sql
Hoàn toàn có thể dump một CSDL trực tiếp từ server này sang server khác, sử dụng công cụ pg_dump và psql như dưới đây
$ pg_dump -U cloudzone -h 10.10.20.10 cloudzonedb | pqsl -U cloudzone -h 10.10.20.30 cloudzonedb
Backup tự động sử dụng cronjob
Tạo một folder để chứa file backup
$ mkdir -p /srv/backups/databases
Tạo một Crontab mới
$ crontab -e
Ví dụ như
0 0 * * * pg_dump -U postgres cloudzonedb > /srv/backups/postgres/cloudzonedb.sql
Cloud VPS Blog Hướng dẫn Kiến thức
3 Cách kiểm tra tốc độ VPS/máy chủ Linux chi tiết nhất 2025
Khi sử dụng máy chủ ảo (VPS) hoặc máy chủ riêng (dedicated server) chạy hệ [...]
Tin Tức
THÔNG BÁO THAY ĐỔI ĐỊA CHỈ TRỤ SỞ CHÍNH (10/1/2025)
Đại Việt Số xin gửi lời cảm ơn chân thành đến Quý đối tác đã [...]
Máy chủ vật lý
4 Lợi Ích Thiết Thực Mà Máy Chủ Vật Lý Mang Lại Cho Doanh Nghiệp
Trong thời đại chuyển đổi số mạnh mẽ như hiện nay, việc đầu tư vào [...]
Giải pháp
Cách Phòng Chống DDoS Cho Website, VPS, và Server Hiệu Quả
Các cuộc tấn công DDoS (Distributed Denial of Service) là một mối đe dọa lớn [...]
Chưa được phân loại portal portal cloudzone Về Portal
Mã đăng nhập Portal Cloudzone là gì? 3 cách lấy mã đăng nhập
Ngày nay, khi công nghệ số phát triển mạnh mẽ, việc bảo mật thông tin [...]
Cloud hosting Blog
So sánh Cloud Hosting cPanel, DirectAdmin và Plesk
Khi lựa chọn dịch vụ Cloud Hosting để lưu trữ website hoặc ứng dụng, một [...]