Cách backup PostgreSQL database
Bằng cách thường xuyên sao lưu cơ sở dữ liệu của bạn hoặc tự động sao lưu 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 bị lỗi
Bằng cách thường xuyên sao lưu cơ sở dữ liệu của bạn hoặc tự động sao lưu 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 bị lỗi. May mắn thay, PostgreSQL đã bao gồm sẵn các công cụ để làm cho nhiệm vụ này trở nên đơn giản và dễ quản lý. Pho Tue Software Solutions sẽ hướng dẫn bạn cách backup PostgreSQL database.
Backup thủ công
Cơ sở dữ liệu đơn lẻ
PostgreSQL cung cấp tiện ích pg_dump để đơn giản hóa việc sao lưu một cơ sở dữ liệu. Lệnh này phải được chạy với quyền user có quyền read đối với cơ sở dữ liệu mà bạn định sao lưu.
Truy cập với user postgres:
```
su - postgres
```
Dump 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ột máy chủ khác qua lệnh scp hoặc được lưu trữ cục bộ để sử dụng sau này.
Để chứng minh việc khôi phục dữ liệu bị mất, có thể thử xóa cơ sở dữ liệu mẫu của bạn và tạo cơ sở dữ liệu trống ở vị trí của nó:
```
dropdb dbname
createdb dbname
```
Khôi phục lại cơ sở dữ liệu sử dụng lệnh psql
```
psql test < dbname.bak
```
Một số tùy chọn cho định dạng file backup:
*.bak: định dạng nén nhị phân
*.sql: plaintext
*.tar: tarball
Remote database
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ừ client để 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 remote server của bạn và -p để xác định port mà PostgreSQL đang lắng nghe:
```
pg_dump -h 198.51.100.0 -p 5432 dbname > dbname.bak
```
Tất cả cá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ó không lưu trữ thông tin về các vai trò cơ sở dữ liệu hoặc cấu hình toàn cụm khác. Để 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 backup :
```
pg_dumpall > pg_backup.bak
```
Khôi phục toàn bộ các cơ sở dữ liệu từ bản backup:
```
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 sao lưu tự động theo định kỳ. Các bước trong phần này sẽ ví dụ về việc thiết lập một tác vụ cron sẽ chạy pg_dump mỗi tuần một lần.
Truy cập với user postgres:
```
su - postgres
```
Tạo một thư mục để lưu trữ các bản backup tự động:
```
mkdir -p ~/postgres/backups
```
Chỉnh sửa crontab để tạo 1 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/backups/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 0h Chủ nhật hàng tuần. Để thay đổi thời gian hoặc tần suất của các bản cập nhật, có thể tìm hiểu thêm về crontab.
Phạm Thị Quỳnh Dung
Pho Tue SoftWare Solutions JSC là Nhà Cung cấp dịch Trung Tâm Dữ Liệu, Điện Toán Đám Mây Và Phát Triển Phần Mềm Hàng Đầu Việt Nam. Hệ Thống Data Center Đáp Ứng Mọi Nhu Cầu Với Kết Nối Internet Nhanh, Băng Thông Lớn, Uptime Lên Đến 99,99% Theo Tiêu Chuẩn TIER III-TIA 942.
Leave a comment
Your email address will not be published. Required fields are marked *