PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara memutakhirkan database postgresql dari 10 menjadi 12 tanpa kehilangan data untuk proyek terbuka

A) Pertama buat cadangan semua database untuk itu (Anda dapat melanjutkan dari B jika tidak memerlukan cadangan)

  1. Masuk sebagai pengguna postgres
     sudo su postgres
  1. Buat file .sql cadangan untuk semua data yang Anda miliki di semua database
    pg_dumpall > backup.sql

B) Tingkatkan ke PostgreSQL12

  1. perbarui paket dan instal postgres 12
     sudo apt-get update
     sudo apt-get install postgresql-12 postgresql-server-dev-12
  1. Hentikan layanan postgresql
     sudo systemctl stop postgresql.service
  1. memigrasikan data
     /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. Beralih ke pengguna biasa
     exit
  1. Tukar port dengan versi postgres lama dan baru.
     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. Mulai layanan postgresql
     sudo systemctl start postgresql.service
  1. Masuk sebagai pengguna postgres
     sudo su postgres
  1. Periksa versi postgres baru Anda
     psql -c "SELECT version();"
  1. Jalankan skrip cluster baru yang dihasilkan
     ./analyze_new_cluster.sh
  1. Kembali sebagai pengguna normal (pengguna default) dan bersihkan kekacauan versi lama
     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. Selamat! Versi postgresql Anda sekarang ditingkatkan, Jika semuanya berfungsi dengan baik di B, kami tidak perlu menerapkan cadangan karena kami telah memigrasikan data dari versi lama ke versi yang lebih baru, cadangan untuk berjaga-jaga jika terjadi kesalahan.

CATATAN: Ubah postgresql.conf dan pg_hba.conf sesuai kebutuhan Anda

PS :Jangan ragu untuk mengomentari masalah, saran, atau modifikasi lain yang ingin Anda sarankan



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri Postgresql di antara rentang tanggal

  2. Bagaimana cara mendapatkan min/maks dari dua bilangan bulat di Postgres/SQL?

  3. Data Besar dengan PostgreSQL dan Apache Spark

  4. Postgres - Berfungsi untuk mengembalikan persimpangan 2 ARRAY?

  5. Setara dengan unpivot() di PostgreSQL