Dump large mysql database

https://pub.monospacelabs.com/developer-story-implementing-a-migrator-for-a-legacy-crm-d97deb22955a

an engineer has a way to backup their database, I have an experience how to backup large mysql database. The challenge is monitor the process when backup is already done. I’ve been search on google, the forum usually give the suggestion using pv, here the link . But i don’t know why pv not works on my server. progress bar always zero percent when dump has been started.

So this simple way, maybe shortcut to monitor process dump large database.

First we run mysqldump to starting the dump process.

mysqldump -u root -px xxxxxxxxxxxxxx — databases your_database — flush-logs — result-file=backup.sql — log-error=error.log

mysqldump is command for dump, and dont forget always add this option — log-error=error.log , because we want to know if something happen, we get the error.

So we just waiting, and try to check with

ps ax|grep mysql

it will show the process list mysql, If dump still running, you will see the command still exist there. If dump process success, the error.log doesn’t appear on directory. But if it exist, you have to check it, because dump process is failed.

I know this not best approach to doing this, because we still don’t know how long the backup will be done. But maybe this simple think you can try. If you have a experience how monitor this case, maybe you can give a comment in section below 😀 .

 

Advertisements

Introduction

Go atau lebih dikenal dengan Golang adalah bahasa pemrograman yang dikembangkan oleh Google pada tahun 2007, project ini diprakrasai oleh Robert Griesemer, Rob Pike dan Ken Thompson. Golang sendiri memiliki kemiripan syntax dengan C, dan sudah menyediakan garbage collection, type safety , dynamic-typing dan banyak sekali library-library yang sudah disediakan. Fokus dari goalng sendiri adalah untuk membuat apps yang scalable, simple dan sangat mudah.

Kenapa Harus Golang?

Kenapa harus memilih golang sebagai bahasa untuk aplikasi server? Sementara banyak bahasa bahasa lain yang lebih dahulu dan lebih familiar seperti python, ruby dan nodejs yang bisa melakukan hal serupa.

Ini kelebihan yang bisa didapatkan jika memilih Go sebagai bahasa pemrograman

  • Concurency adalah bagian yang tidak terpisahkan dari sebuah bahasa pemrograman. Golang menyediakan fitur Goroutines dan channels yang bisa digunakan untuk membuat aplikasi yang multithread (hal ini akan dijelaskan lebih detail nanti).
  • Golang adalah compiled language. Semua souce akan dicomple menjadi native binary, hal ini yang tidak ada di beberapa bahasa interpreted seperti Javascript yang digunakan pada nodejs.
  • Sangat mudah digunakan dengan dukungan dokumentasi yang lengkap. Dukungan komunitas golang yang sudah banyak, membuat para programmer tidak kesulitan untuk mencari dokumentasi.
  • Compiler dari go support static linking. Semua code yang telah di compile akan menjadi sebuah binary yang bisa di deploy ke server tanpa perlu khawatir akan dependency.

Installation

Golang bisa digunakan di tiga platform, yaitu Mac, Windows dan Linux.

Mac

Download installer OS X dari https://golang.org/dl/. klik dua kali untuk memulai installasi. Ikuti petunjuknya dan golang akan terinstall di /usr/ local/ go kemudian tambahkan folder /usr/local/go/bin ke environtment variable PATH anda.

Windows

Download installer MSI dari https://golang.org/dl/. klik dua kali untuk memulai installasi. Ikuti petunjuknya dan golang akan terinstall di c:\Go kemudian tambahkan folder c:\Go\bin ke environtment variable PATH anda.

Linux

Download tar file dari https://golang.org/dl/ dan unzip ke dalam folder /usr/local. kemudian tambahkan folder /usr/local/go/bin ke environtment variable PATH anda.

GOPATH dan Workspace

Sebelum kita bisa untuk menggunakan golang, ada hal yang perlu kita setting. Kita perlu menyiapkan workspace untuk project yang akan kita buat. Gopath merupakan environtment variable yang digunakan untuk menunjukan lokasi yang berisi project-project Go, beserta file binary mereka.

