失敗的mysql cluster配置-無法順利轉換已有資料

season0891發表於2009-07-28
本文轉自:

失敗的mysql cluster配置-無法順利轉換已有資料


額配置了1個cluster,但測試下來始終無法體會到高性 能,在初始轉換表的過程中就落敗下來,表透過alter table,以及直接執行sql建立,都無法成功; 配置的ndb節點資料增長迅速,原來mysql下只有不到200M的檔案,在ndb cluster下達到6G之多.最後是出現ndb節點意外down掉.

請教成功執行的各位:
(1)你們的表結構中是否很少定義有vchar 255這樣位元組的變數?
檢視cluster的mail list和 論壇,懷疑因為現有表中有定義過多256個位元組變數導致資料增長迅猛的;
(2)重啟cluster花費的時間很長嗎?
測試下來,隨著ndb notes data的不斷增加,每次重啟cluster服務,需要等待nodes從starting狀態到正常這段時間也越長
(3)是否還有其他的引數需要配置,才能

下面是相關配置:
按文件,配置完成2個節點執行cluster. 1臺作為ndb管理節點+ndb節點+sql 節點; 1臺作為ndb節點+sql 節點;
mysql 為5.0.24, 沒有用max版本,是編譯出來的(不知是否會有影響--without-debug --with-extra-charsets=complex --prefix=/usr/local/mysql --without-bench --with-archive-storage-engine --with-ndbcluster)
欲轉換已有1個db,在ndb下執行, 初始使用alter table engine=ndbcluster ,按ndb_size.pl工具測得引數如下:

Parameter          4.1          5.0          5.1
DataMemory (kb)         1335136         1335136         239072
IndexMemory (kb)         161168         81136         81136
MaxNoOfTables         88         88         88
MaxNoOfAttributes         529         529         529
MaxNoOfOrderedIndexes         91         91         91
MaxNoOfUniqueHashIndexes         91         91         91
MaxNoOfTriggers         364         364         364

實際配置檔案中大小均有增加:
(有些引數是在alter table是出現table is full以及truncate timeout之類的錯誤後進行調整新增的,比如TimeBetweenLocalCheckpoints,NoOfFragmentLogFiles, 很多引數調整或者出錯後都執行了ndbd --initial)


# Options affecting ndbd processes on all data nodes:
[NDBD DEFAULT]   
NoOfReplicas=2   
DataMemory=1800M   
IndexMemory=200M   

MaxNoOfAttributes=10000
MaxNoOfTables=1760
MaxNoOfUniqueHashIndexes=5000
MaxNoOfOrderedIndexes=5000
MaxNoOfTriggers=4000
TimeBetweenLocalCheckpoints=2
NoOfFragmentLogFiles=100

# TCP/IP options:
[TCP DEFAULT]     
portnumber=2202   

# Management process options:
[NDB_MGMD]                     
id = 1
hostname=192.168.100.225         
datadir=/usr/local/mysql-cluster

# Options for data node "A":
[NDBD]                          
id = 2                              
hostname=192.168.100.206           
datadir=/usr/local/mysql/data   

# Options for data node "B":
[NDBD]
id = 3                          
hostname=192.168.100.225        
datadir=/usr/local/mysql/data  

# SQL node options:
[MYSQLD]
id = 4                        
hostname=192.168.100.206      

# SQL node options:
[MYSQLD]
id = 5                        
hostname=192.168.100.225

2006-8-29 16:06 stlaw
漏了這2個了
(3)是否還有其他的引數需要配置,從而最佳化cluster?
(4)cluster中,對於一張表是否能同時存在primary key 以及unique key?

alter table遇到的error:
1.  ERROR 1114 (HY000): The table '#sql-7157_2' is full
出現這個是配置的DataMemory數值不夠,需要加大;
2. ERROR 1297 (HY000): Got temporary error 410 'REDO log files overloaded, consult online manual (decrease TimeBetweenLocalCheckpoints, and|or incre' from ndbcluster
出現這個錯誤後,調整了TimeBetweenLocalCheckpoints=2; NoOfFragmentLogFiles=100 這2個引數,
而且要--initial才能生效;
3. Internal program error (failed ndbrequire) (Internal error, programming error or missing error message, please report a bug)
ndb note 的服務自動停止, 每次重啟cluster無法啟動(這時該節點上的資料data dir佔用空間6G多),後來只有 --initial

執行sql語句建立表時遇到的問題:
1. ERROR 1022 (23000) at line 49: Can't write; duplicate key in table 'members'
懷疑是此表有1個unique key ,加上cluster中每個表都必須要有primary key,有所衝突造成;
2. mysql> delete from members;
ERROR 1297 (HY000): Got temporary error 233 'Out of operation records in transaction coordinator (increase MaxNoOfConcurrentOperations)' from ndbcluster
在執行delete 刪表的時候出現的錯誤,但後來透過 truncate table 刪表成功;

請配置過cluster的各位發表一下建議阿, cluster 應該沒那麼弱吧, 難道免費的效能就不好嗎?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-610665/,如需轉載,請註明出處,否則將追究法律責任。

相關文章