Cara Upgrade PostgreSQL 9.3 ke PostgreSQL 11 di Ubuntu 14.04

3 min read

Database Terbaik PostgreSQL

PostgreSQL atau sering disebut dengan Postgres adalah sebuah sistem manajemen database relasional atau RDBMS (Relational Database Management System) yang memberikan sebuah implementasi bahasa query SQL. Sistem database Postgres banyak dipilih dan sangat populer digunakan di berbagai skala project dari kecil hingga besar dan kompleks, hal ini dikarenakan sistem database ini memiliki banyak fitur canggih seperti transaksi yang reliabel dan konkurensi tanpa read locks.

Salah satu project yang kami tangani sekarang ini menggunakan PostgreSQL 9.3, PHP 5.5.9 dan berjalan di atas Ubuntu 14.04.5. Komposisi ini cukup ideal bagi kebutuhan project yang sudah berjalan hampir 4 tahun, hanya saja dengan semakin bertambahnya klien dan perangkat yang terhubung ke server membuat database semakin besar. Hal ini akhirnya membebani sistem terlebih saat klien ingin mendapatkan laporan secara langsung dalam bentuk PDF.

Kondisi ini membuat kami berpikir untuk meng-upgrade PostgreSQL yang sekarang digunakan ke versi terbaru yang ada untuk sistem operasi Ubuntu yang sedang berjalan. Setelah mencari informasi postgreSQL versi berapa yang tersedia dalam bentuk binary untuk Ubuntu 14.04, akhirnya kami memutuskan menggunakan PostgreSQL 11. Versi ini merupakan versi tertinggi yang kini tersedia untuk Ubuntu 14 dan bisa didapatkan langsung dengan meng-install nya melalui apt-get.

Cara upgrade PostgreSQL di Ubuntu

Cara Mudah Upgrade PostgreSQL 9.3 ke PostgreSQL 11

Proses upgrade cukup mudah dan tidak mengubah struktur tabel apapun di database yang sudah ada. Hal ini tentunya sangat kami harapkan untuk menghindari kerja tambahan memastikan database utuh dan bisa diakses oleh klien tanpa kurang suatu apapun.

Upgrade PostgreSQL ini dimudahkan dengan adanya fitur tool pg_upgrade yang sudah menjadi tool bawaan saat melakukan instalasi PostgreSQL di server yang sama. Berikut adalah tutorial cara cepat melakukan upgrade ke PostgreSQL 11 di Ubuntu ataupun Debian. Oh ya, jangan lupa, untuk berjaga-jaga, lakukan proses backup data.

Tambahkan repository server untuk PostgreSQL 11 terbaru, repository ini langsung mengambil dari situs resmi Postgres.

[email protected]:~$ sudo nano /etc/apt/sources.list.d/pgdg.list

masukkan repository dibawah ini

deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main

Download dan impor repository key ke server

[email protected]:~$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 

Kemudian update repository untuk guna menambahkan repository Postgres ke server

[email protected]:~$ sudo apt-get update

Update packages dan install PostgreSQL 11

[email protected]:~$ sudo apt-get install postgresql postgresql-client postgresql-client-common postgresql-common

Cek konfigurasi, pastikan tidak ada perbedaan diantara keduanya. Jika ada, lakukan penyesuaian konfigurasi di file konfigurasi PostgreSQL 11.

[email protected]:~$ diff /etc/postgresql/9.3/main/postgresql.conf /etc/postgresql/11/main/postgresql.conf
[email protected]:~$ diff /etc/postgresql/9.3/main/pg_hba.conf /etc/postgresql/11/main/pg_hba.conf

Dalam proses ini, kami melakukan penyesuaian untuk file konfigurasi pg_hba.conf. Untuk itu pastikan Anda memperhatikan kedua file ini sebelum lanjut ke proses berikutnya.

Stop service PostgreSQL

[email protected]:~$ sudo service postgresql stop

akan terlihat ada dua service postgresql yang dihentikan yaitu postgresql versi 9.3 dan 11.

Kini log-in sebagai user postgres

[email protected]:~$ sudo su postgres

Lakukan inisialisasi database menggunakan PostgresQL 11

postgres[email protected]:/home/laks$ /usr/lib/postgresql/11/bin/initdb -D /var/lib/postgresql/11/data

Lakukan proses pengecekan cluster (parameter –check, ini tidak akan merubah database).