Di dalam folder Gopath, setidaknya ada 3 buah subfolder yaitu src, bin dan pkg. Semua project yang anda buat akan ditempatkan pada folder $GOPATH/src. Misal kita akan membuat project ngoprek, maka folder tersebut haruslah berada di $GOPATH/src/ngoprek.

Struktur Program dan Hello World

Sebelum kita membahas lebih jauh golang programming, mari kita pelajari dahulu struktur minimum dari sebuah program golang. Biasanya di dalam sebuah program golang ada beberapa bagian di bawah ini :

  • Package Declaration
  • Import Packages
  • Function
  • Variables
  • Statements and Expressions
  • Comments

Mari kita buat sebuah program sederhana yang mencetak kata sakti yaitu “Hello World”

package main

import "fmt"

func main() {
   /* Cetak Hello World */
   fmt.Println("Hello, World!")
}

Mari kita bahas tiap line dari code diatas

  • Baris pertama dari program ini yaitu package main yang menunjukan nama package. Main package merupakan starting point untuk menjalankan program. Setiap file go, wajib memiliki nama package berdasarkan nama path yang terkait dengan file go tersebut
  • Baris berikutnya yang berisi import “fmt” , ini ialah perintah kepada Go compiler untuk menggunakan package fmt. Sehingga kita bisa menggunakan method-method yang ada di dalam package tersebut.
  • Baris berikutnya ialah func main() { , fungsi main ini memberi tahu dimana eksekusi program harus dimulai. Seperti di java, semua harus dari fungsi main.
  • fmt.Println() Merupakan method di fmt yang bertugas untuk mencetak string Hellow World. Perlu dicatat bahwa method ini menggunakan huruf capital, karena di Go method yang menggunakan huruf capital merupakan public method.

Setelah menuliskan program diatas, save file dengan nama hello.go, kita bisa mengkesekusi code dengan membuka command promt dan ketik go run hello.go

Rsync Without Password

1. Test rsync over ssh (with password):

Do a rsync to make sure it asks for the password for your account on the remote server, and successfully copies the files to the remote server.

The following example will synchronize the local folder /home/test to the remote folder /backup/test (on 192.168.200.10 server).

This should ask you for the password of your account on the remote server.

rsync -avz -e ssh /home/test/ user@192.168.200.10:/backup/test/
2. ssh-keygen generates keys.

Now setup ssh so that it doesn’t ask for password when you perform ssh. Use ssh-keygen on local server to generate public and private keys.

$ ssh-keygen
Enter passphrase (empty for no passphrase):

Enter same passphrase again: Note: When it asks you to enter the passphrase just press enter key, and do not give any password here.

3. ssh-copy-id copies public key to remote host

Use ssh-copy-id, to copy the public key to the remote host.

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10
Note: The above will ask the password for your account on the remote host, and copy the public key automatically to the appropriate location. If ssh-copy-id doesn’t work for you, use the method we discussed earlier to setup ssh password less login.

4. Perform rsync over ssh without password

Now, you should be able to ssh to remote host without entering the password.

ssh 192.168.200.10
Perform the rsync again, it should not ask you to enter any password this time.

rsync -avz -e ssh /home/test/ user@192.168.200.10:/backup/test/

Setting IP Ubuntu

Untuk mengetahui network interface yang ada di ubuntu, tinggal jalankan

ip link show

Dan akan muncul list network interface, kemudian setup IP dengan mengetikan command dibawah ini

sudo vi /etc/network/interfaces

Kemudian setting IP yang diinginkan, sample seperti ini :

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
        address xxx.xxx.xxx.xxx
        netmask xxx.xxx.xxx.xxx
        gateway xxx.xxx.xxx.xxx
        dns-nameservers xxx.xxx.xxx.xxx 8.8.8.8

setelah itu jalankan command berikut

sudo ifup ens18

Share localhost menggunakan ngork

Dalam development, terkadang kita ingin agar local dev kita bisa diakses oleh mesin lain melalui internet. Dengan menggunakan ngork kita bisa membuat secure tunnel yang bisa diakses melalui URL yang sudah di sediakan oleh ngrok.

Kita bisa mendownload ngork disini , bisa didownload disesuaikan dengan OS yang digunakan. Cara menggunakan ngrok cukup mudah, setelah mendownload ngork kita bisa menggunakan dengan command dibawah ini :

./ngrok http 80

Setelah command tersebut dijalankan, ngrok akan memberikan alamat URL forwarding ke port 80 dari mesin kita. Seperti dibawah ini

Forwading http://23357e7f.ngork.io

Forwading https://23357e7f.ngork.io

Coba akses via browser url dibawah http://23357e7f.ngork.io & https://23357e7f.ngork.io , sites local anda sudah live dan bisa digunakan untuk share dengan tim development anda. ngork akan selalu men-generate unique url setiap kali anda merestart ngork.

Untuk explore fitur yang lain dari ngork, bisa menggunakan command dibawah ini :

./ngrok help

Selamat mencoba 😀

SSL Dengan LetsEncrypt

letsencrypt

Sebenarnya ini bukan hal yang sering saya lakukan, mungkin kadang-kadang 2 bulan bisa sekali ada tugas untuk setup TLS/SSL sertifikat. Karena mungkin faktor pelupa yang sangat akut, saya akan mendokumentasikan beberapa shortcut yang sering saya gunakan.

Jika kita mempunyai domain yang belum menggunakan HTTPS, tidak ada alasan lagi bagi kalian untuk tidak menggunakannya, karena sertifikat TLS/SSL sudah bisa didapatkan gratis di LetsEncrypt. Di tulisan kali ini saya akan coba memasang LetsEncrypt di server yang sudah terinstall nginx.

Instal Certbot

sudo add-apt-repository ppa:certbot/certbot

sudo apt-get update

sudo apt-get install python-certbot-nginx

Setup Nginx

sudo vi /etc/nginx/sites-available/default

cari line yang berisi server_name dan ubah sesuai domain yang sudah kamu miliki, sebagai contoh kabayan.com. Maka ubah menjadi seperti ini :

server_name kabayan.com;

Untuk melihat apakah configurasi nginx nya sudah benar, bisa mengunakan command sebagai berikut :

nginx -t

Jika tidak ada error, silahkan reload service nginx dengan command sebagai berikut :

sudo service nginx restart

Memasang Sertifikat

Certbot memiliki berbagai cara untuk mendapatkan sertifikat, salah satu plugin yang bisa digunakan adalah dengan mengunakan plugin nginx. Plugin inilah yang akan Continue reading “SSL Dengan LetsEncrypt”

Legok tapak genteng kadek

“Lamun hirup hoyong enjoy, kudu bisa praktekeun legok tapak genteng kadek ” , kata bapak warkop di obrolan tengah malam. Dengan ditemenin kopi si bapak cerita soal guyon dan falsafah hidup. Intinya mau dihujat, dicibir segimana pun, jangan pernah mempengaruhi kebahagiaan kita.

Siapa bapak warkop itu?

ada sebuah foto dipojok warkop dengan latar belakang pesawat N250 dan sejumlah karyawan PT Dirgantara Indonesia. Usut punya usut ternyata si bapak adalah mantan anak buah Pak B.J Habibie waktu beliau kerja di PT DI, membangun industri pesawat Indonesia. Ketika PT DI collaps, bapak tersebut kehilangan pekerjaannya. Tawaran dari luar negeri berdatangan mungkin dengan gaji yang menggiurkan.

Tapi karena idealisme dan kecintaan nya terhadap Indonesia, daripada membuat negara orang maju. Beliau lebih memilih berwirausaha membuka warung kopi di depan kampung Babakan Fakultas Bogor. Suka duka pasti dialami bapak itu, gua cuma tidak bisa membayangkan cercaan yang diterima si bapak yang datang dari keluarga besarnya, memilih meninggalkan kemewahan untuk mempertahankan idealismenya.

Si bapak jalan terus, dengan falsafah Legok tapak genteng kadek ( Banyak pengetahuannya atau pengalamannya), Bahwa hidup itu memang terdiri dari berbagai macam pengalaman yang harus dihadapin, jadi menurut si bapak kita harus bisa kuat mental dalam menghadapi hidup.

Baru kali ini gua dibuatkan kopi, oleh seorang teknisi jenius yang pernah membuat sejarah di Indonesia.

genteng