Freebsd : Upgrade postgresql 9.6 ke 10

Belum lama ini seperti diberitakan di website resminya, postgresql sudah release versi 10. Banyak fitur yang ditambahkan pada versi terbaru ini. Di sini saya akan mengurai langkah-langkah untuk upgrade postgresql 9.6 ke 10 dengan OS Freebsd 11.1. Dengan catatan bahwa proses ini memakan waktu berbeda-beda tergantung besar databasenya, sehingga perlu diperhatikan waktu downtime jika diterapkan di server produksi.

Upgrade dulu ports.

# portsnap fetch update

Cek apakah package postgresql96-client masih terinstall, jika ada uninstall terlebih dahulu.

# pkg info | grep postgresql96-client
# cd /usr/ports/databases/postgresql96-client
# make deinstall clean

Cek pula package perlnya, sebaiknya di remove kemudian install versi terbaru atau di reinstall.

# pkg info | grep perl
# cd /usr/ports/lang/perl5.24
# make deinstall clean
# cd /usr/ports/lang/perl5.26
# make reinstall clean BATCH=yes

Setelah selesai, kita melangkah ke proses intalasi postgresql10 lewat port. Package postgresql9.6 yang lama dibiarkan saja jangan sampai diremove, dan instalasi postgresql10 saya install di path/ direktori lainnya.

# mkdir -p /app/postgre10
# cd /usr/ports/databases/postgresql10-server
# make install clean PREFIX=/app/postgre10

Jangan lupa set path environmentnya ke direktori installer.

# set path = ($path /app/postgre10/bin)
# echo 'setenv PATH $PATH\:/app/postgre10/bin\:' >> ~/.cshrc

Stop service instance postgresql9.6 yang lama.

# /usr/local/etc/rc.d/postgresql stop

Backup/rename direktori lama dan buat direktori baru untuk folder data, contoh disini data lama saya namanya “pgsql” dirubah ke “pgsql96” dan buat lagi folder baru “pgsql”.

# mv /data/pgsql /data/pgsql96
# mkdir /data/pgsql
# chown -R postgres:postgres /data/

Initdb database postgresql10.

# su -l postgres -c "/app/postgre10/bin/initdb -D /data/pgsql -E utf8"

Sampai disini jangan lupa untuk backup semua database dengan pg_dumpall untuk jaga-jaga jika terjadi hal-hal yang tidak diinginkan.Lanjutkan ke proses inti, yaitu upgrade databasenya.

# su postgres
# cd ~
# /app/postgre10/bin/pg_upgrade -b /usr/local/bin/ -B /app/postgre10/bin/ -d /data/pgsql96 -D /data/pgsql

Jika sudah sukses upgradenya kemudian di start service instance dan running analyze script.

# /app/postgre10/bin/pg_ctl -D /data/pgsql start
# ./analyze_new_cluster.sh

Setelah selesai analyze kemudian stop service, copy postgresql.conf dan pg_hba.conf pada direktori lama ke direktori baru misal “/data/pgsql”.

# /app/postgre10/bin/pg_ctl -D /data/pgsql stop
# cp /data/pgsql96/pg_hba.conf /data/pgsql/

Uninstall package postgresql96 lama.

# cd /usr/ports/databases/postgresql96-server/
# make deinstall clean

Copy-kan script start boot postgresql instance nya.

# ln -s /app/postgre10/etc/rc.d/postgresql /usr/local/etc/rc.d/postgresql
# /usr/local/etc/rc.d/postgresql restart

Proses selesai silahkan cek database andai saja ada anomali karena efek dari upgrade.

One comment

  1. rahmat rian says:

    downloadnya dmn mas ?