Cách backup PostgreSQL database

Bằng cách sao lưu cơ sở dữ liệu của bạn thường xuyên hoặc tự động sao lưu nó bằng tác vụ cron, bạn sẽ 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 của bạn bị mất hoặc gặp sự cố. May mắn thay, PostgreSQL đã bao gồm các công cụ để làm cho nhiệm vụ này trở nên đơn giản và dễ quản lý.

Sao lưu thủ công

Cơ sở dữ liệu duy nhất

PostgreSQL cung cấp tiện ích pg_dump để đơn giản hóa việc sao lưu cơ sở dữ liệu. Lệnh này phải được chạy với người dùng có quyền truy cập đọc vào cơ sở dữ liệu mà bạn định sao lưu.

Truy cập với người dùng postgres:

su – postgres

Đưa nội dung của cơ sở dữ liệu vào một File bằng cách chạy lệnh sau. Thay thế dbname bằng tên của cơ sở dữ liệu sẽ được sao lưu.

pg_dump dbname> dbname.bak

File kết quả sao lưu, dbname.bak, có thể được chuyển sang máy chủ khác thông qua lệnh scp hoặc được lưu trữ cục bộ để sử dụng sau này.

Để chứng minh khả năng khôi phục dữ liệu bị mất, bạn có thể thử xóa cơ sở dữ liệu mẫu của mình và tạo cơ sở dữ liệu trống ở vị trí của nó:

Mình nghĩ bạn cần xem =>  Firmware là gì? Firmware được lưu trữ ở đâu?

dropdb dbname

createb dbname

Khôi phục cơ sở dữ liệu bằng lệnh psql

kiểm tra psql

Một số tùy chọn cho định dạng File sao lưu:

* .bak: định dạng nén nhị phân

* .sql: plaintext

* .tar: tarball

Cơ sở dữ liệu từ xa

Cũng giống như psql cho phép bạn kết nối với máy chủ từ xa, pg_dump có thể được chạy từ máy khách để sao lưu dữ liệu trên máy chủ từ xa. Sử dụng tùy chọn -h để chỉ định địa chỉ IP của máy chủ từ xa của bạn và -p để xác định cổng PostgreSQL đang lắng nghe:

pg_dump -h 198.51.100.0 -p 5432 dbname> dbname.bak

Tất cả cơ sở dữ liệu

Vì pg_dump chỉ tạo một bản sao lưu của một cơ sở dữ liệu tại một thời điểm, nên nó không lưu trữ thông tin về các vai trò cơ sở dữ liệu khác hoặc cấu hình toàn cụm. Để lưu trữ thông tin này và sao lưu đồng thời tất cả cơ sở dữ liệu của bạn, bạn có thể sử dụng pg_dumpall.

Tạo File sao lưu:

pg_dumpall> pg_backup.bak

Khôi phục tất cả cơ sở dữ liệu từ bản sao lưu:

psql -f pg_backup.bak postgres

Sao lưu tự động với Crontab

Bạn có thể muốn thiết lập một cronjob để cơ sở dữ liệu của bạn sẽ được tự động sao lưu định kỳ. Các bước trong phần này đưa ra một ví dụ về việc thiết lập một tác vụ cron sẽ chạy pg_dump một lần một tuần.

Mình nghĩ bạn cần xem =>  Tổng quan về VPN client to site và VPN site to site

Truy cập với người dùng postgres:

su – postgres

Tạo một thư mục để lưu trữ các bản sao lưu tự động:

mkdir -p ~ / postgres / backup

Chỉnh sửa crontab để tạo một cronjob mới:

crontab -e

Thêm dòng sau vào cuối File crontab:

0 0 * * 0 pg_dump -U postgres dbname> ~ / postgres / backup / dbname.bak

Lưu và thoát khỏi trình chỉnh sửa. Cơ sở dữ liệu của bạn sẽ được sao lưu vào lúc 0 giờ Chủ nhật hàng tuần. Để thay đổi thời gian hoặc tần suất cập nhật, hãy tìm hiểu thêm về crontab.

✤ Top 20 bài viết Tổng Hợp mới nhất :

Mình nghĩ bạn cần xem =>  Storage server là gì? Tìm hiểu tổng quan về máy chủ lưu trữ

Xem thêm nhiều Tổng Hợp mới hay

Leave A Reply

Your email address will not be published.