Elastix:replikasi data asteriskcdrdb

By human

Panduan yang saya pakai untuk tugas ini disini.

Langkah2nya :

  1. Pastikan elastix dan server backup sudah berjalan normal
  2. Port mysql nya bisa diakses dari luar, karena default instalasi biasanya hanya bisa diakses dari localhost, terutama untuk server elastix nya
  3. Modifikasi di server Elastix nya :
    • edit /etc/my.cnf, tambahkan 3 baris berikut di bagian [mysqld]:
      server-id=3
      log_bin=/var/lib/mysql/mysql-bin.log
      binlog_do_db=asteriskcdrdb

      untuk server-id bebas, mau di isi angka berapa saja, pastikan tidak sama dengan server-id di slave.
      Setelah dirubah, jangan lupa service mysql di restart

    • restart mysql
      /etc/init.d/mysqld restart
    • login kembali ke dalam mysql dan buat ijin akses untuk replikasi.
      GRANT REPLICATION SLAVE ON *.* TO 'CTP'@'%' IDENTIFIED BY 'kopi';
      FLUSH PRIVILEGES;

    • Buka 1 buah konsole/terminal lagi untuk melakukan mysqldump pada database yang akan di replikasi dan dikonsol yang lama lakukan perintah lock agar database tidak tulisi dulu sampai dengan dump ke file selesai.
      FLUSH TABLES WITH READ LOCK;

      Segera lakukan mysqldump sampai dengan selesai. Setelah selesai mysqldump, cek posisi index terakhir dan catat posisinya (pada contoh di bawah pada posisi 246754), ini penting sebagai acuan pada saat replikasi di slave.

      mysql> show master status;
      +------------------+----------+---------------+------------------+
      | File             | Position | Binlog_Do_DB  | Binlog_Ignore_DB |
      +------------------+----------+---------------+------------------+
      | mysql-bin.000002 |   246754 | asteriskcdrdb |                  |
      +------------------+----------+---------------+------------------+

      Setelah itu baru dibuka kembali lock agar dapat segera di tulisi kembali.

      UNLOCK TABLES;
  4. Modifikasi di slave, untuk contoh di bawah slave memakai frebsd 10, jadi bila beda os atau versi pastikan letak path untuk file2 nya sesuai.
    • Edit my.cnf
      server-id = 2
      relay-log=/var/log/mysql/mysql-relay-bin.log
      log_bin=/var/log/mysql/mysql-bin.log
      expire_logs_days=10
      max_binlog_size=100M

      Setelah dirubah, jangan lupa service mysql di restart

      /etc/init.d/mysqld restart
    • Buat nama database yang sama spt di server elastix, yaitu “asteriskcdrdb”
      CREATE DATABASE asteriskcdrdb;
      exit;
    • masuk kembali ke konsol mysql dan lakukan perintah sbb:
      CHANGE MASTER TO MASTER_HOST='12.34.56.789',MASTER_USER='ctp', MASTER_PASSWORD='kopi', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=246754;

      Pastikan master_host sesuai dengan ip server
      master user dan password sesuai dengan user replikasi yang dibuat diatas
      lalu master_log_pos sesuai dengan posisi hasil dari “show master status”
      Bila muncul pesan error seperti dibawah ini, solusinya adalah dengan mereset slave

      ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log
      mysql> RESET SLAVE;
    • Setelah ritual diatas, restart sekali lagi service mysql
      /etc/init.d/mysqld restart
    • Lakukan pengetesan dengan menambah record di master, lalu lihat hasilnya di slave.
      atau bila elastixnya sangat aktif, bisa dilakukan dengan mengecek jumlah baris di table “cdr”.
      setiap kali update di master, otomatis jumlah baris di slave juga bertambah.

Semoga bermanfaat

No Comments

(Required)
(Required, will not be published)