[HOSxP Tip] ริวิวการเครีย Log ( admin ใจกล้า)
ตอบคำถาม น้องๆ IT มือใหม่ ที่จะเป็น Admin ใจกล้าคนต่อไป….
พวกตาราง log ในฐาน hosxp สามารถเครีย หรือลบได้ไหม ?
ตอบ. ได้….แต่ควรรู้ก่อนว่ามีตารางไหนบ้าง และได้รับมอบหมายจาก หัวหน้ามาอีกทีนะ (อย่าไปทำซุ่มสี่ซุ่มห้า …อย่าคิดว่าหวังดี… ควรแจ้ง IM หรือผู้มีส่วนเกี่ยวข้องก่อนนะ)
มาเริ่มกันเลย (ถ้าอะไรๆ ก็น้องทำเลย พี่ให้น้องตัดสินใจ 5555)
ตาราง log ที่อยู่ใน hosxp เอาที่ผมทราบว่ามันเก็บไว้ทำไมนะครับ อันไหนผมไม่ทราบ ผมก็ไม่ทำอะไรนะ
1. replicate_log
2. vn_stat_log
3. ksklog
4. report_access_log
5. opitemrece_delete_log
6. opitemrece_log
7. patient_emr_log
8. lab_entry_log
9. pttype_log
10. rx_operator_log
11. lab_access_log
12. opitemrece_finance_log
13. pcu_dw_track
14. ……ถ้ามี……….
ต่อมา …ตรวจสอบก่อนว่าพื้นที่ใน hdd ของ server hosxp เราใช้อยู่นี้ใช้ไปแล้วเท่าไหร่ ใช้คำสั่ง df -h
(ทำท่าตกใจ)….. hdd ใกล้จะเต็มแล้ว ใช้งานไปแล้ว 92% เลย เหลือพอให้ใช้งานแค่ 27G
ต่อมา ใช้คำสั่ง du -m /var/lib/mysql/
ฐาน Log + image ผมเก็บไว้ที่ database ชื่อ hos_dansai นะ ใช้งานไปแล้ว 91 G และ ฐาน hos ใช้งานไปแล้ว 183 G รวมๆแล้วของฐาน hosxp ใช้งานทั้งหมด 274 G (อันนี้ขึ้นอยู่กับว่าใน server นี้มีฐานอื่นๆ หรือตารางอื่นๆ ของโปรแกรมอื่นๆ มาฝังไว้หรือไม่ โดยปกติแล้วผมไม่แนะนำให้สร้างตารางเอง ในฐาน hosxp นะครับ ควรแยกไปสร้างฐานใหม่ ไว้อีก server
-ข้อสังเกตุ ถ้าพื้นที่ใน hdd เราใกล้เต็ม เช่นใช้งานไปแล้ว 95% ของพื้นที่ทั้งหมด โปรแกรม hosxp จะใช้งานช้ามากๆ และหน่วงด้วย แค่ query เล็กๆ ก็ทำให้ระบบ hosxp หน่วงได้เช่นกัน
อ้า….ต่อมาเรามาเครีย log กันครับ มีหลายวิธี จะใช้ tool ของ BMS หรือ ค่ายไหนก็ได้นะครับ ส่วนผมจะแนะนำเฉพาะที่ผมใช้งานและทำอยู่ประจำๆ นะครับ
1. ใช้โปรแกรม NamoLog เข้าไปเครียทีละเดือน
กรณีนี้ก็เลือกทีละตาราง และเลือกเดือนที่จะลบ ได้ แต่จะใช้เวลานานหน่อย เพราะลบทีละเดือน
2. ลบแบบ admin ใจกล้า
โดยใช้คำสั่ง truncate table xxxxx;
xxxxx = คือชื่อตาราง เช่น
คำสั่ง truncate คือ การลบข้อมูลที่มีขนาดใหญ่ จะมีประสิทธิภาพมากกว่า delete from table เพราะ delete สามารถทำการ roll back ได้ แต่ truncate จะทำได้เฉพาะใน Transaction เท่านั้น (ก็ให้พิจารณา ใช้งานดูดีๆ นะครับ แล้วแต่ความสำคัญของข้อมูลครับ)
สังเกตุว่า Query OK, 0 rows affected (1.01 sec) หมายถึงว่าคำสั่งนี้ทำงานเร็วมาก ใช้เวลาไป 1.01 วินาที ก็เสร็จแล้ว
ต่อมาก็ไปเลือกตาราง log ที่เหลือ ที่เราจะรันคำสั่ง truncate นะครับ
ถ้าทำจนเสร็จแล้วทุกตาราง log แล้ว ก็กลับตรวจสอบพื้นที่ใหม่ ดูอีกทีครับว่าเหลือพื่นที่เท่าไหร่
(ทำท่าดีใจสุดๆ….) มีพื่นที่เหลือใช้อีก 111G (จากเดิมเหลือแค่ 27G)
OK ยังใช้งานต่อไปได้อีก 2 – 3 ปี (แต่มีแผนว่าจะเปลี่ยนไปใช้ SSD ปีหน้า เดี่ยวมาเขียนให้อ่านกันนะครับ)
สุดท้ายเราก็สั่ง mysql_upgrade –force -uroot -p
แล้วกรอกรหัสผ่าน แล้วกด enter
ปล. ถ้าใครยังไม่มั่นใจ หรือ ใครใช้งานนาน แบบไม่เคย restart server เลยเป็นเวลา 1 ปี ขึ้นไป แนะนำอย่าเพิ่งสั่งคำสั่ง mysql_upgrade นะครับ ให้สำรองข้อมูลก่อน แล้วค่อยรันคำสั่งนี้อีกที เพื่อความปลอดภัยของตัว admin เองนะครับ (มี รพ. บางแห่ง เป็นมาแล้ว เพราะใช้ server นานมาก ๆ แล้วไม่เคย restart เครื่องเลย อาจจะมีปัญหาไฟล์ค้าง หรือ ไฟล์ system เสียอยู่ก่อนแล้ว เน้นสำรองข้อมูลก่อนจะทำอะไรทุกครั้ง)
รอดูสถานะสุดท้ายของคำสั่ง mysql_upgrade –force -uroot -p
ถ้าขึ้น OK ก็แสดงว่าใช้งานได้แล้วละครับ ทำงานต่อไปได้เลย
ประสบการณ์การเครีย log ผมก็ประมาณนี้แหละครับ สมาชิกท่านไหนมีข้อเสนอแนะ รบกวนแจ้งผมด้วยนะครับ
ขอบคุณที่ติดตาม แล้วพบกันใหม่ครับ…..