Category: Database

How to find and kill an advisory lock query?

เมื่อรัน application หรือ query database postgreSQL แล้วพบ “advisory lock” เราจำเป็นต้องตรวจสอบ query ที่ทำให้เกิด Lock และ kill query นั้นทิ้ง เพื่อให้ระบบสามารถืำงานได้ต่อ วิธีการตรวจสอบและแก้ไข ใช้คำสั่งด้านล่างนี้เพื่อตรวจสอบ PID ที่ทำให้เกิด “advisory lock” SELECT * FROM pg_locks JOIN pg_stat_activity…

MySQL Replication: ‘Got fatal error 1236’

ระบบ MySQL replication จะมีการทำงานโดย slave จะดึงข้อมูลจาก binlog ที่ master server เพื่อไปทำการ replay ที่เครื่อง slave เอง ซึ่งถ้าหากเกิดปัญหา slave หยุดทำงานด้วย error 1236 ดังข้างล่าง เราสามาถทำการแก้ไขอย่างไร และสาเหตุเกิดจากอะไรมาดูกันครับ Last_IO_Error: Got fatal error 1236 from master…

How to fix “Cannot load from mysql.proc. The table is probably corrupted”

ถ้าหากพบ error message เหมือนด้านล่างหลังจากที่ execute คำสั่งบน MySQL "Error: Cannot load from mysql.proc. The table is probably corrupted" สาเหตุเกิดจาก schema ของ mysql server เป็นคนละ version กับที่ใช้งานอยู่ในปัจจุบัน วิธีการแก้ไข ให้รันคำสั่ง mysql_upgrade เพื่อทำการ upgrade…

How to enables command-line history in SQL*PLUS

SQL*PLUS (sqlplus) จะไม่สามารถกด ↑ “ขึ้น” หรือ ↓ “ลง” เพื่อดูคำสั่งก่อนหน้าได้ แต่สามารถตรวจสอบคำสั่งก่อนหน้าได้ 1 คำสั่งเท่านั้น ซึ่งอาจจะทำให้ไม่สะดวกในการใช้งาน เพราะถ้าหากต้องการส่งคำสั่งก่อนหน้าจำเป็นต้องพิมพ์ใหม่อีกครั้ง สำหรับ linux เราสามารถใช้ rlwrap ซึ่งทำหน้าที่เป็น intercept คำสั่ง SQL*PLUS ที่ user input เข้ามาไปเก็บไว้ใน history เพื่อให้ user สามารถดูคำสั่งย้อนหลังได้จากการกด…

How to turn off Oracle password expiration

โดย default แล้ว User บน Oracle จะมีอายุ password สูงสุด 180 วัน ซึ่ง user จำเป็นต้องทำการเปลี่ยน password ใหม่ แต่ถ้าหากไม่ต้องการให้มีการกำหนดอายุของ password ก็สามารถทำได้โดยแก้ไขค่า PASSWORD_LIFE_TIME ให้เป็น unlimited บน profile ที่ user คนนั้นใช้งานอยู่

Export mysql database based on a where condition

MYSQLDUMP เป็นโปรแกรมที่เอาไว้ใช้ในการ export data จาก MySQL database ซึ่งโดยการใช้งานทั่วไปแล้วนิยมนำ MYSQLDUMP มาใช้ในการ export ข้อมูลออกมาหมดทั้งหมด (table หรือ database) แต่ถ้าหากต้องการ export ข้อมูลบางส่วนออกมาด้วยการใช้ where ก็สามารถทำได้เช่นกัน โดยให้ใช้ option –where แล้วตามด้วยเงื่อนไขต่างๆ ดังตัวอย่างด้านล่างนี้ export ข้อมูลเป็น SQL format