Sintaks CHANGE MASTER TO MySQL


CHANGE MASTER TO option [, option] …
option:
MASTER_BIND = ‘interface_name’
| MASTER_HOST = ‘host_name’
| MASTER_USER = ‘user_name’
| MASTER_PASSWORD = ‘password’
| MASTER_PORT = port_num
| MASTER_CONNECT_RETRY = interval
| MASTER_HEARTBEAT_PERIOD = interval
| MASTER_LOG_FILE = ‘master_log_name’
| MASTER_LOG_POS = master_log_pos
| RELAY_LOG_FILE = ‘relay_log_name’
| RELAY_LOG_POS = relay_log_pos
| MASTER_SSL = {0|1}
| MASTER_SSL_CA = ‘ca_file_name’
| MASTER_SSL_CAPATH = ‘ca_directory_name’
| MASTER_SSL_CERT = ‘cert_file_name’
| MASTER_SSL_KEY = ‘key_file_name’
| MASTER_SSL_CIPHER = ‘cipher_list’
| MASTER_SSL_VERIFY_SERVER_CERT = {0|1}
| IGNORE_SERVER_IDS = (server_id_list)
server_id_list:
[server_id [, server_id] … ]

CHANGE MASTER TO mengubah parameter yang server slave gunakan untuk menghubungkan ke server master, untuk membaca log biner master, dan membaca log relay slave. Ini juga update isi dari file master.info dan relay-log.info. Untuk menggunakan CHANGE MASTER TO, thread replikasi slave harus dihentikan (gunakan SLAVE STOP jika diperlukan). Options tidak ditentukan mempertahankan nilai mereka, kecuali seperti yang ditunjukkan dalam pembahasan berikut. Dengan demikian, dalam banyak kasus, tidak perlu untuk menentukan Opsi yang tidak berubah. Sebagai contoh, jika password untuk terhubung ke master MySQL anda telah berubah, anda hanya perlu mengeluarkan pernyataan untuk memberitahu slave tentang password baru:

STOP SLAVE; — jika replikasi berjalan CHANGE MASTER TO MASTER_PASSWORD=’new3cret’; START SLAVE; — jika anda ingin me-restart replikasi

MASTER_HOST, MASTER_USER, MASTER_PASSWORD, dan MASTER_PORT memberikan informasi kepada slave tentang cara menyambung ke master-nya:

  • MASTER_HOST dan MASTER_PORT adalah nama host (atau alamat IP) dari host master dan port TCP/IP. (catatan : Replikasi tidak dapat menggunakan file socket Unix. Anda harus dapat terhubung ke server MySQL Master menggunakan TCP/IP.)  Jika anda menentukan opsi MASTER_HOST atau MASTER_PORT, slave mengasumsikan bahwa server master berbeda dari sebelumnya (bahkan jika nilai opsi adalah sama dengan nilai saat ini.) Dalam hal ini, nilai yang lama untuk nama file log biner master  jadi jika anda tidak menentukan MASTER_LOG_FILE dan MASTER_LOG_POS dalam pernyataan, MASTER_LOG_FILE =” dan MASTER_LOG_POS = 4 secara diam-diam ditambahkan untuk itu.
  • MASTER_USER dan MASTER_PASSWORD adalah nama pengguna dan password dari akun yang digunakan untuk koneksi ke master. Dalam MySQL 5.5.20 dan kemudian, MASTER_USER tidak dapat dibuat kosong, mengatur MASTER_USER=” atau meninggalkannya tidak diset ketika menetapkan nilai untuk MASTER_PASSWORD menyebabkan error. Saat ini, password yang digunakan untuk akun slave replikasi dapat melebihi 32 karakter, tetapi setiap karakter yang melebihi jumlah ini akan dipotong. Hal ini bukan karena ada batas yang dikenakan oleh Server MySQL melainkan satu yang khusus untuk Replikasi MySQL. Teks yang berjalan dari statement CHANGE MASTER TO, termasuk nilai-nilai untuk MASTER_USER dan MASTER_PASSWORD,  dapat dilihat pada output dari statement SHOW PROCESSLIST.

