Golfreeze.packetlove.com: Life style of Golfreeze Canon400D Family kammtan.com Jazz Freebsd Unix Linux System Admin guitar Music
All about unix linux freebsd and FAQ for Packetlove.com Web hosting , Mail hosting , VoIP + IP PBX server => all application on unix knowledges by golfreeze => Topic started by: golfreeze on มกราคม 24, 2011, 12:19:16 pm
-
#mysql -p
>use db_name;
>check table table_name;
เวลาจะซ่อม table ที่เสียก็
>repair table table_name;
แค่นี้ก็เรียบร้อยครับ
-
ปกติจะมีรูปแบบ การ repair หลักๆอยู่สองแบบนะครับผม
แบบแรก โดยผ่าน command "myisamchk" กับ "mysqlcheck"
ซึ่งการทำงานจะต่างกัน คือ ถ้ารัน myisamchk จะใช้งานในกรณี database ของเราเป็น รูปแบบ myisam
และควรจะต้องปิดทำการ service mysql daemon ด้วยเพื่อป้องกันการเขียนทับ index ของฐานข้อมูล
ก่อนทำการ ซ่อม table ใน database ควรจะ backup ไว้ก่อนนะครับ
#mysqldump -uroot -p golfdb golftable > golftable.sql
หลักจาก dump เก็บไว้เสร็จแล้วก็เริ่มซ่อมกันเลย โดยให้เริ่มจาก option -r ก่อน แล้วถ้า -r ทำงานแล้วมี error ให้เปลี่ยนเป็น -o แทนนะครับ (กินเวลาในการ recoveryหน่อย 17GB ประมาณ 13 ชม.)
mode recovery ปกติ สามารถแก้ไขในกรณี table crash ได้ครับผม
#myisamchk -r golftable.MYI
หรือถ้าในการกรณีเป็น safe recovery จะใช้เวลาการซ่อมนานหน่อย และต้องสำรองพื้นที่ในการ re-index database ด้วยครับ ใช้พื้นที่ประมาณ สองเท่าของ ขนาดtable นั้น เช่น
golftable = 15GB ควรจะสำรองพื้นที่ไว้ประมาณ 30GB ครับไว้ในการซ่อม
#myisakchk -o golftable.MYI
ส่วนวิธีการของ mysqlcheck เราสามารถทำการเรียกใช้งานในขณะที่ mysql daemon กำลังทำงานอยู่ได้ครับผม
ก็จะช่วย ในการ optimize table ในกรณีที่เรามีการ record ครั้งละเยอะๆมาก ลดการบวมของ table และเพิ่มความเร็วในการ query ข้อมูลครับผม
#mysqlcheck --analyze --medium-check --optimize --auto-repair --databases amavis users -uxx -pxx > optimized.log
ลองดูนะครับผม
-
##การแสดง process list ใน mysql
#mysql -p
>show full processlist;
ถ้าในกรณี มี processlist ยาวมากๆ แล้วต้องการแบ่งดูทีหน้า ให้เพิ่ม \P more อาศัยการทำงานของ command ช่วยดังนี้ครับ
>\P more
PAGER set to 'more'
>show full processlist;
-
ถ้าท่านใดใช้งานเป็น innodb แล้วเกิด table crash ขึ้นมาลองดูตามนี้ นะครับผม
http://golfreeze.packetlove.com/smileboard/index.php?topic=231.0 (http://golfreeze.packetlove.com/smileboard/index.php?topic=231.0)
-
/usr/bin/mysqlcheck doesn't support multiple contradicting commands
โดยปกติจะเกิดกับ mysql 5.6 ขึ้นไป หรือ mariadb ครับ
เนื่องจากในเวอร์ชั่นใหม่จะไม่สามารถใช้ option ที่ ผสมกันได้ ต้องแยกออกครับผม เช่นจาก
#/usr/bin/mysqlcheck --analyze --medium-check --optimize --auto-repair -A -uadminadmin -pabc123
ก็ปรับแก้ไขเป็น
#/usr/bin/mysqlcheck --optimize --auto-repair -A -uadminadmin -pabc123