Hướng dẫn từng bước
-
Tạo bản sao lưu . Đảm bảo rằng cơ sở dữ liệu của bạn không được cập nhật.
pg_dumpall > outputfile
-
Cài đặt Postgres 10 . Làm theo hướng dẫn trên trang này:https://www.postgresql.org/download/linux/ubuntu/
Sau đó chạy
sudo apt-get install postgresql-10
. Phiên bản mới hơn sẽ được cài đặt song song với phiên bản trước đó. -
Chạy
pg_lsclusters
:Ver Cluster Port Status Owner Data directory Log file 9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5433 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
Đã có một cụm
main
cho 10 (vì điều này được tạo theo mặc định khi cài đặt gói). Điều này được thực hiện để cài đặt mới hoạt động ngay lập tức mà không cần phải tạo cụm trước, nhưng tất nhiên nó xung đột khi bạn cố gắng nâng cấp9.6/main
khi10/main
cũng tồn tại. Quy trình được khuyến nghị là loại bỏ cụm 10 vớipg_dropcluster
và sau đó nâng cấp vớipg_upgradecluster
. -
Dừng cụm 10 và thả nó:
sudo pg_dropcluster 10 main --stop
-
Dừng tất cả các quy trình và dịch vụ ghi vào cơ sở dữ liệu. Dừng cơ sở dữ liệu:
sudo systemctl stop postgresql
-
Nâng cấp cụm 9.6:
sudo pg_upgradecluster -m upgrade 9.6 main
-
Khởi động lại PostgreSQL
sudo systemctl start postgresql
-
Chạy
pg_lsclusters
. Cụm 9.6 của bạn bây giờ sẽ "ngừng hoạt động" và cụm 10 sẽ trực tuyến tại5432
:Ver Cluster Port Status Owner Data directory Log file 9.6 main 5433 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5432 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
-
Trước tiên, hãy kiểm tra xem mọi thứ có hoạt động tốt không. Sau đó, xóa cụm 9.6:
sudo pg_dropcluster 9.6 main --stop
Một số lưu ý về pg_upgradecluster
Hướng dẫn này hoạt động tốt để nâng cấp từ 9.5 lên 10.1. Khi nâng cấp từ phiên bản cũ hơn, hãy xem xét bỏ qua -m upgrade
ở bước # 6:
sudo pg_upgradecluster 9.6 main
Nếu bạn có một cụm thực sự lớn, bạn có thể sử dụng pg_upgradecluster
với --link
để nâng cấp sẽ được thực hiện. Tuy nhiên, điều này rất nguy hiểm - bạn có thể mất cụm trong trường hợp không thành công. Chỉ cần không sử dụng tùy chọn này nếu không cần thiết, vì -m upgrade
đã đủ nhanh.
Dựa trên:
- Tài liệu:Nâng cấp Cụm PostgreSQL
- Gist # 1:delameko / lift-postgres-9.5-to-9.6.md
- Gist # 2:johanndt / lift-postgres-9.3-to-9.5.md
- Điều gì sẽ xảy ra nếu tôi làm gián đoạn hoặc hủy
pg_upgradecluster
? - Trang chủ Ubuntu cho pg_upgradecluster
Cập nhật
Hướng dẫn này phù hợp để nâng cấp từ 9.6 lên 11 và từ 10 lên 11, cũng như từ 10 lên 13.