วันศุกร์ที่ 29 กันยายน พ.ศ. 2566

InnoDB กับ Lock wait timeout exceeded!

 ผมใช้ innoDB  ใน MySQL แล้วเจอข้อความ error นี้

Lock wait timeout exceeded; try restarting  transaction

1 thought on “InnoDB กับ Lock wait timeout exceeded!”

  1. ubuntu
    Path::::: /etc/mysql/my.cnf
    sudo nano /etc/mysql/my.cnf

    วิธีแก้คือไปเพิ่มใน my.cnf หรือ my.ini
    innodb_log_file_size = 100M
    file นี้มันเก็บ transaction ไว้ default ของมันแค่ 5mb
    มันไม่พอต้องเพิ่ม

    สมมุติสเปกเครื่องเซิร์ฟเวอร์ CPU 4 core  RAM 4 GB)

    # InnoDB Settings
    default_storage_engine          = InnoDB
    innodb_buffer_pool_instances    = 1     # Use 1 instance per 1GB of InnoDB pool size
    innodb_buffer_pool_size         = 1G    # Use up to 70-80% of RAM
    innodb_file_per_table           = 1
    innodb_flush_log_at_trx_commit  = 0
    innodb_flush_method             = O_DIRECT
    innodb_log_buffer_size          = 8M
    innodb_log_file_size            = 256M
    innodb_stats_on_metadata        = 0
    

    คำสั่งคิวรีที่ใช้ตรวจสอบค่าที่เหมาะสมของ innodb_buffer_pool_size

    SELECT CEILING(Total_InnoDB_Bytes*1.6/POWER(1024,3)) RIBPS FROM
    (SELECT SUM(data_length+index_length) Total_InnoDB_Bytes
    FROM information_schema.tables WHERE engine='InnoDB') A;
    

    เมื่อใช้ดาต้าเบสไปได้ 1-2 สัปดาห์ ให้ใช้คำสั่งคิวรีนี้เพื่อใช้ตรวจสอบว่าหน่วยความจำ GB จริงที่ถูกใช้โดย InnoDB Data ใน InnoDB Buffer Pool ในขณะนี้ถูกใช้งานไปเท่าไร

    SELECT (PagesData*PageSize)/POWER(1024,3) DataGB FROM
    (SELECT variable_value PagesData
    FROM information_schema.global_status
    WHERE variable_name='Innodb_buffer_pool_pages_data') A,
    (SELECT variable_value PageSize
    FROM information_schema.global_status
    WHERE variable_name='Innodb_page_size') B;
    

    และมีค่าอื่นๆ อีกเช่น

    join_buffer_size = 1M
    read_buffer_size = 1M
    sort_buffer_size = 2M
    read_rnd_buffer_size = 1M
    

    เสร็จแล้วให้บักทึก และ Restart การทำงาน MySql/Mariadb ใหม่อีกครั้ง

    แนะนำบทความเพื่อศึกษาเพิ่มเติม : Tuning MySQL : สำรวจตัวเองและเข้าใจตัวแปร



วันเสาร์ที่ 9 กันยายน พ.ศ. 2566

Backup VMware ESXI6.7

 Custom Pocy Regis  ///เป็นวิธีที่เสถียรมากที่สุด
--Datastore---> .VMDK.File----->Regis.VMX
https://www.youtube.com/watch?v=qU5HMZveN9E

--ไปที่เก็บ Datastore  Browser
--เลือกโฟลเดอร์ที่เก็บ vm
--หา 2 ไฟล์ 
   * 1.  .vmdk
   * 2. . vmx   // ไฟล์ Rergister


--สร้างโฟลเดอร์ ที่จะเก็บ Image