Opsi MASTER_SSL_xxx menyediakan informasi tentang penggunaan SSL untuk sambungan. Opsi ini dapat diubah bahkan pada slave yang dikompilasi tanpa dukungan SSL. Mereka disimpan ke file master.info, tetapi diabaikan jika salve tidak memiliki dukungan SSL diaktifkan. MASTER_CONNECT_RETRY menentukan berapa banyak detik untuk menunggu antara mencoba kembali koneksi. Standarnya adalah 60. Jumlah usaha rekoneksi dibatasi oleh option server --master-retry-count; MASTER_BIND adalah untuk digunakan pada slave replikasi yang memiliki beberapa antarmuka jaringan, dan menentukan antarmuka jaringan slave yang dipilih untuk koneksi ke master. MASTER_HEARTBEAT_PERIOD menetapkan interval dalam detik antara denyut jantung(heartbeats) replikasi. Setiap kali log biner master diperbarui dengan sebuah event, masa tunggu untuk detak jantung berikutnya direset. Interval adalah nilai desimal yang memiliki kisaran 0-4294967 detik dan resolusi dalam milidetik, nilai nol terkecil adalah 0.001. Detak Jantung dikirim oleh master hanya jika tidak ada event yang belum terkirim dalam file log biner untuk jangka waktu lebih lama dari interval. Mengatur interval ke 0 menonaktifkan detak jantung semuanya. Nilai default untuk interval sama dengan nilai slave_net_timeout dibagi 2. Pengaturan @ @ global.slave_net_timeout ke nilai kurang dari itu dari hasil interval detak jantung saat ini dalam sebuah peringatan dikeluarkan. Pengaruh mengeluarkan RESET SLAVE pada interval detak jantung adalah untuk me-reset ke nilai default. MASTER_LOG_FILE dan MASTER_LOG_POS adalah koordinat di mana thread slave I/O harus mulai membaca dari master pada waktu berikutnya saat thread dimulai. RELAY_LOG_FILE dan RELAY_LOG_POS adalah koordinat di mana thread slave SQL harus mulai membaca dari relay log pada waktu berikutnya saat thread dimulai. Jika anda menentukan salah satu dari MASTER_LOG_FILE atau MASTER_LOG_POS, anda tidak bisa menentukan RELAY_LOG_FILE atau RELAY_LOG_POS. Jika tidak MASTER_LOG_FILE atau MASTER_LOG_POS ditentukan, slave menggunakan koordinat terakhir dari thread slave SQL sebelum CHANGE MASTER TO dikeluarkan. Hal ini memastikan bahwa tidak ada diskontinuitas dalam replikasi, bahkan jika thread slave SQL terlambat dibandingkan dengan thread slave I/O, bila anda hanya ingin mengubah, mengatakan, password untuk digunakan. CHANGE MASTER TO menghapussemua  file log relay dan memulai yang baru, CHANGE MASTER TO menghapus file log relay semua dan memulai yang baru, kecuali jika anda menentukan RELAY_LOG_FILE atau RELAY_LOG_POS. Dalam hal ini, file log relay disimpan, variabel global relay_log_purge diatur secara silent ke 0. Sebelum MySQL 5.5, RELAY_LOG_FILE diperlukan path absolut. Dalam MySQL 5.5, path bisa relatif, dan menggunakan basename sama seperti MASTER_LOG_FILE. IGNORE_SERVER_IDS ditambahkan di MySQL 5.5. Opsi ini membutuhkan suatu daftar comma-separated dari 0 atau lebih ID server. Events yang berasal dari server yang sesuai diabaikan, dengan pengecualian event log rotasi dan penghapusan, yang masih tercatat dalam log relay. Dalam replikasi circular, server asal biasanya bertindak sebagai terminator event sendiri, sehingga mereka tidak diterapkan lebih dari sekali. Dengan demikian, opsi ini berguna dalam replikasi melingkar ketika salah satu server dalam lingkaran akan dihapus. Misalkan anda memiliki setup replikasi melingkar dengan 4 server, memiliki server ID 1, 2, 3, dan 4, dan server 3 gagal. Ketika menjembatani kesenjangan dengan menjalankan replikasi dari server 2 ke server 4, anda dapat menyertakan IGNORE_SERVER_IDS = (3) dalam statement CHANGE MASTER TO yang anda keluarkan pada server 4 untuk memberitahunya untuk menggunakan server 2 sebagai master-nya bukannya dari server 3. Melakukannya sehingga menyebabkan ia mengabaikan dan tidak untuk menyebarkan setiap pernyataan yang berasal dari server yang tidak lagi digunakan. Jika statement CHANGE MASTER TO dikeluarkan tanpa option IGNORE_SERVER_IDS, setiap daftar yang ada dipertahankan, RESET SLAVE juga tidak berpengaruh pada daftar ID server. Untuk menghapus daftar server yang diabaikan, maka perlu menggunakan opsi dengan daftar kosong:

CHANGE MASTER TO IGNORE_SERVER_IDS = ();

Jika IGNORE_SERVER_IDS berisi ID server sendiri dan server dijalankan dengan option --replicate-same-server-id diaktifkan, sebuah hasilnya error. Juga dimulai dengan MySQL 5.5, file master.info dan output SHOW SLAVE STATUS diperluas untuk memberikan daftar server yang yang saat ini diabaikan. Dimulai dengan MySQL 5.5.5, memanggil CHANGE MASTER TO menyebabkan nilai sebelumnya untuk MASTER_HOST, MASTER_PORT, MASTER_LOG_FILE, dan MASTER_LOG_POS akan ditulis ke log error, bersama dengan informasi lainnya tentang keadaan slave sebelum eksekusi. CHANGE MASTER TO berguna untuk menyiapkan slave ketika anda memiliki snapshot dari master dan telah mencatat log biner induk koordinat sesuai dengan waktu snapshot. Setelah memuat snapshot ke slave untuk menyinkronkan ke slave, anda dapat menjalankan CHANGE MASTER TO MASTER_LOG_FILE = ‘log_name’, MASTER_LOG_POS = log_pos di slave untuk menentukan koordinat di mana slave harus mulai membaca log biner master. Contoh berikut mengubah server master slave menggunakan dan menetapkan biner utama koordinat log dari mana slave mulai membaca. Ini digunakan bila anda ingin mengatur slave untuk meniru master:

CHANGE MASTER TO MASTER_HOST=’master2.mycompany.com’, MASTER_USER=’replication’, MASTER_PASSWORD=’bigs3cret’, MASTER_PORT=3306, MASTER_LOG_FILE=’master2-bin.001′, MASTER_LOG_POS=4, MASTER_CONNECT_RETRY=10;

Contoh berikutnya menunjukkan sebuah operasi yang jarang digunakan. Hal ini digunakan ketika slave memiliki file log relay yang anda inginkan untuk mengeksekusi lagi untuk beberapa alasan. Untuk melakukan hal ini, master tidak perlu dijangkau. Anda hanya perlu menggunakan CHANGE MASTER TO dan memulai thread SQL (START SLAVE SQL_THREAD):

CHANGE MASTER TO RELAY_LOG_FILE=’slave-relay-bin.006′, RELAY_LOG_POS=4025;

Anda bahkan dapat menggunakan operasi kedua dalam setup nonreplication dengan standalone, nonslave server untuk pemulihan setelah crash. Misalkan bahwa server anda telah crash dan anda telah me-restore dari backup. Anda ingin memutar ulang file log biner server (bukan file log relay, tetapi file log biner biasa), bernama (misalnya) myhost-bin.*. Pertama, membuat salinan cadangan dari file-file log biner di beberapa tempat yang aman, jika anda tidak benar-benar mengikuti prosedur di bawah ini dan sengaja memiliki purge server log biner. Gunakan SET GLOBAL relay_log_purge=0 untuk keamanan tambahan. Kemudian mulai server tanpa opsi --log-bin, Bukannya, menggunakan --replicate-same-server-id, --relay-log=myhost-bin (untuk membuat server percaya bahwa file-file log biner biasa adalah file log relay) dan opsi  --skip-slave-start. Setelah server dijalankan, gunakan pernyataan ini:

CHANGE MASTER TO
RELAY_LOG_FILE=’myhost-bin.153′,
RELAY_LOG_POS=410,
MASTER_HOST=’some_dummy_string’;
START SLAVE SQL_THREAD;

Server membaca dan mengeksekusi file biner log sendiri, sehingga mencapai crash recovery. Setelah recovery selesai, jalankan STOP SLAVE, mematikan server, menghapus file master.info dan relay-log.info, dan restart server dengan opsi aslinya.

Menentukan opsi MASTER_HOST (bahkan dengan nilai dummy) yang diperlukan untuk membuat server berpikir itu adalah slave.

Tabel berikut menunjukkan panjang maksimum yang diizinkan untuk opsi string-valued.

Opsi Panjang Maksimum
MASTER_HOSTMASTER_USER

MASTER_PASSWORD

MASTER_LOG_FILE

RELAY_LOG_FILE

MASTER_SSL_CA

MASTER_SSL_CAPATH

MASTER_SSL_CERT

MASTER_SSL_KEY

MASTER_SSL_CHIPER

6016

32

255

255

255

255

255

255

511

Iklan
    • dinda
    • Januari 21st, 2013

    mau tanya ni kk
    punya master A, B, C
    A mereplikasi ke B,
    B mereplikasi ke C
    C mereplikasi ke A
    A dilakukan insert 10
    B melakukan sinkronisasi dengan A ( data di B otomatis jadi 10)
    c melakukan sinkronisasi dengan B ( data di C otomatis jadi 10)
    lah yang mau saya tanyakan,
    C kan mereplikasi ke A, terus kan data di C dan di A sudah sinkron, agar di C dan A tidak melakukan sinkronisasi maka untuk proses replikasi C mereplikasi ke A itu ditambah option apa agar tidak terjadi duplikat data?

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: