PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách nâng cấp cơ sở dữ liệu postgresql từ 10 lên 12 mà không làm mất dữ liệu cho dự án mở

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)

  1. Đăng nhập với tư cách người dùng postgres
     sudo su postgres
  1. 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

  1. 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
  1. Dừng dịch vụ postgresql
     sudo systemctl stop postgresql.service
  1. 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'
  1. Chuyển sang người dùng thông thường
     exit
  1. 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
  1. Bắt đầu dịch vụ postgresql
     sudo systemctl start postgresql.service
  1. Đăng nhập với tư cách người dùng postgres
     sudo su postgres
  1. Kiểm tra phiên bản postgres mới của bạn
     psql -c "SELECT version();"
  1. Chạy tập lệnh cụm mới đã tạo
     ./analyze_new_cluster.sh
  1. 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
  1. 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách giải mã nhật ký lỗi PostgreSQL

  2. Cách chuyển đổi chuỗi thành ngày trong PostgreSQL

  3. Lấy tên tháng ngắn trong PostgreSQL

  4. Làm thế nào để làm mới các thực thể JPA khi cơ sở dữ liệu phụ trợ thay đổi không đồng bộ?

  5. Bí danh tham chiếu trong mệnh đề WHERE