[email protected]:/tmp$ /usr/lib/postgresql/11/bin/pg_upgrade \
   --old-datadir=/var/lib/postgresql/9.3/main \
   --new-datadir=/var/lib/postgresql/11/main \
   --old-bindir=/usr/lib/postgresql/9.3/bin \
   --new-bindir=/usr/lib/postgresql/11/bin \
   --old-options '-c config_file=/etc/postgresql/9.3/main/postgresql.conf' \
   --new-options '-c config_file=/etc/postgresql/11/main/postgresql.conf' \
   --check

Jika semuanya oke, kini jalankan kembali perintah di atas tanpa parameter –check. Hal ini untuk melakukan proses migrasi dari PostgreSQL 9.3 ke POstgreSQL 11.

[email protected]:/tmp$ /usr/lib/postgresql/11/bin/pg_upgrade \
   --old-datadir=/var/lib/postgresql/9.3/main \
   --new-datadir=/var/lib/postgresql/11/main \
   --old-bindir=/usr/lib/postgresql/9.3/bin \
   --new-bindir=/usr/lib/postgresql/11/bin \
   --old-options '-c config_file=/etc/postgresql/9.3/main/postgresql.conf' \
   --new-options '-c config_file=/etc/postgresql/11/main/postgresql.conf' \

Kembali ke user biasa.

[email protected]:/tmp$ exit

Tukar port yang digunakan di antara kedua postgreSQL,

[email protected]:~$ sudo nano /etc/postgresql/11/main/postgresql.conf

…rubah “port = 5433” ke “port = 5432”

[email protected]:~$ sudo nano /etc/postgresql/9.3/main/postgresql.conf

…rubah “port = 5432” ke “port = 5433”

Jalankan kembali service PostgreSQL, karena kita hanya ingin menggunakan PostgreSQL 11, maka perlu ditambahkan nomor versinya di belakang perintah seperti berikut

[email protected]:~$ sudo service postgresql start 11

Log-in kembali sebagai user postgres

[email protected]:~$ sudo su postgres

Cek versi PostgreSQL yang baru terpasang

[email protected]:/home/laks$ psql -c "SELECT version();"

Kini jalankan script analyze_new_cluster, pastikan berada di direktori /tmp supaya bisa mendapatkan hak write ke server.

[email protected]:/home/laks$ cd /tmp
[email protected]:/tmp$

Kembali sebagai user biasa

[email protected]:/tmp$ exit

Cek paket PostgreSQL 9.3 apa saja yang terinstal

[email protected]:~$ apt list --installed | grep postgresql

Hapus paket software PostgreSQL 9.3 dari yang muncul dari list di atas Pastikan hanya yang mempunyai imbuhan 9.3 di belakang tiap package yang Anda hapus.

postgresql-9.3/now 9.3.17-1.pgdg14.04+1 amd64 [installed,local]
postgresql-client-9.3/now 9.3.17-1.pgdg14.04+1 amd64 [installed,local]
postgresql-client-common/now 182.pgdg14.04+1 all [installed,local]
postgresql-common/now 182.pgdg14.04+1 all [installed,local]
postgresql-contrib-9.3/now 9.3.17-1.pgdg14.04+1 amd64 [installed,local]
[email protected]:~$ sudo apt-get remove postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3

Hapus file konfigurasi PostgreSQL 9.3

[email protected]:~$ sudo rm -rf /etc/postgresql/9.3/

Masuk kembali sebagai user postgres

[email protected]:~$ sudo su postgres

Langkah terakhir, drop semua data dari cluster PostgreSQL 9.3

[email protected]:/home/laks$ cd /tmp
[email protected]:/tmp$ ./delete_old_cluster.sh

Itulah langkah-langkah cara melakukan upgrade PostgreSQL tanpa merubah data apapun di database PostgreSQL 9.3 untuk digunakan di PostgreSQL 11.

Untuk proses menghapus PostgreSQL 9.3, bisa juga dilakukan lain waktu saat Anda sudah yakin dengan PostgreSQL yang baru.

Fitur PostgreSQL 11 pastinya lebih banyak dan lebih modern dalam memenuhi kebutuhan komputasi database di era digital ini. Jika dirasa perlu untuk upgrade ke PostgreSQL 12, maka yang harus dilakukan adalah melakukan upgrade sistem operasi Ubuntu terlebih dahulu, mungkin pilihan Ubuntu 20 LTS menjadi pilihan yang bijak terlebih sudah mendukung berbagai sistem komputasi modern berbasis cloud dengan docker, kubernetes dan lain sebagainya.

Oh ya jika dirasa ada pertanyaan ataupun saran, silahkan tinggalkan di kolom komentar di bawah ini.

Leave a Reply

Your email address will not be published. Required fields are marked *