首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL Cluster 錯誤 291「Out of scanfrag records」參數調優解決

     編輯:MySQL 資料庫相關知識

錯誤現象

SQL Error: 1297, SQLState: HY000
Got temporary error 291 'Out of scanfrag records in TC (increase MaxNoOfLocalScans)' from NDBCLUSTER

發生於高並發掃描場景,本地掃描記錄耗盡。

解決方案:調大 MaxNoOfLocalScans

編輯 config.ini(管理節點配置),在每個 [ndbd] 區段新增:

[ndbd]
id=2
hostname=192.168.110.9
datadir=/usr/local/mysql/mysql-cluster
MaxNoOfLocalScans=1000  # 預設 256,視負載調大

[ndbd]
id=3
hostname=192.168.110.10
datadir=/usr/local/mysql/mysql-cluster
MaxNoOfLocalScans=1000

原理與調優建議

  • 並行掃描可分散到多節點,效能最佳;非並行掃描會產生大量本地掃描片段。
  • MaxNoOfLocalScans 限制單節點同時進行的本地掃描數,預設 256 易不足。
  • 調大後需滾動重啟數據節點生效(ndb_mgm -e "2 RESTART")。
  • 觀察 ndbinfo.scan_memory_usage 監控實際使用量,避免過大浪費記憶體。

虛擬機測試驗證通過,線上建議分批灰度調整。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved