4/16/2557

มาทำความรู้จักกับเจ้านกเพลิง Firebird ดาต้าเบสเซิร์ฟเวอร์แบบโอเพ่นซอร์ส

"มาทำความรู้จักกับเจ้านกเพลิง Firebird ดาต้าเบสเซิร์ฟเวอร์แบบโอเพ่นซอร์ส ผู้อยู่เบื้องหลังความสำเร็จขององค์กรธุรกิจ Label Industries"

ท่ามกลางเหตุการณ์รอบตัวเราที่เต็มไปด้วยการเปลี่ยนแปลง ตั้งแต่เหตุการณ์สงครามในประเทศอิรัก มหันตภัยจากโรคติดเชื้อทางเดินหายใจ หรือมาตรการที่จริงจังในการปราบปรามสินค้าละเมิดลิขสิทธิ์ในบ้านเรา ล้วนส่งผลต่อการดำเนินชีวิตของเราด้วยกันทั้งนั้นไม่ทางตรงก็ทางอ้อม แต่สำหรับมนุษย์คอมพิวเตอร์อย่างเราที่ต้องดูแลระบบไอทีในองค์กรให้สามารถ
ขับเคลื่อนไปด้วยความราบรื่นที่สุดยังคงต้องสวมบทบาทที่หนักอึ้งต่อไป โดยเฉพาะเมื่อปัญหาต่าง ๆ เริ่มส่งผลต่อเศรษฐกิจขององค์กรแล้ว ซอฟต์แวร์โอเพ่นซอร์สจึงเข้ามามีบทบาทเพิ่มขึ้น และเป็นอีกหนึ่งความหวังที่จะนำมาเสริมสร้างระบบไอทีให้คงความแข็งแกร่งภาย ใต้เงื่อนไขด้านการลงทุน
Linux Success Story ฉบับนี้จะหยิบยกเอาองค์กรในภาคเอกชนอีกแห่งหนึ่งมาเป็นกรณีตัวอย่างกัน คือ บริษัท วงศ์เอกอุตสาหกรรม จำกัด ซึ่งดำเนินธุรกิจในภาคอุตสาหกรรม
( Label Industries ) โดยลักษณะของกิจการแล้วมีความจำเป็นต้องอาศัยแรงขับเคลื่อนของฝ่าย คอมพิวเตอร์และไอทีไม่น้อยเลยทีเดียว โดยเฉพาะอย่างยิ่งในเรื่องของการบันทึกจัดเก็บข้อมูลจำนวนมากในทุก ๆ ขั้นตอนของการดำเนินงาน รวมไปถึงเรื่องการสื่อสารทั้งภายในและภายนอกองค์กรด้วยระบบจดหมายอีเล็ก ทรอนิกส์
ผู้ที่มีหน้าที่รับผิดชอบสำคัญเกี่ยวกับกิจกรรมทั้งหลายที่เกี่ยว ข้องกับระบบคอมพิวเตอร์ สื่อสาร และการพัฒนาแอปพลิเคชั่นขึ้นภายในองค์กรนี้ คือ คุณมานะ ศฤงคารรัตนะ ซึ่งได้สละเวลาอันมีค่าขีดเขียนเรื่องราวบอกเล่าความสำเร็จในการนำลีนุกซ์ไป ใช้ในองค์กร โดยเฉพาะเรื่องเกี่ยวกับระบบฐานข้อมูลที่เป็นโอเพ่นซอร์ส ลองมาฟังเรื่องราวที่น่าสนใจนี้กันครับ

