Thứ Tư, 27 tháng 1, 2021

Thủ tục 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. 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ý.

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.

==================================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 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: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Đị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

#học oracle database
#Oracle Database Administration
#Oracle Tutorial
#Oracle DBA
#tự học oracle
#oca
#ocp

ĐỌC NHIỀU

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