เรื่องของเรื่องคือ
ผมจะต้องทำการย้ายข้อมูลจาก mysql 3.2xxx ไปยัง 5.xxx
ข้อมูลทั้งหมดที่จะต้อง export ก็ไ่ม่น้อยไม่น้อย นะคับ :)
เกือบ 7 ล้าน กว่า แถว ใน 30 กว่าตาราง
เพื่อนมี solution ดีๆน่าสนใจก็ ขอไอเดียด้วยนะคับ
- pomcob's blog
- Login or register to post comments
- 276 reads
สำหรับผม จ้าง outsource ทำง่ะ..:)
Sono
Server เป็น Linux ป่ะครับ ถ้าใช่ ขอเสนอ Solution ยากๆ ดังนี้
1. Export Database ออกมายกก้อนเลย ใช้คำสั่ง
$ mysqldump -uxxx -pyyy YOUR_DB_NAME > YOUR_DB_NAME.sqlจะได้ YOUR_DB_NAME.sql เป็น text file ถ้าเปิดดูจะเห็นคำสั่ง CREATE, INSERT เต็มไปหมด
2. จัดการ Pack ของ ก่อนย้าย ด้วยคำสั่ง
$ tar cvfz YOUR_DB_NAME.tgz YOUR_DB_NAME.sqlผลลัพธ์ จะได้ YOUR_DB_NAME.tgz ที่เล็กลงกว่า YOUR_DB_NAME.sql มากๆๆๆ เพราะมันถูกบีดอัดนิ
3. ย้ายของได้ ถ้าจาก server to server แนะนำให้ใช้ ftp แบบ command line (หรือ sftp, scp แล้วแต่ชอบ) กรณีสมมติใช้ ftp แบบ command line ระหว่าง server น้ะครับ
$ ftp USERNAME@111.222.333.444> put YOUR_DB_NAME.tgz
> bye (เป็นคำสั่งออกจาก FTP ข้อมูลเพิ่มเติมพิมพ์ ? แล้ว Enter มั้ง ถ้าจำไม่ผิด)
ทีนี้ก็ส่งของเรียบร้อยแล้ว
4. จัดของเข้าบ้านใหม่ ก่อนอื่นให้ remote ไปที่ปลายทางให้เรียบร้อย แล้วไปยัง dir ที่เก็บ YOUR_DB_NAME.tgz ไว้ แล้ว แตกไฟล์ และ import เป็นอันเสร็จ ดังนี้
$ tar xvfz YOUR_DB_NAME.tgzจะเกิดไฟล์ YOUR_DB_NAME.sql ขึ้นมา หลังจากนั้นก็ Import ข้อมูล แต่ว่า คงต้องสร้าง DB ชื่อ YOUR_DB_NAME มาก่อนน้ะ เดี๋ยวหาไม่เจอ ^_^
$ mysql -uxxx -pyyy YOUR_DB_NAME < YOUR_DB_NAME.sql
***** เสร็จเรียบร้อย *****
หรือ จะ outsource ผมก็ได้น้ะคับ ค่าตัวถูก ขอแค่เมาเดียว ^_^
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
เซือในสิ่งที่เฮ็ด เฮ็ดในสิ่งที่เซือ...
เออร์ แต่ถ้ามีเรื่องภาษาไทยเข้ามาเกี่ยวข้อง รายละเอียดก็คงเยอะกว่านี้นิดหน่อย อาจจะต้องมีการระบุเรื่อง charecter-set ร่วมด้วย
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
เซือในสิ่งที่เฮ็ด เฮ็ดในสิ่งที่เซือ...