Sunday, May 4, 2014

Light Weight Monitoring System (LWM) ตอนที่ 5 (จบ)

โพสต์ครั้งแรก: 21 มิถุนายน 2011

เราได้พูดถึงระบบ Light Weight Monitoring System (LWM) มาแล้วสี่ตอน ตอนนี้จะเป็นตอนสุดท้าย ซึ่งจะเป็นการนำเอาข้อมูลที่เราได้เตรียมไว้เรียบร้อยแล้วในฐานข้อมูล มาจัดให้อยู๋ในรูปแบบที่เข้าใจง่าย และแน่นอนจะต้องสร้างขึ้นและปรับปรุงข้อมูลได้ง่ายด้วย ด้วยเครื่องมือที่หาได้ทั่วไป
เราจะใช้ Excel ดึงข้อมูลผ่าน ODBC จากฐานข้อมูล LWM, ที่เราเตรียมไว้ดังได้กล่าวมาแล้วในสี่ขั้นตอนแรก เราจะมาเริ่มจากการสร้าง ODBC Data Source แล้วไปดึงข้อมูลผ่าน ODBC Data Source เข้าสู่ไฟล์ Excel 2007 โดยมีขั้นตอนดังต่อไปนี้
หากจำเป็นผู้อ่านสามารถใช้ Excel2003 แทน โดยวิธีการเข้าถึงเมนูต่าง ๆ จะต่างไปจากบน Excel2007 อยู่บ้าง ขอให้ผู้อ่านไปลองทดสอบดูนะครับ

  1. ติดตั้ง Oracle Client บนเครื่อง แล้วใช้ Net Manager หรือ Net Configuration Assistant
  2. สร้างเส้นทางการเชื่อมจาก Oracle (LWM) ไป Excel โดยใช้ ODBC
  3. ใช้ Excel ดึงข้อมูลจาก LWM และตั้งค่าให้เป็นแบบ Auto Refresh
  4. สร้างกราฟที่แสดงความเคลื่อนไหวจากข้อมูลที่ดึงมา


    สำหรับขั้นตอนที่ 1 จะไม่ขอพูดถึงในที่นี้นะครับ เพราะถือเป็นเบสิคทั่วไปแต่ขอให้แน่ใจก่อนว่าเราสามารถติดต่อกับระบบฐานข้อมูลผ่าน Oracle Net ได้ โดยอาจจะใช้ SQL*Plus หรือ Tool อื่น ๆ เช่น TOAD หรือ PL/SQL Developer ก็ได้ครับ
    เมื่อตรวจสอบแล้วว่าสามารถเชื่อมต่อกับระบบฐานข้อมูลที่ติดตั้ง LWM ไว้ได้แล้ว เราจะสร้างเส้นทางเชื่อมต่อให้ MSExcel สามารถคุยกับระบบฐานข้อมูล Oracle ได้ โดยใช้ ODBC ซึ่งมีอยู่บน Microsoft Windows ทุก ๆ เวอร์ชั่นอยู่แล้ว การติดตั้ง Oracle Client ส่วนหนึ่งจะมีการติดตั้ง Oracle Driver ไว้ในเครื่องด้วย โดย ODBC จะใช้ Driver ตัวนี้ในการติดต่อกับระบบฐานข้อมูล อ้อ..เครื่องของผมเป็น Windows XP SP3 และสำหรับ Excel เป็นเวอร์ชั่น 2007 นะครับ เริ่มกันเลยดีกว่า
    สร้างเส้นทางเชื่อมต่อ ODBC
    1. คลิ๊ก Start Menu => Settings => Control Panel, ดับเบิ้ลคลิ๊ก “Administrative Tools”, ดับเบิ้ลคลิ๊ก “Data Sources (ODBC)”
    2. ที่หน้าต่าง “ODBC Data Source Administrator” เลือกแท็บ “System DSN” แล้วคลิ๊ก Add จะปรากฎหน้าต่าง "Create New Data Source" (รูปที่ 1) เลือก Driver ที่เหมาะสมเพื่อติดต่อกับฐานข้อมูล LWM, Driver ตัวนี้คือตัวที่เกิดจากการ Install Oracle Client ในขั้นตอนแรก สำหรับเครื่องของผมเป็น "Oracle in OraHome92" จากนั้นคลิ๊ก Finish
    excel2
    รูปที่ 1: หน้าต่าง "Create New Data Source" เลือก Oracle Driver ที่เหมาะสม

    3. ที่หน้าต่าง "Oracle ODBC Driver Configuration ใส่ (รูปที่ 2)
    • Data Source Name : ชื่อ Data Source ตั้งชื่อให้เข้าใจได้ง่าย เช่น _ เป็นต้น เราจะใช้ชื่อนี้ตอนเลื่อก Connection ใน Excel
    • TNS Service Name ชื่อ TNS ที่เราตั้งไว้ Net Manager เป็นชื่อที่เราใช้ตอน Connect ดังเช่นเมื่อ Connect ด้วย SQL*PLUS เช่น scott/tiger@pao1
    • User ID : ชื่อ User ที่จะติดต่อกับฐานข้อมูล เช่น lwm
    • excel3
    รูปที่ 2: Oracle ODBC Driver Configuration

    • ทดสอบ Connection โดยคลิ๊ก "Test Connection" ใส่ Username/Password ถ้าหากว่า Configuration ใช้ได้จะขึ้นข้อความว่า "Connection Successful" คลิ๊ก OK เพื่อกลับมาที่หน้าต่าง "Oracle ODBC Driver Configuration" คลิ๊ก OK อีกครั้ง Data Source Name ที่เราสร้างขึ้นจะปรากฎใน List ของ Data Source (รูปที่ 3) คลิ๊ก OK เพื่อปิดหน้าจอ

      excel6
    รูปที่ 3: Data Source ที่เราสร้างปรากฎใน ODBC Data Source Administrator

    คราวนี้เราก็ได้เส้นทางเชื่อมต่อคือ ODBC Data Source สำหรับนำไปใช้ใน Excel ต่อไป

    ดึงข้อมูลเข้า Excel ผ่านช่องทางการเชื่อมต่อ ODBC
    1. เปิดไฟล์ Excel ใหม่ขึ้นมาแล้วเลือกเมนูหลัก Data และเมนูย่อย From Other Sources และเลือก From Microsoft Query (รูปที่ 4) จะปรากฎหน้าต่างให้เลือก "Choose Data Source"
    excel7
    รูปที่ 4 : การดึงข้อมูลจาก ODBC ใน Excel โดยเปิดเมนู "Data"

    2. ในหน้าต่าง "Choose Data Source" เลือกชื่อ Data Source ที่เราสร้างไว้ แล้วคลิ๊ก OK จะปรากฎหน้าต่างขึ้นมาให้ล็อคอิน ใส่ Username (lwm) และพาสเวิร์ดที่เราตั้งไว้ตอนสร้าง Schema (ดีฟอลต์คือ 'lwm' ซึ่งเหมือนกับชื่อ Username) คลิ๊ก OK จะปรากฎ หน้าต่าง "Query Wizard - Choose Columns" (รูปที่ 5) ขึ้นมาให้เลือกตาราง (วิว) และคอลัมน์ที่เราต้องการดึงข้อมูลมา
    excel10
    รูปที่ 5: เลือกวิว VW_SESS_MON_NORM จากใน Query Wizard

    3. ในหน้าต่าง "Query Wizard - Choose Column" เลือกวิวชื่อ "VW_SESS_MON_NORM" ซึ่งเป็นวิวที่เราสร้างขึ้นจากขั้นตอนก่อนหน้า (ตอนที่ 4) เพื่อแสดงผลของจำนวน Session พร้อม Baseline และ Maximum Last Call Elapse Time พร้อม Baseline ในวิวเดียว คลิ๊กเครื่องหมาย ">" เพื่อให้แสดงทุกคอลัมน์ของวิว คอลัมน์ทั้งหมดในวิวจะปรากฎในช่องด้านขวา จากนั้นคลิ๊ก Next ไปเรื่อย ๆ จนกระทั่งเจอหน้าต่าง "Query Wizard - Finish" (รูปที่ 6) คลิ๊ก Finish เพื่อยืนยัน
    excel11
    รูปที่ 6: หน้าต่างสุดท้ายของ Query Wizard

    4. จะปรากฎหน้าต่างเพื่อให้ระบุตำแหน่งบน Excel ที่จะนำข้อมูลลง ให้ใช้ค่าดีฟอลต์ คลิ๊ก OK
    excel12
    รูปที่ 7: เลือกตำแหน่งที่จะลงข้อมูล

    5. ข้อมูลจากวิวในฐานข้อมูลจะถูกนำมาแสดงใน Excel Sheet ดังรูปที่ 8 คลิ๊กขวาบนพื้นที่ที่มีข้อมูลปรากฎอยู่ เลือก Table => External Data Properties
    excel16
    รูปที่ 8: ข้อมูลจากฐานข้อมูลปรากฎใน Excel

    6. ที่หน้าต่าง External Data Properties คลิ๊กปุ่ม Properties ข้าง ๆ ชื่อของ Connection
    excel17
    รูปที่ 9: คลิ๊กปุ่ม Properties ขวามือของชื่อ Connection

    7. ในหน้าต่าง Connection Properties ที่แท็บ "Usage" ทำเครื่องหมายถูกที่ "Refresh every ... minutes" และใส่เลข 1 ในช่องว่าง เพื่อให้ระบบ Refresh ทุก 1 นาที ดังรูปที่ 10
    excel18
    รูปที่ 10: การตั้งค่าให้ระบบ Refresh ทุกช่วงเวลาที่กำหนด

    8. คลิ๊กที่แท็บ "Definition"แล้วคลิ๊ก "Save password" ซึ่งจะทำให้เมื่อเรา Refresh ข้อมูลจากใน Excel แล้วไม่ต้องใส่พาสเวิร์ดอีก เมื่อเสร็จแล้ว คลิ๊ก OK
    excel19
    รูปที่ 11: เข้าแท็บ "Definition" เพื่อ Save Password

    มาถึงตอนนี้ข้อมูลใน Excel ที่เรา Import ข้อมูลไว้ ควรจะ Refresh ข้อมูลใหม่ทุก 1 นาที ให้ Save ไฟล์ในชื่อ LWM_SID.xlsx โดย SID คือชื่อของฐานข้อมูลของคุณเอง

    กราฟที่มีชีวิต ความสำเร็จอยู่แค่เอื้อม
    ถ้าเราสังเกตข้อมูลในไฟล์ Excel ที่เราเพิ่งทำเสร็จ จะเห็นว่าวันที่และเวลาที่ปรากฎในไฟล์จะมีแค่หนึ่งชั่วโมงเท่านั้นเช่น 9:00-10:00 ซึ่งเมื่อเวลาผ่านไปหนึ่งนาที ข้อมูลแถวสุดท้าย (ข้อมูลตอน 10:00) จะกลายมาเป็นแถวรองสุดท้าย แล้วแถวสุดท้ายจะถูกแทนด้วยข้อมุลตอน 10:01 แทน เช่นเดียวกันข้อมูลเมื่อ 9:00 จะไม่ปรากฎบนแถวบนสุดแล้ว แต่จะถูกแทนที่ด้วยข้อมูลตอน 9:01 และจะเป็นเช่นนี้ไปเรื่อย ๆ ทุก ๆ นาที
    ข้อมูลที่เคลื่อนไหวเช่นนี้เมื่อเรานำมาสร้างกราฟ เราก็จะได้กราฟที่มีการเคลื่อนไหวคล้ายกับกราฟที่ปรากฎใน Performance Monitor หรือใน Performance Tab ใน Task Manager หรือแม้แต่ Active Session History ใน Oracle Enterprise Manager
    เราลองมาสร้างกราฟกันดีกว่า ขั้นตอนการสร้างพื้นฐานไม่ซับซ้อนเลย คุณอาจจะลองปรับเปลี่ยนคุณสมบัติหรือหน้าตาของกราฟเพื่อให้เข้าใจง่ายกับงานของคุณเอง ลองดูครับ สนุกดีทีเดียว!
    1. ไปที่เมนู Insert ในส่วนของ Chart เลือก "Line" แล้วเลือก 2-D Line อันแรกสุด ดังรูปที่ 12
    excel22
    รูปที่ 12: การเข้าถึงเมนูในการสร้างกราฟใน Excel
    2. จะปรากฎกราฟบนหน้าจอ คุณสามารถจัดแต่งกราฟได้ตามที่ต้องการเพื่อให้ดูง่ายสำหรับตัวคุณเอง
    excel23
    รูปที่ 13: กราฟที่เพิ่งสร้างเสร็จ

    3. ลองปรับแต่งสีสันให้ดูง่ายขึ้น ผมย้ายเอาส่วนของตารางข้อมูลไปไว้ทางขวาของชีท และเอากราฟวางไว้ทางซ้าย และเปลี่ยนสีของกราฟเล็กน้อยดังรูปที่ 14
    excel24
    รูปที่ 14: ปรุงแต่งรูปแบบให้กราฟดูง่าย
    สรุป
    วัตถุประสงค์ของ LWM คือเพื่อให้เราสามารถตรวจตราการทำงานของระบบฐานข้อมูล โดยกินทรัพยากรน้อย คล่องตัว ติดตั้งและจัดการง่าย มีประสิทธิภาพโดยสะท้อนภาพปัจจุบันของการใช้งานฐานข้อมูลของ Session ต่าง ๆ โดยรวม หวังว่าจะเป็นประโยชน์บ้าง ผู้อ่านสามารถนำไปใช้ได้นะครับ โดยเฉพาะผู้ที่ใช้ Oracle9i ลงไป หากได้ผลยังไงช่วยส่งข่าวด้วยนะคร๊าบบบบ...

    หมายเหตุ
    จากการทดลองใช้จริง พบว่าเมื่อทำการ Refresh ผ่าน Worksheet บน Excel จะมีจำนวน Session ล็อกอินเข้ามาเท่ากับจำนวนครั้งของการ Refresh เช่นถ้าให้ Refresh ทุกหนึ่งนาที ในหนึ่งชั่วโมงจะมี Session ล็อกอินเข้ามา 60 Session จำนวน Session เหล่านี้อาจจะเป็นปัญหาคือทำให้ Session เต็ม ซึ่งเราสามารถทำเป็น Job เพือ Kill Session เหล่านี้ออกไป ณ ช่วงเวลาหนึ่ง ส่วนวิธีการไม่ได้เป็นส่วนที่เราสนใจในบทความนี้ ฝากผู้อ่านที่สนใจค้นหาหรือพัฒนาต่อไปละกันครับ

    No comments:

    Post a Comment