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.

BACA JUGA:   Cara Membatasi Pengguna SFTP Hanya ke Direktori "Home" Mereka Sendiri

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

laks@masivo:~$ 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

laks@masivo:~$ 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

laks@masivo:~$ sudo apt-get update

Update packages dan install PostgreSQL 11

laks@masivo:~$ 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.

laks@masivo:~$ diff /etc/postgresql/9.3/main/postgresql.conf /etc/postgresql/11/main/postgresql.conf
laks@masivo:~$ 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

laks@masivo:~$ 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

laks@masivo:~$ sudo su postgres

Lakukan inisialisasi database menggunakan PostgresQL 11

postgres@masivo:/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).

postgres@masivo:/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.

postgres@masivo:/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.

postgres@masivo:/tmp$ exit

Tukar port yang digunakan di antara kedua postgreSQL,

laks@masivo:~$ sudo nano /etc/postgresql/11/main/postgresql.conf

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

laks@masivo:~$ sudo nano /etc/postgresql/9.3/main/postgresql.conf

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

BACA JUGA:   Cara Membatasi Pengguna SFTP Hanya ke Direktori "Home" Mereka Sendiri

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

laks@masivo:~$ sudo service postgresql start 11

Log-in kembali sebagai user postgres

laks@masivo:~$ sudo su postgres

Cek versi PostgreSQL yang baru terpasang

postgres@masivo:/home/laks$ psql -c "SELECT version();"

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

postgres@masivo:/home/laks$ cd /tmp
postgres@masivo:/tmp$

Kembali sebagai user biasa

postgres@masivo:/tmp$ exit

Cek paket PostgreSQL 9.3 apa saja yang terinstal

laks@masivo:~$ 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]
laks@masivo:~$ sudo apt-get remove postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3

Hapus file konfigurasi PostgreSQL 9.3

laks@masivo:~$ sudo rm -rf /etc/postgresql/9.3/

Masuk kembali sebagai user postgres

laks@masivo:~$ sudo su postgres

Langkah terakhir, drop semua data dari cluster PostgreSQL 9.3

postgres@masivo:/home/laks$ cd /tmp
postgres@masivo:/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.

BACA JUGA:   Cara Membatasi Pengguna SFTP Hanya ke Direktori "Home" Mereka Sendiri

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 *