Linux กับ Interbase ส่วนผสมที่ลงตัว แนวความคิดที่เขียนบทความนี้ขึ้นมาเนื่องจากความรู้สึกที่อยากจะบอกความสำเร็จเกี่ยวกับใช้
ลี นุกซ์ภายในองค์กร ซึ่งเป็นความสำเร็จที่ยังใช้อยู่ในปัจจุบัน และใช้ได้ดีเสียด้วย ด้วยความที่เขียนบทความนี้ช้าไป(เนื่องจากปัจจุบันมีหนังสือ Linux ออกมามากมายทั้งไทยและเทศ ) แต่ด้วยความที่องค์กรของผมใช้มา 4 ปีแล้วมันจะเหมือนที่หนังสือทั่วไปเขียนก็เกินไปแหล่ะ เพราะการที่องค์กรพัฒนาแอปพลิเคชั่นขึ้นมาใช้เองโดยใช้ Clipper เมื่อ 10 ปีก่อน โดยมีฐานข้อมูลเป็น DBF และเครื่อง Client 25 ตัว Run บน Netware 3.12 ซึ่งผมขอยกย่องให้เป็นที่สุดแห่งศตวรรษ เพราะในความคิดของผม Windows NT/2000 วิ่งเป็น File Server ก็ยังสู้ Netware ไม่ได้ อันนี้จากการประสบการณ์จริง จวบจนปัจจุบันจำนวนของ Client ได้เพิ่มขึ้นเป็น 100 กว่าตัว และ Linux Server อีก 6 ตัว แบ่งเป็น Database Server 1,File Server for Mcintosh 2,Mail Server 1,SMB Server 1 และ Backup Server 1
นับจากวันที่ Netware และ Clipper ต้องจากไป เนื่องจากสภาพสังคมในปัจจุบันสภาพการใช้งานต้องยอมรับว่าไม่ว่าเด็กหรือ ผู้ใหญ่จะใช้ Windows เป็นและสอนไม่ยาก ผมในฐานะผู้พัฒนา Application ในสภาพแวดล้อมแบบ DOS ก็ถูกบีบให้ย้ายจาก Clipper ไปสู่ Windows ก็ทำให้ได้ทดลองตัว Developer หลายตัวเลยที เดียวโดยยึดหลักที่ว่าต้องนำความรู้จาก Clipper มาพัฒนาต่อ เพื่อที่จะ Port เอาโปรแกรมเดิมที่เขียนไว้ขึ้นมารันบนระบบ Windows แต่สุดท้ายความฝันสลาย ถ้าผมยังยึดหลักการนี้ผมคงจะหา Application Developer ดีๆสักตัวคงยาก ถ้ายังยึดติดกับ Clipper ผมคงไม่อยากบอกเหตุผล เดี๋ยวเรื่องจะยาวกันไปมาก เป็นอันว่าผมมาจบลงที่ Delphi ซึ่งเป็น ค่าย Borland คราวนี้มีปัญหาให้ขบคิดกันต่อเนื่องจากเราต้องเลือก Delphi สำหรับการเขียนโปรแกรม คำถามต่อมา "แล้วอะไรคือ Database ที่จะเก็บข้อมูล" ซึ่งตอนนั้นเราเลือก Interbase เพราะองค์กรของเรามีเงินจ่ายลิขสิทธิ์ และ Interbase ที่เราเลือกก็เป็นเวอร์ชั่นที่ซื้อน่ะครับ (ตอนนั้นยังไม่รู้จัก MySQL ,PostgreSQL เลย) แต่ยังสองจิตสองใจระหว่าง Interbase กับ MS SQL Server แต่คิดว่าในเมื่อ Borland พัฒนา Delphi+Interbase ก็น่าจะเป็นสิ่งที่เข้ากันได้ดีเพราะ Interbase ทาง Borland ก็เป็นผู้ผลิต ประกอบกับที่ผมศึกษาคุณสมบัติของ Interbase ( จะได้กล่าวภายในตอนหลัง ) คิดว่าน่าจะเป็นทางเลือกที่ดีที่สุดตอนนั้น และก็ยังไม่เลือกโอเอสเป็นลีนุกซ์ เนื่องจากตอนนั้นเป็นปี คศ.1999 ผมก็ยังคิดจะเลือกใช้ Windows NT เป็น Server เพื่อวิ่ง Interbase ผลจากการสอบถามผู้เชี่ยวชาญทางด้าน Database Server หลายท่านให้คำตอบเหมือนกันดังนี้ คือการใช้ Windows NT รัน MS SQL เป็น Server นั้นจะต้องเขียนโปรแกรมเป็นในรูปแบบ Application Server(Multi-tiers) เท่านั้นถึงจะ run ได้ดี เพราะถ้าเขียนแบบ two-tiers Windows NT จะรับงานไม่ไหว อาการตอนนั้นรู้สึกเป็นกังวลมากเนื่องจากแค่เปลี่ยนแนวการคิดจาก DOS Environment มาเป็น Windows Environment ก็แทบจะกระอักเลือดอยู่แล้ว ยังต้องมาเรียนที่มัน Advance ขึ้นไปอีก แต่ก็มีทางเลือกอีกทาง คือ ถ้าต้องการให้ รันได้แบบที่ผมต้องการ จะต้องติดตั้ง Database บน Linux ซึ่งนั่นจึงเป็นที่มาของเรื่องราว Interbase บน Linuxของผม อ้าว…ที่พูดมานี่ไม่เห็นเกี่ยวกับ Open Source/Free Software ตรงไหน ตอนที่ผมใช้มันไม่ฟรี และผมก็ซื้อมาใช้เหมือน Database ค่ายอื่นๆนั่นแหละ แต่ไม่รู้เกิดอะไรขึ้น Borland ประกาศแจกจ่าย Interbase ฟรีในปี ค.ศ. 2000 ผมเองรู้สึกเกิดอาการวูบพอสมควรเนื่องจากซื้อมาได้ประมาณปีเศษ ( เท่าที่จำได้ ) ซื้อมาฟรีเหรอนี่ แต่ทาง Borland ก็มี Version ที่จำหน่ายอยู่ด้วย ในขณะที่ทางเวอร์ชั่นที่เป็นโอเพ่นซอร์สจะดำเนินการโดยกลุ่ม Firebird ซึ่งทำให้ Interbase ในปัจจุบัน ถูกพัฒนาเป็น 2 แนวทางคือ Borland Interbase และอีกทางเป็น Firebird Interbase ดังนั้นสิ่งที่จะพูดหลังจากบรรทัดนี้ไปผมจะหมายถึง Firebird Interbase เท่านั้น

