Trong bài này mình sẽ hướng dẫn cách backup và restore PostgreSQL Database trên VPS / Server Linux. Đây là hai thao tác cần thiết khi bạn quản trị dữ liệu của website.
Mọi thao tác mà mình hướng dẫn dưới đây đều thông qua command line, vì vậy bạn phải có kiến thức về quản trị VPS, cũng như biết cách đăng nhập vào VPS. Bạn có thể tham khảo một số bài viết dưới đây.
- Cách dùng phần mềm PuTTY để quản lý VPS
- Hướng dẫn truy cập vào VPS
Ok, ta bắt đầu bằng thao tác backup trước nhé.
Mục lục
- 1. Cách Backup PostgreSQL Database
- Backup thành file txt thuần SQL
- Backup thành file tùy chỉnh
- Backup tất cả database
- Backup database lớn
- 2. Cách Restore PostgreSQL Database
- 3. Backup bằng cách remote vào PostgreSQL Database
- 4. Tự động backup PostgreSQL Database bằng Cron Job
1. Cách Backup PostgreSQL Database
PostgreSQL cung cấp công cụ pg_dump
để giúp bạn backup database. Nó tạo ra một file database ở định dạng SQL nên dễ dàng khôi phục bằng các công cụ restore sql như PHPMyAdmin.
Bài viết này được đăng tại tranvanbinh.vn
Backup thành file txt thuần SQL
Để backup PostgreSQL Database thì trước tiên hãy đăng nhập bằng tài khoản có quyền truy cập server, sau đó chuyển sang dùng tài khoản Postgres và chạy lệnh pg_dump
như sau (thay thế freetutsdb bằng tên của cơ sở dữ liệu bạn muốn backup).
1 | $ pg_dump freetutsdb > freetutsdb.sql |
Kết quả backup là một file sql chứa những câu lệnh T-SQL.
Backup thành file tùy chỉnh
Lệnh pg_dump cho phép bạn tùy chọn kiểu định dạng cho file database backup.
1 2 3 | $ pg_dump -F c freetutsdb > freetutsdb.dump OR $ pg_dump -F t freetutsdb > freetutsdb.tar |
Tùy chọn -F
dùng để khai báo sử dụng tùy chọn định dạng trả về, c
là file sẽ lưu trữ ở dạng tùy theo ý bạn, t
là lưu trữ ở dạng tar. Tất cả các định dạng này đều có thể sử dụng để phục hồi với lệnh pg_restore.
Để tùy chỉnh định dạng file backup ở dạng thư mục thì bạn thêm cờ -f
.
1 | $ pg_dump -F d freetutsdb -f tecmintdumpdir |
Backup tất cả database
Để backup tất cả PostgreSQL databases thì dùng lệnh pg_dumpall.
1 | $ pg_dumpall > all_pg_dbs.sql |
Backup database lớn
Nếu database của bạn cực lớn thì nên backup kết hợp với công cụ nén gzip hoặc một công cụ nén nào đó mà bạn thích. Dưới đây là ví dụ mình sử dụng công cụ gzip.
1 | $ pg_dump freetutsdb | gzip > freetutsdb.gz |
2. Cách Restore PostgreSQL Database
Để restore PostgreSQL Database thì bạn có thể sử dụng lệnh psql hoặc pg_restore.
- Lệnh psql được sử dụng để khôi phục các file text được tạo bởi pg_dump, tức là file backup SQL thuần.
- Lệnh pg_restore được sử dụng để khôi phục cơ sở dữ liệu PostgreSQL do pg_dump tạo ra ở định dạng tùy chỉnh.
Dưới đây là một ví dụ về cách restore file văn bản thuần túy:
1 | $ psql freetutsdb < freetutsdb.sql |
Còn đối với định dạng tùy chỉnh thì ta sử dụng lệnh pg_restore.
1 2 3 4 5 | $ pg_restore -d freetutsdb freetutsdb.dump OR $ pg_restore -d freetutsdb freetutsdb.tar OR $ pg_restore -d freetutsdb tecmintdumpdir |
3. Backup bằng cách remote vào PostgreSQL Database
pg_dump là một công cụ backup chạy ở client, và nó có hỗ trợ cho việc backup từ xa thông qua remote địa chỉ IP. Xem ví dụ dưới đây.
1 | $ pg_dump -U tecmint -h 10.10.20.10 -p 5432 freetutsdb > freetutsdb.sql |
- Tham số -h chỉ định địa chỉ của máy chủ
- Tham số -p chỉ định port kết nối
- Tham số -U chỉ định tên user quản trị database
Bạn phải đảm bảo rằng người dùng remote có đủ các quyền để truy cập vào database đó, nếu không bạn sẽ nhận được lỗi như sau:
Ngoài ra, bạn cũng có thể dumb một database từ máy chủ này sang máy chủ khác bằng cách sử dụng cú pháp sau.
1 | $ pg_dump -U tecmint -h 10.10.20.10 freetutsdb | pqsl -U tecmint -h 10.10.20.30 freetutsdb |
Giải thích các tham số tương tự như trên.
4. Tự động backup PostgreSQL Database bằng Cron Job
Cron job là công cụ giúp thiết lập hẹn giờ chạy một chức năng nào đó.
Đầu tiên bạn cần tạo một thư mục backup.
1 | $ mkdir -p /srv/backups/databases |
Tiếp theo, chạy lệnh dưới đây để bắt đầu tạo một cron job.
1 | $ crontab -e |
Tiếp theo chạy lệnh dưới đây để tạo một lịch trình backup vào lúc 0h sáng mỗi ngày.
1 | 0 0 * * * pg_dump -U postgres freetutsdb > /srv/backups/postgres/freetutsdb.sql |
Cuối cùng lưu file và Exit.
Vậy là xong, qua bài này bạn đã biết cách tạo backup và restore PostgreSQL Database trên Linux Server rồi đấy. Chúc bạn thành công.
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty