• Like
  • Save
MySQL Multi-Master Replication Using Tungsten Replicator 2.0.5
Upcoming SlideShare
Loading in...5
×
 

MySQL Multi-Master Replication Using Tungsten Replicator 2.0.5

on

  • 1,638 views

MySQL Multi-Master Replication Using Tungsten Replicator 2.0.5

MySQL Multi-Master Replication Using Tungsten Replicator 2.0.5

Statistics

Views

Total Views
1,638
Views on SlideShare
1,282
Embed Views
356

Actions

Likes
1
Downloads
45
Comments
0

3 Embeds 356

http://nontster.wordpress.com 354
https://nontster.wordpress.com 2
http://digg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    MySQL Multi-Master Replication Using Tungsten Replicator 2.0.5 MySQL Multi-Master Replication Using Tungsten Replicator 2.0.5 Document Transcript

    • MySQL Multi-Master Replicationusing Tungsten Replicator 2.0.51/18
    • Table of Contentsบทนำ................................................................................................................................................3Replication ทำงานอย่างไร.............................................................................................................. 3ความแต่กต่างของ Replication แบบ Built-in เทียบกับ External Replication...................................4ความแต่กต่างของ Log Replication เทียบกับ Trigger-Based Replication........................................4สถาปัตยกรรมของ Tungsten Replicator...........................................................................................4MySQL Replication.........................................................................................................................5การติดตั้ง Tungsten Replicator บน Debian Linux........................................................................... 6การเตรียม Debian Linux.............................................................................................................6ทำการเซ็ทให้การเชื่อมต่อผ่าน SSH ทำได้โดยไม่ต้องใช้ password...........................................6การเตรียมฐานข้อมูล MySQL......................................................................................................7การสร้าง MySQL user................................................................................................................ 9การติดตั้ง Ruby........................................................................................................................... 9การเซ็ทค่า JAVA_HOME......................................................................................................... 10การติดตั้ง Tungsten Replicator..................................................................................................10วิธีเซ็ทให้ replicator service ทำงานอัตโนมัติ เมื่อ boot OS....................................................... 12วิธีตรวจสอบการทำงานของ Tungsten Replicator..........................................................................13การแก้ไขปัญหา............................................................................................................................. 14Reference....................................................................................................................................... 16Index of FigureFigure 1: Master/Slave Replication......................................................................................................3Figure 2: Replication Architecture....................................................................................................... 5Figure 3: MySQL Replication Architecture......................................................................................... 52/18
    • บทนำTungsten Replicator [1] เป็นซอฟต์แวร์ที่มีไว้เพื่อให้ DBMS สามารถทำ replication ได้ นอกเหนือจากความสามารถในการทำreplication ซึ่งเป็นความสามารถพื้นฐานภายในตัว DBMS เอง แต่ Tungsten Replicator มีความยืดหยุ่นในการทำ replicationมากกว่า โดยการทำ replication ใน Tungsten Replicator จะเป็นแบบ master/slave แต่สามารถประยุคใช้ในการทำ replicationได้หลายรูปแบบ เช่น All-masters Fan-in และ Star schema [2] นอกจากนั้นยังสามารถทำ replication ข้าม DBMS ต่างชนิดกันได้เช่น ระหว่าง MySQL กับ Oracle เป็นต้นReplication ทำงานอย่างไรเนื่องจาก Tungsten Replicator ใช้ master/slave replication โดยที่การ update ใดๆจะทำจาก database server ตัวเดียว ซึ่งเรานิยมเรียก database ตัวนี้ว่า master และการ update นั้นจะถูกส่งต่อไปที่ทุกๆ database ที่เป็น replica โดยอัตโนมัติ หรือที่เรานิยมเรียก database พวกนี้ว่า slave นั้นเองการทำ replication แบบ master/slave อาศัยหลักการง่ายๆคือ สมมติว่า database สองตัวเริ่มทำงานด้วยข้อมูลที่เหมือนกันทุกประการ (จาก snapshot เดียวกัน) เมื่อมีการเปลี่ยนแปลงใดๆใน database หนึ่ง การเปลี่ยนแปลงนั้นจะถูกบันทึกไว้ตามลำดับ เราสามารถทำให้ database อีกตัวเปลี่ยนแปลงเหมือนตัวแรกได้โดยนำบันทึกการเปลี่ยนแปลงไป replay บน database ตัวที่เหลือสาเหตุที่ Master/slave replication ได้รับความนิยมได้แก่• database สามารถสร้าง และ reload snapshot โดยใช้ backup tools• นอกจากการที่ database สามารถ update ข้อมูลได้อย่างรวดเร็วแล้ว มันยังสามารถเขียนการเปลี่ยนแปลงนั้นๆลง logไฟล์ โดย process ภายนอกสามารถเข้ามาอ่านเพื่อนำไปใช้งานต่อได้ได้ ซึ่งเป็นวิธีที่ Tungsten Replicator ใช้ในการทำreplication• ทำงานได้ดีแม้ใน network ที่มี latency สูง เช่นใน wide area networks (WAN)อย่างไรก็ตาม Master/slave replication ก็มีข้อเสีย เช่น• master database จะเป็น single point of failure การใช้ Master/slave จะต้องมีวิธีที่จะทำให้ master database ไม่ล่ม• การ update ใน slave จะช้ากว่า master เสมอ เนื่องจากขบวนการ update ข้อมูลมักจะเร็วกว่าขบวนการ replicateข้อมูลเพื่อไป update ใน slaveTungsten Replicator ถูกออกแบบมาเพื่อแก้ไขข้อเสียของ Master/slave replication แบบเดิมๆ เช่น การจัดการขบวนการmaster failover ให้ถูกต้อง หรือหาวิธีให้ขบวนการ update บน replica ทำได้อย่างรวดเร็วขึ้น นอกจากนั้นยังมีความสามารถเช่นfiltering และ transformation ซึ่งทำให้สามารถจัดการกับปัญหาในการทำ heterogeneous data integration ได้ดีขึ้น3/18Figure 1: Master/Slave Replication
    • ความแต่กต่างของ Replication แบบ Built-in เทียบกับ External ReplicationReplication เป็นเทคโนโลยีที่สำคัญ ซึ่งเป็นความสามารถพื้นฐานที่ทุกๆ DBMS ควรมี ดังนั้น DBMS ส่วนมากจึงได้พัฒนาความสามารถนี้และใส่มาใน DBMS ของตัวเองข้อดีของ Built-in replication คือสามารถทำ replication ได้ดีกับ database ชนิดเดียวกัน แต่ก็มีข้อจำกัดในการทำ replicationกับ database คนละชนิด ต่าง version หรือแม้กระทั่งต่าง operating system นอกจากนั้นใน commercial database บางตัวการทำ replication จะซับซ้อน และเป็นส่วนเสริมที่มีราคาแพงTungsten Replicator จัดว่าเป็น external replication ซึ่งมีข้อดีหลายอย่าง เช่นสามารถรองรับปัญหาอย่าง availability และscaling ได้ นอกจากนั้นยังมีข้อจำกัดน้อยกว่า เช่นมีข้อจำกัดในเรื่องการทำงานต่าง platform น้อยกว่า และสามารถทำงานกับdatabase ต่างชนิดกันได้ดีกว่าเป็นต้นความแต่กต่างของ Log Replication เทียบกับ Trigger-Based ReplicationLog-based replication จะอ่าน SQL update จาก recovery log ของ database ซึ่งภายในจะมี list ของการเปลี่ยนแปลง โดยตัวdatabase จะใช้ log นี้ในขบวนการ recovery เมื่อถูก restart นอกจากนั้น Log-based replication ยังมี overhead ในการทำreplication ต่ำที่สุดเทียบกับการทำ replication ด้วยวิธีอื่น สามารถรองรับการเปลี่ยนแปลงได้กว้างกว่า และมีผลกับการบริหารจัดการน้อยกว่าอีกด้วย แต่อย่างไรก็ตาม Log-based replication ก็ implement ได้ยากกว่า เนื่องจากความซับซ้อนของ logformat ซึ่งใน RDBMS บางตัวไม่ได้มีเอกสารอธิบายรูปแบบข้อมูลในส่วนนี้อย่างเพียงพอTrigger-based replication จะเป็นการติดตั้ง trigger เพื่จับการ update ใน table โดยวิธีการนี้ implement ได้ง่ายกว่า Log-based replication แต่ก็มีข้อเสียโดยจะทำให้ master database ทำงานช้าลง เพิ่มความซับซ้อนในการบริหารจัดการ และมีข้อจำกัดในการเปลี่ยนแปลง schemaTungsten Replicator ใช้ log-based replication เนื่องจากมีประสิทธิภาพ และความยืดหยุ่นดีกว่า ถึงแม้ว่า TungstenReplicator จะเป็น open source ซอฟต์แวร์ แต่ใน database บางตัว ส่วนของ log reader จะไม่ open source ต้องเสียเงินซื้อเพิ่มสถาปัตยกรรมของ Tungsten ReplicatorTungsten Replicator เป็น process ที่ทำงานบนทุก host ใน cluster สถาปัตยกรรมของ Tungsten Replicator แสดงดังรูปที่ 24/18Figure 2: Replication Architecture
    • จากรูปที่ 2 สถาปัตยกรรมของ Tungsten Replicator มีส่วนประกอบดังนี้• Master DBMS – เป็น Database Management System (DBMS) ซึ่งทำหน้าที่เป็น master ในกระบวนการreplication สถานะความเป็น master สามารถเปลี่ยนได้ โดยที่ DBMS ใดๆในระบบที่ทำ replication อาจถูกเลือกเป็นmaster ก็ได้• Slave DBMS - เป็น slave DBMS ซึ่งทำหน้าที่รับ replication event จาก master DBMS และเปลี่ยนแปลงข้อมูลตามevent ที่ได้รับจาก master ในระบบที่ทำ replication อาจมีได้หลาย slave และเราสามารถเรียก slave ได้อีกอย่างว่าreplica• Replication Event Extractor – ทำหน้าที่ในการอ่าน replication event จาก master DBMS logs โดย event อาจอยู่ในรูปแบบของ SQL statement หรือ row• Transaction History Log – เป็นที่สำหรับใช้ในการเก็บ replication event และสื่อสารกับ transaction history logอื่นๆใน cluster• Replication Event Applier – ทำหน้าที่นำคำสั่งจาก replication event ไป update ลงใน slave DBMS.• Node Manager – หมายถึงส่วนที่ทำหน้าที่จัดการส่วนอื่นๆใน Tungsten Replicator ซึ่งทำงานบน master node หรือslave node โดย node manager จะเชื่อมต่อกับ Tungsten service manager ในระดับที่สูงกว่าMySQL ReplicationTungsten Replicator สามารถอ่าน events และ replicate MySQL ตั้งแต่ version 5.0 ขึ้นไป ซึ่งเปิดใช้ binary log (binlog)Binary log มีหน้าที่เก็บข้อมูล native replication ของ MySQL Tungsten Replicator จะอ่านไฟล์ binlog ทำการ parsing และดึงevent ใหม่ออกมา โดย event นี้จะถูกเก็บใน Transaction History Log และถูกส่งต่อไปที่ Tungsten Replicator instance อื่นรูปด้านล่างแสดง Tungsten Replicator architecture สำหรับ MySQL replication.Tungsten Replicator มีความสามารถเหนือกว่า native MySQL replication ในหลายๆอย่างดังนี้• สามารถจัดการ ขบวนการ master failover ในกรณีที่มี slave หลายตัว โดย Tungsten Replicator จะใส่ globalsequence number เข้าไปในทุกๆ SQL request ซึ่งทำให้ slave สามารถถูก promote ขึ้นมาเป็น master และการจายevent ไปสู่ slave ที่เหลือได้ต่อไป• สามารถทำ replication จาก MySQL version ใหม่ไป version ที่เก่ากว่าได้ เช่นจาก MySQL version 5.0 ไป version4.1• สามารถจัดการ replication ได้หลายรูปแบบ เช่น หนึ่ง master ไปสู่ หลาย slaves (fan-out) หลาย masters ไปสู่ หนึ่งslave (fan-in) และ circular replication ระหว่าง master สองตัว หรือมากกว่าได้• สามารถ replicate จาก/ไปสู่ database ชนิดอื่น โดยใช้การ transform และ filter ข้อมูลที่ถูก replicate5/18Figure 3: MySQL Replication Architecture
    • การติดตั้ง Tungsten Replicator บน Debian Linuxการเตรียม Debian Linuxการทำ Multi-Master Replication จะใช้ database server อย่างน้อยสองเครื่องขึ้นไป ในเอกสารชุดนี้สมมติว่ามี MySQL serverซึ่งถูกติดตั้งอยู่ใน server สองเครื่อง ทั้งสองเครื่องที่ถูกติดตั้งอยู่คนละ data center และเชื่อมต่อกันทาง VPN โดยที่เครื่องแรกให้ชื่อว่า master1 และอีกเครื่องให้ชื่อว่า master2 ทั้งสองเครื่องมีซอฟต์แวร์ OpenSSH ติดตั้งและทำงานอยู่ที่ port 4005 สำหรับ VPNmaster1 ใช้ IP 10.8.0.1 master2 ใช้ IP 10.8.0.1ทั้ง master1 และ master2 ติดตั้งซอฟต์แวร์ที่จะเป็นได้แก่ rsync ruby และ jdk ด้วยคำสั่งดังนี้$ sudo apt-get install rsync$ sudo apt-get install ruby$ sudo apt-get install default-jdkทั้ง master1 และ master2 แก้ไข hosts file เพื่อให้สามารถใช้ชื่อ master1 และ master2 แทนการอ้างอิงจาก IP ได้$ sudo nano -w /etc/hosts127.0.0.1 localhost10.8.0.1 master110.8.0.2 master2...ทำการเซ็ทให้การเชื่อมต่อผ่าน SSH ทำได้โดยไม่ต้องใช้ passwordmaster1เพิ่ม user ชื่อ tungsten$ sudo useradd -m -Gmysql -s /bin/bash tungstenเซ็ท password ให้ user tungsten ตามต้องการ$ sudo passwd tungstenแก้ไขไฟล์ /etc/sudoers โดยใช้คำสั่ง # sudoedit /etc/sudoers และเพิ่มข้อมลด้านล่างเข้าไปtungsten ALL=(ALL) NOPASSWD: ALLเปลี่ยนจาก user root เป็น user tungsten# su tungstenทำการสร้าง key ของ secure shell$ ssh-keygen6/18เพิ่ม 2 บรรทัดนี้เข้าไป
    • copy key ไปที่ master2$ ssh-copy-id -p 4002 -i ~/.ssh/id_rsa.pub master2ทดสอบการเชื่อมต่อไปที่ master2$ ssh master2master2เพิ่ม user ชื่อ tungsten# useradd -m -Gmysql -s /bin/bash tungstenเซ็ท password ให้ user tungsten ตามต้องการ# passwd tungstenแก้ไขไฟล์ /etc/sudoers โดยใช้คำสั่ง # sudoedit /etc/sudoers และเพิ่มข้อมลด้านล่างเข้าไปtungsten ALL=(ALL) NOPASSWD: ALLเปลี่ยนจาก user root เป็น user tungsten# su tungstenทำการสร้าง key ของ secure shell$ ssh-keygencopy key ไปที่ master1$ ssh-copy-id -p 4001 -i ~/.ssh/id_rsa.pub master1ทดสอบการเชื่อมต่อไปที่ master2$ ssh master1การเตรียมฐานข้อมูล MySQLMaster1ทำการแก้ไขไฟล์ configuration ของ MySQL$ sudo vim /etc/mysql/my.cnfแก้ไขข้อมูลของ MySQL configuration ดังนี้[mysqld]# bind-address = 127.0.0.1server-id = 17/18
    • # set increment for up to 4 serversauto_increment_increment = 4# increment offset for this server, next server would be 2auto_increment_offset = 1log_bin = mysql-bininnodb_buffer_pool_size = 512M# Recommended InnoDB settings for Tungsten.default-storage-engine=InnoDBinnodb_flush_log_at_trx_commit=2sync_binlog=0# Recommended general settings.# max_allowed_packet must be greater than# the size of the largest transaction.max_allowed_packet=48mdefault-table-type=InnoDBinnodb_flush_log_at_trx_commit=2master2ทำการแก้ไขไฟล์ configuration ของ MySQL$ sudo vim /etc/mysql/my.cnfแก้ไขข้อมูลของ MySQL configuration ดังนี้[mysqld]#bind-address = 127.0.0.1server-id = 2# set increment for up to 4 serversauto_increment_increment = 4# increment offset for this server, next server would be 2auto_increment_offset = 2log_bin = mysql-bin8/18
    • innodb_buffer_pool_size = 512M# Recommended InnoDB settings for Tungsten.default-storage-engine=InnoDBinnodb_flush_log_at_trx_commit=2sync_binlog=0# Recommended general settings.# max_allowed_packet must be greater than# the size of the largest transaction.max_allowed_packet=48mdefault-table-type=InnoDBinnodb_flush_log_at_trx_commit=2การสร้าง MySQL userทั้ง master1 และ master2 ให้เพิ่ม user tungsten ให้ฐานข้อมูล MySQL ดังนี้$ mysql -u root -pmysql> grant all on *.* to tungsten@% identified by tungsten with grant option;mysql> FLUSH PRIVILEGES;การติดตั้ง Rubyติดตั้ง Ruby และ library ที่จำเป็นใน master1 และ master2$ sudo apt-get install -y ruby libopenssl-rubyทดสอบ Ruby ว่าติดตั้งเรียบร้อยหรือไม่$ echo "p hello" | ruby -ropensslจะต้องแสดงข้อความ "hello"9/18
    • การเซ็ทค่า JAVA_HOMEทำการเซ็ท JAVA_HOME และ PATH ในไฟล์ /etc/bash.bashrc ดังนี้$sudo vim /etc/bash.bashrcexport JAVA_HOME=/usr/lib/jvm/jdk1.7.0_06export PATH=$PATH:$JAVA_HOME/binการติดตั้ง Tungsten Replicatormaster1กระจายไฟล์ installer ของ Tungsten Replicator ไปที่ /opt ด้วยคำสั่ง$ sudo tar zxfv tungsten-replicator-2.0.5.tar.gz -C /opt/สร้างไฟล์ setup-masters.sh$ sudo vim /opt/tungsten-replicator-2.0.5/setup-masters.shใส่ข้อมูลด้านล่างนี้เข้าไป#! /bin/bashTUNGSTEN_HOME=/home/tungstenMYSQL_CONF=/etc/mysql/my.cnfMASTER1=master1MASTER2=master2./tools/tungsten-installer --master-slave --master-host=$MASTER1 --datasource-mysql-conf=$MYSQL_CONF --datasource-user=tungsten --datasource-password=tungsten --service-name=dc --home-directory=$TUNGSTEN_HOME --cluster-hosts=$MASTER1 --start-and-report./tools/tungsten-installer --master-slave --master-host=$MASTER2 --datasource-mysql-conf=$MYSQL_CONF --datasource-user=tungsten --datasource-password=tungsten --service-name=dr --home-directory=$TUNGSTEN_HOME --cluster-hosts=$MASTER2 --start-and-report10/18
    • สร้างไฟล์ setup-slaves.sh$ sudo vim /opt/tungsten-replicator-2.0.5/setup-slaves.shใส่ข้อมูลนี้เข้าไป#! /bin/bashMASTER1=master1MASTER2=master2TUNGSTEN_TOOLS=tools$TUNGSTEN_TOOLS/configure-service --host $MASTER1 -C -q --local-service-name=dc --role=slave --service-type=remote --datasource=$MASTER1 --master-thl-host=$MASTER2 --svc-start dr$TUNGSTEN_TOOLS/configure-service --host $MASTER2 -C -q --local-service-name=dr --role=slave --service-type=remote --datasource=$MASTER2 --master-thl-host=$MASTER1 --svc-start dcทำการเซ็ทให้ owner และ group ของ installer directory เป็น tungsten โดยใช้คำสั่ง$ sudo chown -R tungsten:tungsten /opt/tungsten-replicator-2.0.5เปลี่ยน user ปัจจุบันให้เป็น tungsten$ su tungstenทำการติดตั้ง Tungsten Replicator โดยใช้คำสั่งด้านล่าง ตัว Tungsten Replicator จะทำการติดตั้งลงใน master1 และ master2โดยอัตโนมัติ$ cd /opt/tungsten-replicator-2.0.5$ sh setup-masters.sh$ cd ~$ cd tungsten$ sh setup-slaves.sh11/18
    • วิธีเซ็ทให้ replicator service ทำงานอัตโนมัติ เมื่อ boot OS# ln -s /home/tungsten/tungsten/tungsten-replicator/bin/replicator /etc/init.d/replicator# update-rc.d replicator defaults12/18
    • วิธีตรวจสอบการทำงานของ Tungsten Replicatorเราสามารถตรวจสอบการทำงานของ Tungsten Replicator ได้โดย login เข้าไปในระบบที่ติดตั้ง Tungsten Replicator จากนั้นเปลี่ยน user ให้เป็น user tungsten ด้วยคำสั่ง# su – tungstenจากนั้นเข้าไปใน directory tungsten/tungsten-replicator/$ cd tungsten/tungsten-replicator/พิมพ์คำสั่ง bin/trepctl services$ bin/trepctl servicesจะได้ผลลัพธ์ดังนี้Processing services command...NAME VALUE---- -----appliedLastSeqno: 13154appliedLatency : 1.0role : masterserviceName : dcserviceType : localstarted : truestate : ONLINENAME VALUE---- -----appliedLastSeqno: 8876appliedLatency : 4363.722role : slaveserviceName : drserviceType : remotestarted : truestate : ONLINEFinished services command...13/18
    • ในส่วนของ state ของ service ทั้งสองฝั่งจะต้องเป็น ONLINE เท่านั้น จึงจะถือว่าสถานะการทำ replication เป็นปกติ นอกจากONLINE แล้ว state อาจมีค่าเป็น GOING-ONLINE:SYNCHRONIZING หมายความว่า Tungsten Replication กำลัง replicateข้อมูล ซึ่งถ้าสามารถ replicate โดยที่ไม่พบปัญหาใดๆ state ก็จะเปลี่ยนกลับมาเป็น ONLINE แต่ถ้าพบปัญหา state จะเปลี่ยนไปเป็น OFFLINE:ERROR ซึ่งต้องทำการแก้ไขเพื่อให้ replication กลับมาทำงานได้ปกติ14/18
    • 15/18
    • การแก้ไขปัญหา1. กรณีข้อมูลไม่ถูก replicate ไปที่ slaveใช้คำสั่งtungsten-replicator/bin/trepctl servicesเพื่อตรวจสอบว่า service ทั้งหมดอยู่ในสถานะ ONLINE ถ้าหากมี service ใดไม่อยูในสถานะ ONLINE ให้ใช้คำสั่งtungsten-replicator/bin/trepctl -service service_name statusเพื่อดูข้อมูลเพิ่มเติมว่ามีปัญหาอะไรเกิดขึ้นทำการ review log file ใน tungsten-replicator/log/user.log และtungsten-replicator/log/trepsvc.log เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุของปัญหา และเมื่อแก้ปัญหาได้แล้วให้restart replication service โดยใช้คำสั่งtungsten-replicator/bin/trepctl -service service_name online2. กรณีพบ error ใน log file บอกว่า Event application failed: seqno=3 fragno=0message=java.sql.SQLException: Statement failed on slave but succeeded on masterการแก้ไขปัญหานี้จะต้องแก้ไขที่ transaction ที่พบปัญหา จากนั้นจึง restart replication เพื่อสั่งให้ replication ทำงานต่อขั้นแรกให้ทำการหา error com.continuent.tungsten.replicator.applier.ApplierException ใน log filetungsten-replicator/log/trepsvc.log stacktrace จะเป็นตัวบอกว่าปัญหาเกิดจากอะไร ถ้าหากเราต้องการข้อมูลเพิ่มเติมเกี่ยวกับ transaction เราสามารถใช้ โปรแกรม thl ในการดูข้อมูลของ event ได้โดยตรง เช่นใช้คำสั่ง thl เพื่อดูข้อมูลtransaction ของ service ชื่อ service_name sequence number 3 สามารถใช้คำสั่งดังนี้./tungsten-replicator/bin/thl -service service_name list -seqno 3
โปรแกรม thl จะแสดงผลลัพธ์ดังนี้SEQ# = 3 / FRAG# = 0 (last frag)- TIME = 2011-09-14 09:06:42.0- EPOCH# = 0- EVENTID = mysql-bin.000002:0000000000000592;11- SOURCEID = db1- METADATA = [mysql_server_id=101;service=service_name;shard=test]- TYPE = com.continuent.tungsten.replicator.event.ReplDBMSEvent- SQL(0) = SET INSERT_ID = 2- OPTIONS = [##charset = ISO8859_1, autocommit = 1, sql_auto_is_null = 1, foreign_key_checks = 1, unique_checks = 1,16/18
    • sql_mode = , character_set_client = 8, collation_connection = 8, collation_server = 8]- SCHEMA =- SQL(1) = insert into test.names (name) values (Robert)การแก้ปัญหาสามารถทำได้หลายวิธี บางครั้งวิธีที่เหมาะสมอาจทำได้โดยสั่ง statement ที่มีปัญหานั้นๆด้วยตัวเองโดยอาจจะทำจาก command line interface หรือ GUI tool ก็ได้บางครั้งเราอาจต้อง skip transaction ที่มีปัญหานั้นๆไปก่อนเพื่อทำให้ replication service online ได้อีกครั้ง จากนั้นจึงค่อยนำข้อมูลที่ขาดหายไปใส่เข้าไปในฐานข้อมูลอีกครั้งถ้าจำเป็น เช่นถ้าต้องการ skip transaction sequence number2340 ของ service service_name ซึ่งมีปัญหาอยู่ สามารถทำได้โดยใช้คำสั่ง./tungsten-replicator/bin/trepctl -service service_name online -skip-seqno 2340เมื่อ skip transaction ที่มีปัญหาหมดแล้ว จึงสั่งให้ replication online อีกครั้งด้วยคำสั่ง./tungsten-replicator/bin/trepctl -service service_name online17/18
    • Reference[1] Tungsten Replicator, Available At. URL: http://code.google.com/p/tungsten-replicator/[2] Tungsten Replicator cookbook. Advanced replication topologies made easy, Available At. URL:http://datacharmer.blogspot.com/2012/10/tungsten-replicator-cookbook-advanced.html[3] How To Set Up Multi-Master Replication Using Tungsten And MySQL-Proxy For MySQL High Availability OnUbuntu 10.04.3 LTS; http://www.howtoforge.com/how-to-set-up-multi-master-replication-using-tungsten-and-mysql-proxy-for-mysql-high-availability-on-ubuntu-10.04.3-lts[4] Tungsten Replicator Pre-Requisites; http://code.google.com/p/tungsten-replicator/wiki/InstallationPreRequisites[5] Understanding Tungsten Replication Services; http://scale-out-blog.blogspot.com/2011/03/understanding-tungsten-replication.html[6] Tungsten Replication for MySQL users; http://code.google.com/p/tungsten-replicator/wiki/Cheat_Sheet[7] How To Back Up MySQL Databases With mylvmbackup On Debian Squeeze;http://www.howtoforge.com/how-to-back-up-mysql-databases-with-mylvmbackup-on-debian-squeeze18/18