(How to) การย้ายไฟล์ข้ามโฮสต์ขนาดใหญ่บึ้ม mysql ไม่เข้ากัน ฯลฯ - dochost

ไ้ด้มีโอกาสย้ายข้อมูลfile เว็บขนาดประมาณ 10 GB และดาต้าเบส 200 MB ผ่านทาง hosting จึงขอเล่าประสบการณ์ดังนี้

  1. ถ้า control panel เดียวกัน เช่น directadmin --> directadmin ง่าย ทำเองได้ เช่นเดียวกับ cpanel , แต่ plesk ต้องระวังเรื่องเวอร์ชั่นต่างกันจะมีปัญหา พวกนี้ส่วนใหญ่ จะสามารถกด backup แล้วให้ ftp ไปยังเครื่องใหม่ได้เลย พอเข้าเครื่องใหม่ก็กด restore
  2. ถ้า os เดียวกันยังไม่หนักหนามาก แต่คนละ os เช่นย้ายจาก windows มา linux จะมีปัญหาเรื่อง sql , path ครับ เอาเรื่องทีเดียว

10 GB zip แตกออกมาได้ 50 GB ครับ เดี๋ยวจะว่าไม่ใหญ่ แต่ผมว่าใหญ่นะ

ถ้าอัพไฟล์เยอะ ๆ จาก PC ละควรจะใช้ Filezilla เพราะมันจะบอกว่าอันไหนที่อัพไม่สำเร็จ
ผมเคยทำหายแค่ไฟล์เดียวแต่ต้องมาไล่อัพกันเกือบหมด อัพไม่สำเร็จทั้งไฟล์ยังดีกว่า สำเร็จไปแค่ครึ่งไฟล์

เสริมหน่อย

ปัญหาที่พบอีกอย่างสำหรับ site ขนาดใหญ่คือ เรื่องของจำนวน file ซึ่งถ้าเป็นกรณีของ site จำพวก up รูป หรือว่า webboard ที่มีไฟล์ขนาดเล็กจำนวนมาก ให้เตรียม disk I/O ให้ว่างไว้ให้มากที่สุดเท่าที่จะเป็นไปได้

ณ ตอนนี้ผมเองเจอปัญหาที่ยังแก้ไม่ตกคือ ต้องย้าย site ไป server ตัวใหม่ ซึ่งเป็น Linux (File System เป็น Ext3) ตัวเดิมเป็น Windows (File System เป็น NTFS)
ปัญหาคือ site design ให้รูปทั้งหมดที่ upload เข้าไป อยู่ในรูปแบบของ Sub Folder แต่… เจ้ากรรม ปริมาณ Sub Folder ที่ใช้เก็บข้อมูลที่ upload เข้ามานั้น มันมีจำนวนเกินกว่า 32000 Sub Folder
ซึ่งทำให้ ไม่สามารถ copy ไปไว้บน File System แบบ Ext3 ได้ตรงๆ ต้องแก้ไขเยอะแยะมากมาย

สถานการณ์ตอนนี้คือ รอ developer หาทางแก้ไขอยู่

อีกปัญหาหนึ่งที่พบกับ site นี้คือ ปริมาณ file ที่เยอะมาก (ราวๆ 10 ล้านไฟล์) ทำให้ต้องใช้เวลา copy นานประมาณชาติเศษ (นี่ขนาด Host ทั้งสองฝั่งเป็น SCSI 15K ทำ RAID ไว้แล้วด้วย) ยังใช้เวลา copy ประมาณ 2-3 วันครับ เพราะว่าไม่ว่าอย่างไรก็ตาม มันก็ไม่สามารถใช้ Bandwidth ได้เต็มที่ เพราะว่าติดข้อจำกัดของ Disk I/O ครับ

อัพ file เยอะ ใหญ่ ผมใช้ rsync ครับ
ตอนย้าย Server ต้องย้ายข้อมูลหมดทั้ง 300 G ก็สั้ง rsync ทีเดียว
เสร็จแล้วก็ สั่งใหม่ สัก สองสามรอบ เพื่อความชัวร์

ส่วนการแปลง charset ผมก็ใช้ iconv

ครับ ใช่ๆแต่ข้อแม้คือเราต้องเป็นเจ้าของทั้งคู่ ผมทำแบบนี้บ่อย

ปัญหาผมเมื่อวานคือย้ายจากผู้ให้บริการอีกเจ้า ที่เป็น windows
ย้ายมาเป็น linux อะครับ มึนตึ้บตั้งกะตอนแบคอัพจาก parallel plesk แล้ว unzip ไม่ได้แล้วอะ เอามาแตกที่บ้านแล้วอัพขึ้นก็เป็นชาติแน่ๆเลยเพราะมีแต่ไฟล์รูปยิบย่อย
โจทย์บอกว่าให้ทำเสร็จไม่เกิน 24 ชม. ไม่งั้นเสียหายเพราะคนเข้าวันละเป็นหมื่น

mysql ไม่เป็นภาษามนุษย์ ถ้า import เข้าไปแล้วไม่กลายเป็น ??? ก็สั่งแปลงมันใน mysql เลยก็ได้นะคัรบ

[quote author=dochost link=topic=28175.msg263958#msg263958 date=1276230920]
ครับ ใช่ๆแต่ข้อแม้คือเราต้องเป็นเจ้าของทั้งคู่ ผมทำแบบนี้บ่อย

ปัญหาผมเมื่อวานคือย้ายจากผู้ให้บริการอีกเจ้า ที่เป็น windows
ย้ายมาเป็น linux อะครับ มึนตึ้บตั้งกะตอนแบคอัพจาก parallel plesk แล้ว unzip ไม่ได้แล้วอะ เอามาแตกที่บ้านแล้วอัพขึ้นก็เป็นชาติแน่ๆเลยเพราะมีแต่ไฟล์รูปยิบย่อย
โจทย์บอกว่าให้ทำเสร็จไม่เกิน 24 ชม. ไม่งั้นเสียหายเพราะคนเข้าวันละเป็นหมื่น

ใหญ่ๆที่เจอก็เจอแบบ…แค่จะ ls -l ก็ยังทำไม่ได้ อย่าแต่จะ tar เลยครับ
ต้องใช้วิธี ls -l a*

ทำไงหว่า

เคยย้ายใหญ่ๆเหมือนกัน แต่ไม่ใหญ่ขนาดนี้

ตอนนั้นใช้วิธีเขียน php script ย้ายทีละ 100 record คือ เปิด db เดิมแล้วก็ remote เข้า db ใหม่แล้ว insert เข้าไปเลย
พอเสร็จก็สั่ง redirect ไปทำต่ออีก 100 record รันเป็นชั่วโมงกว่าจะหมด

รบกวนบอกวิธีการทำหนอยสิครับ ผมกำลังติดปัญหา อิมพอร์ต ฐานข้อมูลไม่ได้

ติดปัญหาตรงไหนครับ

สำหรับผม ในกรณีถ้าย้ายทั้งเครื่อง

ถ้าเป็น DB จะใช้ rSync /var/lib/mysql ไปทั้งดุ้นเลย ส่วน Files Data /home จะใช้วิธี backup --> restore เหมือนทั่วๆไป เสร็จแล้ว ค่อยมา rSync อีกที เพื่อให้ไฟล์อัพเดท