A) Đầu tiên hãy tạo bản sao lưu của tất cả cơ sở dữ liệu cho điều đó (Bạn có thể tiếp tục từ B nếu bạn không cần bản sao lưu)
- Đăng nhập với tư cách người dùng postgres
sudo su postgres
- Tạo tệp .sql sao lưu cho tất cả dữ liệu bạn có trong tất cả các cơ sở dữ liệu
pg_dumpall > backup.sql
B) Nâng cấp lên PostgreSQL12
- cập nhật các gói và cài đặt postgres 12
sudo apt-get update
sudo apt-get install postgresql-12 postgresql-server-dev-12
- Dừng dịch vụ postgresql
sudo systemctl stop postgresql.service
- di chuyển dữ liệu
/usr/lib/postgresql/12/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/10/main \
--new-datadir=/var/lib/postgresql/12/main \
--old-bindir=/usr/lib/postgresql/10/bin \
--new-bindir=/usr/lib/postgresql/12/bin \
--old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
--new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'
- Chuyển sang người dùng thông thường
exit
- Hoán đổi các cổng phiên bản postgres cũ và mới.
sudo vim /etc/postgresql/12/main/postgresql.conf
#change port to 5432
sudo vim /etc/postgresql/10/main/postgresql.conf
#change port to 5433
- Bắt đầu dịch vụ postgresql
sudo systemctl start postgresql.service
- Đăng nhập với tư cách người dùng postgres
sudo su postgres
- Kiểm tra phiên bản postgres mới của bạn
psql -c "SELECT version();"
- Chạy tập lệnh cụm mới đã tạo
./analyze_new_cluster.sh
- Trở lại với tư cách là người dùng bình thường (người dùng mặc định) và dọn dẹp mớ hỗn độn của phiên bản cũ
sudo apt-get remove postgresql-10 postgresql-server-dev-10
#uninstalls postgres packages
sudo rm -rf /etc/postgresql/10/
#removes the old postgresql directory
sudo su postgres
#login as postgres user
./delete_old_cluster.sh
#delete the old cluster data
- Congrads! Phiên bản postgresql của bạn hiện đã được nâng cấp, Nếu mọi thứ hoạt động tốt ở B, chúng tôi không phải áp dụng sao lưu vì chúng tôi đã di chuyển dữ liệu từ phiên bản cũ hơn sang phiên bản mới hơn, việc sao lưu dự phòng nếu có sự cố.
LƯU Ý: Thay đổi postgresql.conf và pg_hba.conf theo yêu cầu của bạn
Tái bút :Vui lòng bình luận các vấn đề, đề xuất của bạn hoặc bất kỳ sửa đổi nào khác mà bạn muốn đề xuất