คุณสมบัติของ Firebird คุณสมบัติที่ผมกล่าวถึงนี้อาจจะไม่ตรงตามตำราเท่าไหร่นัก เนื่องจากเป็นคุณสมบัติบางส่วนที่ผมชอบและใช้อยู่ ถ้าต้องการหาข้อมูลเพิ่มเติมไปที่ http://www.ibphoenix.com
  1. อย่างทีผมกล่าวไปในตอนต้น คือมันสามารถรันได้หลาย Platform มานานแล้วอย่างน้อยก็ตั้งแต่ปี 1999 ที่ผมเริ่มใช้ สำหรับโอเอสที่รันได้มี linux ,windows ,netware ,solaris ,freebsd ,HP-UX ,AIX ,Win CE สุดท้ายตามด้วย Mac OS ตัวสุดท้ายนี่ผมถือว่ามันเป็นสุดยอดแห่ง Platform จริง ๆ
  2. ผ่านการรับรองมาตรฐาน SQL-Standard ANSI-92
  3. มี Trigger และ Store Procedure ให้ใช้เป็นการลดการ Programming ไปได้มาก และทำงานได้รวดเร็วมากขึ้น
  4. ไฟล์ของ Database เป็นแบบเดี่ยว หมายถึง เราสร้าง Database test ขึ้นมา เราจะได้แฟ้ม test.gdb มาหนึ่งตัว ซึ่งภายในจะประกอบไปด้วยหลาย ๆ Table เวลาจะ Move ไปไหนจึงช่วยให้ไม่หลงลืม
  5. สามารถ Split File ได้ เช่น ไฟล์ฐานข้อมูลมีขนาดใหญ่เกิน 2 GB บน Linux จะไม่สามารถ handle ไฟล์ได้เกินกว่า 2 GB ( Linux รุ่นเก่าหน่อย ) เราสามารถแยกไฟล์ออกเป็นไฟล์ย่อย ๆ ได้ เช่น สมมุติว่า test.gdb ขนาด 5 GB เราสามารถแตกออกเป็น test.gdb ขนาด 2 GB, test.gd0 ขนาด 2 GB และ test.gd1 ขนาด 1 GB ได้ แต่เวลา Run จะมองผ่านไฟล์ test.gdb เพียงตัวเดียว เมื่อถึงข้อมูลที่ต้องมองในลำดับถัดไปมันจะทำงานเอง
  6. ระบบ Backup Online คือ เราสามารถ Backup ได้ในขณะที่ผู้ใช้กำลังใช้งานอยู่ อันนี้ผมชอบเพราะมันดีกว่า DOS มากเลย
  7. บน Linux สามารถ Run ได้ทั้งแบบ Classic หรือ Super Server แต่ถ้าหากใช้ Windows จะทำได้เฉพาะแบบ Super Server เท่านั้น ซึ่งการ Run แบบ Classic หมายถึง user connect เข้า gdb มาจะนับ 1 process ส่วนแบบ Super Server จะรันเพียงโปรเซสเดียวแล้วไปแตก thread ภายใต้โปรเซสอีกที จากประสบการณ์ บน Linux การรันในแบบ Classic จะทำงานได้รวดเร็วกว่า Super Server มาก แต่ข้อเสีย คือ จะต้องสิ้นเปลืองหน่วยความจำมากเช่นกัน
  8. การโอนข้อมูลไปมาระหว่าง Windows กับ Linux ทำได้สะดวก ในกรณีที่มีการแอกเซสข้อมูลของ Interbase บนเครื่อง Windows แล้วอยากจะนำไปวิ่งบน Linux ถ้าทำตามสูตร คือ ต้อง Backup ที่ Windows ก่อน เสร็จแล้วต้องนำมา Restore บน Linux จากการทดสอบ ผม Copy ไฟล์เข้า Linux ก็สามารถทำงานได้เลยเช่นกัน
  9. มีเครื่องมือต่าง ๆ ในการสร้าง Firebird Database มากมาย ทั้งฟรีและไม่ฟรี ไปเสาะหากันได้ที่เว็บไซต์ดังที่ได้กล่าวแล้วข้างต้น หรือจะพิมพ์สั่งที่เซิร์ฟเวอร์โดยใช้ SQL Command โดยตรงก็ได้
วิธีการติดตั้ง สุดแสนง่ายครับ ใช้ คำสั่ง rpm -Uvh FirebirdCS-1.0.0-nnn.i386.rpm ประมาณไม่เกิน 1 นาที ก็เรียบร้อย สามารถใช้งานได้เลย เพียงแต่อาจจะต้องมีการแก้ไขคอนฟิกนิดหน่อย สำหรับกรณีที่มี Client จำนวนมาก ๆ เข้าไปที่ไฟล์ /opt/interbase/isc4_config ปรับแก้ตาม Parameter ที่ต้องการ แต่ถ้า Client ไม่มากนักก็ไม่ต้องแก้อะไร สามารถใช้งานได้เลย เรียกคำสั่ง setup ไป set service firebird ให้เริ่มทำงานทุกครั้งที่เปิดเครื่องเท่านี้ก็จบ วิธีการเซ็ต Interbase ผมว่าง่ายมากครับ ทำตามเอกสารแบบ PDF ที่ให้มาคงจะไม่มีปัญหาอะไร แต่ถ้าเป็นสมัยก่อนจะติดตั้งยากกว่านี้สมัยพอสมควร เอกสารมีให้เพียบพร้อม สาเหตุมันเคยเป็น Commercial version มาก่อนจึงมีเอกสารให้ทุกอย่างพร้อมอยู่ในนั้นอยู่แล้ว สิ่งที่ควรรู้หลังจากการติดตั้ง
การ Start/Stop Service โดยใช้คำสั่ง Start > /opt/interbase/bin/ibmgr -start -user -passwd
Stop > /opt/interbase/bin/ibmgr -stop -user -passwd
การ Backup & Restore Backup> /opt/interbase/bin/gbak -b -g -v
Restore> /opt/interbase/bin/gbak -r -v
การ Config เบื้องต้น V4_LOCK_MEM_SIZE = XXX เพิ่มให้มากกว่าเดิมกรณีมี Client จำนวนมาก ANY_LOCK_MEM_SIZE = XXX เพิ่มให้มากกว่าเดิมกรณีมี Client จำนวนมาก พูดถึงฮาร์ดแวร์บ้าง เครื่องที่ใช้เป็น Database Server ( Firebird ) นี้ใช้ฮาร์ดดิสก์ขนาก 36 GB จำนวนทั้งสิ้น 3 ตัว และมีเป้าหมายที่จะใช้จัดเก็บเอกสารที่เป็นไฟล์แบบงานผลิตที่เป็นกราฟฟิกส์ ที่มีขนาดใหญ่ ( ถ้าได้ไปอ่านที่ newsgroup ที่ให้ไว้ข้างต้นมีคนเก็บ ขนาดของ Database ถึง 200 GB ) โปรเซสเซอร์ Pentium หน่วยความจำ RAM 3 GB และจัดเตรียม Swap Partition ไว้ 6 GB ซึ่งขณะนี้ Swap ใช้ในสภาพโหลดสูงสุดประมาณ 2 GB จะทำให้อืดไปบ้าง แต่ยังพอยอมรับได้ ถ้าเพิ่มหน่วยความจำ RAM ความเร็วก็จะเพิ่มขึ้นมาแต่ก็ไม่ถึงแตกต่างกันมาก ( เคยลองแล้วไปหยิบเครื่องอื่นมาใส่ ) แต่อย่าเพิ่งตกใจว่าสเปคจะต้องมากขนาดนี้คุณมี RAM 512 MB ก็เพียงพอต่อการตอบสนองทั่วไป ตอนเริ่มต้นผมก็ใช้ 512 MB เท่านั้น ซึ่งขณะนั้นจำนวน Client มีประมาณ 50 ตัว ปัจจุบันมีกว่า 100 ตัวแล้ว จึงจำเป็นต้องปรับปรุงกันบ้าง สถานะการณ์ปัจจุบัน ปัจจุบัน Firebird พัฒนามาที่ Version 1.02 Release เมื่อ December 18,2002 แต่มีตัว Beta 1.5 ให้ทดลองใช้ ( Test Released ) ส่วน .NET ก็มีให้ใช้ด้วย ลองไปเล่นดูนะครับ ผมใช้มา 4 ปีแล้วทำงานได้เร็ว เสถียร ในสภาวะที่มี client มากกว่า 100 ตัว แต่ละตัวเปิด Connection ไปยัง Database Server ประมาณ 3 Connection โดยรวมแล้วมี Connection ที่ต่อเข้าไปเกือบ 500 connection นับว่าเป็น Connection ที่มากพอสมควร ตอนนี้ผมยังใช้ Application Developer ที่เป็นลิขสิทธิ์อยู่ แต่ท่านใดอยากจะใช้ตัวพัฒนาแอปพลิเคชั่นที่เป็น Open source เช่น PHP โดยรันที่เซิร์ฟเวอร์ส่วน Client ก็มีเพียง Web Browser เท่านั้นก็สามารถจะประหยัดไปให้องค์กรได้มาก เพราะ PHP มีฟังชั่นที่สนับสนุนการเรียก Interbase ได้โดยตรงโดยไม่จำเป็นต้องใช้ ODBC ถึงเวลานี้แทบจะบอกได้เลยว่าการนำ Linux และ Interbase Firebird มาใช้งานสามารถช่วยประหยัดให้องค์กรได้มาก โดยแท้จริงถึงแม้ว่าองค์กรของผมจะมีกำลังซื้อ เพราะคำว่า "ถูก เร็ว ดี " ถือว่าเป็นมนต์เสน่ห์ของเจ้า Firebird นี้ ลองคำนวณเล่นๆดูน่ะครับว่า ถ้าใช้ Database ที่มีลิขสิทธิ์ 100 Clients จะเป็นมูลค่าเท่าไหร่ Database License แบบถูกๆก็ประมาณ 5000 บาทต่อ client แล้ว ถ้า Linux ทำภาษาไทยได้ดีกว่านี้ป่านนี้ผมคงใช้เงินลงทุนกับ Software น้อยกว่านี้มาก เมื่อท่านอ่านบทความนี้จบ ขอให้ Firebird เป็นทางเลือกอีกทางสำหรับ ทุก ๆ Platform ที่ผมกล่าวถึง ( MySQL ไม่ฟรีบน windows) เลือกสิ่งที่เหมาะที่สุด.. ฟังการบอกเล่าประสบการณ์เกี่ยวกับการนำลีนุกซ์มาพัฒนาระบบฐานข้อมูล ภายในองค์กรของคุณมานะแล้ว คิดว่าคงช่วยให้ท่านผู้อ่านได้เห็นภาพการประยุกต์ใช้ลีนุกซ์และซอฟต์แวร์โอ เพ่นซอร์สได้ชัดเจนยิ่งขึ้นนะครับ โดยเฉพาะในเรื่องของดาต้าเบสเซิร์ฟเวอร์ที่ไม่ได้มีเพียง MS Access ,MS SQL ,MySQL หรือ PostgreSQL เท่านั้นอีกต่อไป แต่อย่างไรก็ตามดาต้าเบสเซิร์ฟเวอร์ตัวไหนที่เหมาะสมกับองค์กรของคุณ คุณเท่านั้นที่จะต้องหาคำตอบ แล้วคุณจะได้ทราบว่าบางครั้งราคาอาจจะไม่ใช้เครื่องตัดสินคุณค่าของทุกสิ่ง เสมอไป
แหล่งข้อมูลอ้างอิง
www.ibphoenix.com

เว็บไซต์อย่างเป็นทางการของ IBPhoenix และ Firebird
http://firebird.sourceforge.net

แหล่งเผยแพร่ข้อมูลของ Firebird ในฐานะ Open Source Software
news.atkin.com หรือ http://www.cvalde.com/misc/interbaseNewsgroups.htm

Newsgroup ของ Interbase
http://www.mysql.com/information/features.html
ลองเปรียบเทียบคุณสมบัติด้านต่าง ๆ ของดาต้าเบสเซิร์ฟเวอร์ได้ที่เว็บไซต์นี้

0 ความคิดเห็น:

แสดงความคิดเห็น