Nếu bạn đang sử dụng PostgreSQL, việc đảm bảo an toàn cho dữ liệu người dùng của bạn là một ưu tiên hàng đầu. Một cách quan trọng để làm điều đó là thường xuyên sao lưu cơ sở dữ liệu của bạn. Điều này đảm bảo rằng bạn có thể nhanh chóng khôi phục hệ thống của mình trong trường hợp cơ sở dữ liệu bị lỗi hoặc mất dữ liệu.
PostgreSQL cung cấp các công cụ mạnh mẽ và dễ sử dụng để thực hiện việc sao lưu và khôi phục dữ liệu. Trong bài viết này, chúng ta cùng ngiên cứu cách thực hiện sao lưu (backup) và khôi phục (restore) cơ sở dữ liệu PostgreSQL phiên bản 10.
Nếu là người mới bắt đầu tìm hiểu về PostgreSQL thì các bạn có thể tham khảo bài viết: Hướng dẫn cài đặt PostgreSQL 10, để có cái nhìn tổng quan về hệ quản trị CSDL này.
1. Backup PostgreSQL Database
PostgreSQL cung cấp cho chúng ta công cụ pg_dump để thực hiện backup database dễ dàng.
Đầu tiên các bạn login vào tài khoản postgres (Tài khoản quản lý mặc định của PostgreSQL)
su - postgres
Sử dụng command sau để sao lưu
pg_dump vinasupport_com > /opt/backup/vinasupport_com.bak
Trong ví dụ trên, mình thực hiện backup database có tên là “vinascript_com“, và lưu tại đường dẫn /opt/backup/vinascript_com.bak
2. Khôi phục PostgreSQL Database
Để khôi phục một database từ file backup .bak của PostgreSQL, các bạn sử dụng command sau:
psql vinascript_com < /opt/backup/vinascript_com.bak
3. Backup PostgreSQL Database trên một remote server.
Nếu như bạn muốn backup một PostgreSQL Database từ một remote server về local của bạn, các bạn chỉ định thêm 2 tham số -h <server_ip> và -p <server_port>
pg_dump -h 172.20.109.100 -p 5432 dbname > dbname.bak
4. Backup và sao lưu toàn bộ database của PostgreSQL
Để backup toàn bộ database của PostgreSQL, các bạn sử dụng công cụ pg_dumpall của PostgreSQL
pg_dumpall > all_pgdb_backup.bak
Để khôi phục toàn bộ database
psql -f all_pgdb_backup.bak postgres
5. Back và sao lưu sử dụng pg_dump và pg_restore
Để sử dụng pg_restore chúng ta cần cài Postgresql Client Tool
sudo apt -y instal postgresql-client
Backup:
pg_dump -U username -f backup.dump database_name -Fc
Restore đơn giản bằng:
pg_restore -d database_name -U username -C backup.dump