Thứ Năm, 27 tháng 7, 2023

Hướng dẫn sao lưu và khôi phục cơ sở dữ liệu PostgreSQL

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
  • Khôi phục cơ sở dữ liệu PostgreSQL
  • Backup các CSDL lớn
  • Backup CSDL PostgreSQL từ xa
  • Backup tự động sử dụng cronjob

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 user Postgres và chạy công cụ pg_dump như phía dưới, thay thế vietdba 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 vietdba > vietdba.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 vietdba > vietdba.dump
$ pg_dump -F t vietdba > vietdba.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 vietdbadumpdir

Để 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  vietdba<  vietdba.sql
$ pg_restore -d  vietdba vietdba.dump
$ pg_restore -d  vietdba vietdba.tar
$ pg_restore -d  vietdba vietdbadumpdir

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  vietdba| gzip >  vietdba.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 vietdbadumpdir

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 port (Ở đây là 5432)
  • -U để chỉ định database role name (bkp)
$ pg_dump -U bkp -h 10.10.20.10 -p 5432  vietdba >  vietdba.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  bkp -h 10.10.20.10  vietdba| pqsl -U bkp -h 10.10.20.30  vietdba

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 vietdba> /srv/backups/postgres/vietdba.sql
=============================
* 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

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master