close

完成了cluster的配置後,

我們打算安裝TokuDB , 此DB engine是大數據的解決方案,

(5.5.34與10.0.6之前,TokuDB需要額外安裝 請參考Enabling TokuDB)

所以安裝直接跳過 

 

啟用toku plugin設定vi /etc/my.cnf.d/tokudb.cnf

plugin-load-add=ha_tokudb.so

service mysql restart

 

啟用TokuDB

MariaDB [(none)]> INSTALL SONAME 'ha_tokudb';

但如果沒有停用Transparent Huge Pages時, 啟用tokuDB,會出現以下錯誤

ERROR 1123 (HY000): Can't initialize function 'TokuDB'; Plugin initialization function failed

這時就必須檢查Linux是否有啟用Transparent Huge Pages,

至於為何TokuDB啟用時不能啟用THP,是因為這項功能會導致TokuKV在記憶體的使用追蹤上將導致記憶體的使用過量. 

cat /sys/kernel/mm/transparent_hugepage/enabled

回應 always madvise [never] --> 停用 Transparent Hugepages,很明顯這行不會出現的

回應 [always] madvise never --> 啟用 Transparent Hugepages

 

停用Transparent Huge Pages

新增 vi /etc/default/grub 內容
GRUB_CMDLINE_LINUX_DEFAULT="transparent_hugepage=never"

更新開機套用設定
grub2-mkconfig -o /boot/grub2/grub.cfg "$@"

 

另一個方式,新增 vi /etc/rc.local 內容 (參考 disable transparent hugepages)

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

如果要runtime生效的話,執行

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
  #(這一行似乎不必要,但官網有我放上來)


在Enable TokuDB一次

MariaDB [(none)]> INSTALL SONAME 'ha_tokudb';

Query OK, 0 rows affected (0.14 sec)

檢查一下database engine,如圖都已經Support了

MariaDB [(none)]> show engines;

TokuDB.png

之後重開會自動enable tokudb了.

 

建立Tokudb類型的表格試試,大功告成. 

最後可以看看innoDB與TokuDB的比較 LinkeBench MySQL

結論就是 TokuDB最適合在節省空間的大量寫入情境下使用.

tokudb_create_table.png

 

參考

官網Enabling TokuDB

arrow
arrow
    文章標籤
    TokuDB MariaDB 10.1
    全站熱搜
    創作者介紹
    創作者 abcg5 的頭像
    abcg5

    Aaron Yang

    abcg5 發表在 痞客邦 留言(0) 人氣()