Character Set มีความสำคัญอย่างไรกับการโอนย้ายข้อมูลไปยัง Tibero DB
การ Migrate Database จากฐานข้อมูลหนึ่งไปยังอีกฐานข้อมูลหนึ่ง เป็นเรื่องน่าปวดหัวสำหรับผู้ดูแลระบบเป็นอย่างมาก เนื่องจากมีหลายส่วนที่เราต้องพิจารณาอย่างรอบคอบทั้งปริมาณข้อมูล (Data) และความถูกต้องของข้อมูล ซึ่งหนึ่งในปัญหาสุดคลาสสิกที่ผู้ดูแลระบบต้องพบเจอคือปัญหา Character Set ที่เข้ากันไม่ได้ ย้ายไปแล้วข้อมูลไม่ถูกต้อง อักขระอ่านไม่ออก ซึ่งหากในขั้นตอนการติดตั้ง Database ได้ทำการเลือกใช้ Character Set ให้ถูกต้องและครอบคลุมแล้วนั้นปัญหาเหล่านี้จะไม่เกิดขึ้น
การโอนย้ายข้อมูลจากระบบฐานข้อมูลมายัง Tibero ก็เช่นกัน จำเป็นต้องมีการตรวจสอบ Character Set ที่ใช้ในการจัดเก็บข้อมูลของระบบฐานข้อมูลต้นทางก่อนทำการ migrate ข้อมูล เนื่องจากที่ระบบฐานข้อมูล Tibero จำเป็นต้องสร้าง database และกำหนด Character Set ที่ใช้งานในขั้นตอนการสร้างฐานข้อมูล และหลังจากการสร้าง ฐานข้อมูลแล้ว ตัว Character Set นี้จะไม่สามารถทำการเปลี่ยนแปลงได้ในภายหลัง นั่นเป็นเหตุผลที่ว่า ทำไมเราต้องมีการตรวจสอบ และกำหนด Character Set เป็นอย่างดีก่อนทำการสร้างฐานข้อมูล แล้วในระบบฐานข้อมูลของ Tibero Database สนับสนุนการจัดเก็บข้อมูลในรูปแบบ Character Set ใดบ้าง เราสามารถตรวจสอบได้จากคำสั่ง tbboot -C โดยระบบจะแสดง Character Set ที่สามารถใช้งานได้
เราจะทราบได้อย่างไรว่าระบบฐานข้อมูลต้นทางใช้การจัดเก็บ Character Set แบบใด
คำตอบของคำถามนี้ คือ เราสามารถทำได้หลายแบบด้วยกัน โดยส่วนใหญ่แล้วนิยมใช้ client tool ของ database ต้นทางทำการเชื่อมต่อแล้วส่งคำสั่ง sql เพื่อเรียกดูวิธีการจัดเก็บ ยกตัวอย่างเช่น ระบบฐานข้อมูล oracle เมื่อทำการ เชื่อมต่อด้วย sqlplus แล้วทำการรันคำสั่ง SQL : select * from NLS_DATABASE_PARAMETERS where parameter=’NLS_CHARACTER SET’; (ตามรูปด้านล่าง)
ในตัวอย่างข้างต้น เราจะเห็นว่าในระบบฐานข้อมูล oracle ถูกจัดเก็บด้วย WE8MSWIN1252 (กรอบสีแดง) ซึ่งเวลาเราทำการสร้างระบบฐานข้อมูล Tibero เราก็ไปดูจากตารางด้านบนเพื่อเลือก Character Set บน Tibero ซึ่งตรงกับ Character Set บน oracle ซึ่งก็คือ WE8MSWIN1252 เหมือนกัน
ตัวอย่าง script ในการสร้างฐานข้อมูล
ในการตรวจสอบ Character Set ใน Tibero เราสามารถ ใช้ tbsql ทำการเชื่อมต่อแล้วรันคำสั่ง -> SELECT * FROM SYS._VT_NLS_CHARACTER_SET; (ตัวอย่างตามรูปด้านล่าง)
จากตัวอย่างข้างต้น Tibero Database ถูกสร้างด้วย Character Set TH8TISASCII ซึ่งไม่ตรงกัน คำถามจึงเกิดขึ้นว่า เราสามารถที่จะ migrate ข้าม Character Set ได้หรือไม่
จากที่ผ่านมาเราพบว่า การโอนย้ายข้อมูลจาก Character Set : WE8MSWIN1252 ไปยัง Character Set : UTF8 สามารถทำได้ เนื่องจาก Character Set : UTF8 สามารถจัดเก็บตัวอักษรโดยใช้ 1-4 Byte อีกทั้งยังสามารถ ครอบคลุมตัวอักษรที่ใช้ใน Character Set : WE8MSWIN1252 หรือ Character Set อื่นที่ใช้ single byte ได้อีกด้วยนั่นเอง แต่หากเป็น Character Set อื่นเราต้องทราบถึงการจัดเก็บจำนวน byte ต่างๆ ของแต่ละรูปแบบ เราจึงมั่นใจได้ว่าข้อมูลที่ย้ายมาจะถูกจัดเก็บครบทั้งหมด แต่แนวทางที่ดีที่สุดก็คือ การทำให้ Character Set ตรงกัน ข้อมูลของเราก็จะปลอดภัย หรือหากจำเป็นต้องเปลี่ยน Character Set เราต้องมั่นใจได้ว่า ข้อมูลจากระบบใหม่ถูกจัดเก็บไปยังระบบเก่าได้ครบทั้งหมด
ก่อนการโอนย้ายข้อมูลต้องตรวจสอบฐานข้อมูลต้นทางกันก่อนเพื่อความครบถ้วน และความปลอดภัยของข้อมูล ทั้งนี้ทางคอมพิวเตอร์ยูเนี่ยนมีทีม CU as-a-Service ที่มีผู้เชี่ยวชาญเฉพาะด้านที่สามารถให้คำแนะนำและปรึกษาด้านการออกแบบและดีไซน์โซลูชัน รวมถึงการให้บริการ POC และติดตั้งใช้งาน โดยสามารถดูข้อมูลเพิ่มเติมได้ที่ https://www.cu.co.th/distributor/service/
สนใจติดต่อขอข้อมูลเพิ่มเติมเกี่ยวกับ Tibero ได้ที่ บริษัท คอมพิวเตอร์ยูเนี่ยน จำกัด โทร. 02-311-6881 #7151, 7158 หรือ Email : cu_mkt@cu.co.th