Hướng dẫn Backup và Restore PostgreSQL

Hướng dẫn Backup và Restore PostgreSQL

Backup và Restore Database là việc vô cùng cần thiết trong quá trình quản trị. Khi DB bị​​ lỗi ít nhất cũng còn 1 chỗ​​ để​​ bấu víu vào​​ 

A./ Backup​​ và Restore PostgreSQL dạng file text (nên sử​​ dụng)

1./ Backup PostgreSQL

#tạo folder lưu trữ​​ backup và chown quyền

mkdir -p /opt/backup/DB/

chown -R postgres:postgres /opt/backup/DB/

#chuyển sang user postgres

su - postgres

# backup database​​ gitlab_production​​ đến file /opt/backup/DB/gitlab_production02.sql

pg_dump gitlab_production > /opt/backup/DB/gitlab_production.sql -h 127.0.0.1 -p 5432

# hoặc dùng lệnh sau:

pg_dump gitlab_production -f /opt/backup/DB/gitlab_production.sql -h 127.0.0.1 -p 5432

2./ Restore​​ PostgreSQL

# để​​ restore sử​​ dụng lệnh sau

psql gitlab_production < /opt/backup/DB/gitlab_production.sql -h 127.0.0.1 -p 5432

Lệnh trên cũng có thể​​ ghi đè (overide) DB khi restore

B./ Backup ​​ và Restore PostgreSQL dạng nén file tar

1./ Backup PostgreSQL dạng tar

pg_dump -U db_user -W -F t db_name > /path/to/your/file/dump_name.tar

2./ Restore PostgreSQL dạng tar

psql -U db_user db_name <​​ dump_name.sql

hoặc

pg_restore -d db_name /path/to/your/file/dump_name.tar -c -U db_user

3./​​ Các bước Restore PostgreSQL dạng nén Tar​​ cách khác

Bước 1:​​ Restore

Giải nén file​​ 

tar -xzvf dump_name.tar

Sau khi giải nén xong sẽ được thư mục

folder-after-extract-db

/opt/postgres/bin/pg_restore -Fd -j $(cat /proc/cpuinfo | grep Xeon | wc -l) --dbname='db_name_new' --host localhost --port 5432 --verbose "/where-store-db/folder-after-extract-db]"

option -j để lấy ra thông số lượng cpu để restore nhiều số lượng job cùng lúc

-j, --jobs=NUM  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ use this many parallel jobs to restore

Nếu thấy có Error trong quá trình restore có thể bỏ qua vì DB vẫn được restore đầy đủ.

Bước 2: Phân quyền

GRANT​​ ALL on DATABASE​​ db_name_new​​ to​​ db_user;

\c db_name_new

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO​​ db_user;

Lưu ý:

Mình có test backup dạng nén tar và dạng text thì không thấy sự​​ khác biệt về​​ dung lượng và thời gian backup. Và việc backup dạng text khi restore thì không thấy​​ bị​​ lỗi, với dạng nén tar thì khi restore có lỗi. vì vậy lời khuyên là sử​​ dụng backup dạng text.

 

Cảm ơn các bạn đã theo dõi!

 

BÀI VIẾT CÙNG CHUYÊN MỤC

Hướng dẫn nâng cấp GitLab EE 19.2.4 lên 19.3.2 an toàn trên Ubuntu 24.04
Hướng dẫn nâng cấp GitLab EE 19.2.4 lên 19.3.2 an toàn ...

Hướng dẫn nâng cấp GitLab EE 19.2.4 lên 19.3.2 an toàn trên Ubuntu 24.04

Mẫu nhúng HTML cho khóa học – Course trên Canvas LMS tại CloudX
Mẫu nhúng HTML cho khóa học – Course trên Canvas LMS ...

Mẫu nhúng HTML cho khóa học – Course trên Canvas LMS tại CloudX

Telegram biến mất khỏi App Store: Người dùng iPhone tải và cài đặt thế nào cho an toàn?
Telegram biến mất khỏi App Store: Người dùng iPhone ...

Telegram biến mất khỏi App Store: Người dùng iPhone tải và cài đặt thế nào cho ...

CẢNH BÁO BẢO MẬT: Lỗ Hổng Nghiêm Trọng CVE-2026-42533 Trên NGINX – Cập Nhật Ngay Để Tránh Rủi Ro Bị Tấn Công
CẢNH BÁO BẢO MẬT: Lỗ Hổng Nghiêm Trọng CVE-2026-42533 ...

CẢNH BÁO BẢO MẬT: Lỗ Hổng Nghiêm Trọng CVE-2026-42533 Trên NGINX – Cập Nhật ...

BACKUP DỮ LIỆU LỚN TỪ LINUX UBUNTU 24.04 LTS LÊN GOOGLE DRIVE AN TOÀN, TỐI ƯU BĂNG THÔNG
BACKUP DỮ LIỆU LỚN TỪ LINUX UBUNTU 24.04 LTS LÊN ...

BACKUP DỮ LIỆU LỚN TỪ LINUX UBUNTU 24.04 LTS LÊN GOOGLE DRIVE AN TOÀN, TỐI ƯU ...

Top 5 hệ thống LMS tốt nhất năm 2026 – Giải pháp quản lý học tập hiện đại cho trường học và doanh nghiệp
Top 5 hệ thống LMS tốt nhất năm 2026 – Giải pháp quản ...

Top 5 hệ thống LMS tốt nhất năm 2026 – Giải pháp quản lý học tập hiện đại cho ...