如何跳過驗證在MySQL 5.7下崩潰恢復時有沒有辦法跳過表空間驗證過程?查閱資料,主要有兩種方法:
1.配置innodb_force_recovery可以使srv_force_recovery!= 0,則validate = false,即可以跳過表空間驗證。在實際測試中,設置了innodb_force_recovery =1,即強制恢復跳過壞頁,因此可以跳過驗證,然後重新啟動以正常啟動。這種臨時方式可以避免崩潰恢復後耗時的表空間驗證過程,快速啟動MySQL。我個人目前沒有發現任何隱患。2.使用* * *共享表空間而不是獨立表空間,因此您不需要打開n個ibd文件,只需打開壹個ibdata文件,這大大節省了驗證時間。聽了蔣老師用* * *共享表空間代替獨立表空間解決大表drop時性能抖動的理論後,感覺* * *共享表空間在很多業務環境中更有優勢。
臨時出現了另壹個解決方案,即使用GDB調試崩潰恢復,允許MySQL通過臨時修改validate變量的值來跳過表空間驗證過程,然後正常關閉MySQL並正常重啟。但是,實際測試表明,如果在調試模式下運行,確實可以臨時修改validate變量並跳過表空間驗證過程,但調試模式下的代碼運行效率大大降低,但花費的時間更長。然而,如果妳在非調試模式下運行,妳不能修改驗證變量,妳的想法破滅了。