"จงเรียนรู้เพื่อเติบใหญ่ จงตัดสินใจเพื่อเติบโต"
BigDump กับ DB ขนาดใหญ่
28 Jul 2010 00:44   [38440 views]

อีกหนึ่งอย่างที่ต้องทำในการ Migrate เว็บขนาดใหญ่คือการย้ายฐานข้อมูล... ซึ่งโดยสามัญแล้ว Database เบสิคที่มนุษยชาติส่วนใหญ่ใช้กันก็คงไม่พ้น MySQL ดังนั้นขอมาพูดถึงการย้านฐานข้อมูล MySQL กัน


... เอ๊ะ กับอีแค่การย้ายฐานข้อมูล MySQL มันยากตรงไหน? ก็แค่ Export แล้วก็ Import ดิ คิดไรมาก!!


ก็ถ้าแค่นั้นคงไม่มาเขียนหรอกหากแต่ว่าฐานข้อมูลที่เราเพิ่งย้ายไปมันขนาด 2 GB !!! ซึ่งผลคือมันไม่เคย Import สำเร็จ Time Out ก่อนเสมอ


แต่ทุกปัญหาย่อมมีทางออก!! โดยทางออกของกรณีนี้มีชื่อว่า "BigDump" :D


BigDump ทำงานยังไง?

BigDump จริงๆมันก็ Script ที่สั่งรัน SQL Command ที่อยู่ในไฟล์ .sql ธรรมดานี่แหละ เพียงแต่มันมีความสามารถที่จะทยอยแบ่งไฟล์ออกทีละ 300 บรรทัด(มั้ง) แล้วค่อยๆ Refresh ด้วยตัวเองจนครบทั้งไฟล์ ซึ่งจะทำให้รอดคดี Time Out ไปได้อย่างสบาย!!


และจากการที่มันทยอยแบ่งทีละ 300 บรรทัดนี้เองเราจึงต้อง Export SQL Command ออกมาแบบเต็มรูปแบบ ห้ามย่อเป็นอันขาดเพราะมันจะแบ่งบรรทัดไม่ได้ โดยทำดังนี้

จากนั้นก็จะได้ไฟล์ .sql ออกมา อันนี้จะใหญ่จะเล็กก็แล้วแต่ศรัทธา เอ้ย! แล้วแต่ปริมาณข้อมูล


คราวนี้... สิ่งที่ต้องทำต่อไปคืออัพโหลดไฟล์ sql นี้ขึ้นไปบน Server ปลายทาง ในบางกรณีไฟล์อาจจะใหญ่โคดๆ (500MB+) การจะอัพโหลดไฟล์ตรงไปตรงมาคงจะทำให้อาเจียนเป็นโลหิตได้ ดังนั้นแนะนำให้ zip แล้วค่อยอัพโหลดจากนั้นค่อยใช้ php แตกไฟล์ zip ออกมา ส่วนวิธีลองย้อนอ่านไป Blog ที่แล้วได้เลย ^ ^


ต่อไปก็โหลดสคริปท์จากเว็บของ BigDump แล้วแก้ไขตัวแปรส่วน Database Configuration และ $filename ได้เลยตามนี้

จากนั้นอัพโหลดไฟล์ bigdump.php ขึ้นไปที่เดียวกันกับไฟล์ sql แล้วก็สั่งรันผ่าน Web Browser โลด!! จะได้ผลประมาณนี้~~~

ก็เป็นอันเรียบร้อยยยย เป็นวิธีที่เวอร์คมากโดยเฉพาะกับ Server ที่ไม่มี ssh ให้เราสั่ง import ผ่าน Command Line ได้


หวังว่าบทความนี้จะมีประโยชน์นะก๊ะ ^3^

บทความที่เกี่ยวข้อง

Jun 29, 2010, 18:33
7159 views
วิธี Downgrade gcc/g++
Jul 21, 2010, 01:14
8137 views
ZIP ไฟล์ด้วย PHP
0 Comment(s)
Loading