共計 4465 個字符,預計需要花費 12 分鐘才能閱讀完成。
Mysql 如何安裝 tokudb 引擎,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
平臺支持:
TokuDB 只能在 64-bit Linux 下使用.
最小內存要求:
TokuDB 需要至少 1GB 的物理內存, 當然這里建議最好是 2GB
安裝 tokuDB
tokuDB 內存分配需要 jemalloc 支持(一般安裝 percona mysql 以后自己就有,如果沒有則需要額外安裝)
1 安裝 jemalloc
yum install jemalloc
編譯安裝參考:http://blog.itpub.net/29096438/viewspace-2122906/
2:安裝 tokudb
二進制包安裝:
下載:
[root@host-192-168-1-56 plugin]# wget https://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.24-72.2/binary/tarball/Percona-Server-5.6.24-rel72.2-TokuDB.Linux.x86_64.ssl101.tar.gz
解壓拷貝 tokudb.so 至 mysql plugin 目錄即可
[root@host-192-168-1-56 plugin]# cp ha_tokudb.so /home/data/mysql/lib/plugin/
修改內核配置,禁用 transparent_hugepage,不關閉的話可能會導致 TokuDB 內存泄露(建議寫到 /etc/rc.local 中,重啟后仍可生效):
echo never /sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never /sys/kernel/mm/transparent_hugepage/enabled
echo never /sys/kernel/mm/transparent_hugepage/defrag
安裝即可
mysql INSTALL PLUGIN tokudb_file_map SONAME ha_tokudb.so
Query OK, 0 rows affected (0.07 sec)
mysql INSTALL PLUGIN tokudb_fractal_tree_info SONAME ha_tokudb.so
Query OK, 0 rows affected (0.00 sec)
mysql INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME ha_tokudb.so
Query OK, 0 rows affected (0.00 sec)
mysql INSTALL PLUGIN tokudb_trx SONAME ha_tokudb.so
Query OK, 0 rows affected (0.00 sec)
mysql INSTALL PLUGIN tokudb_locks SONAME ha_tokudb.so
Query OK, 0 rows affected (0.00 sec)
mysql INSTALL PLUGIN tokudb_lock_waits SONAME ha_tokudb.so
Query OK, 0 rows affected (0.00 sec)
mysql INSTALL PLUGIN tokudb SONAME ha_tokudb.so
Query OK, 0 rows affected (0.38 sec)
mysql show engines;
+——————–+———+—————————————————————-+————–+——+————+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+——————–+———+—————————————————————-+————–+——+————+
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| TokuDB | YES | Tokutek TokuDB Storage Engine with Fractal Tree(tm) Technology | YES | YES | YES |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
+——————–+———+—————————————————————-+————–+——+————+
10 rows in set (0.04 sec)
4 配置文件 tokudb 參數設置
[mysqld_safe]
malloc-lib=/usr/local/mysql/lib/libjemalloc.so
plugin-dir =/usr/local/mysql/lib/mysql/plugin/
#tokudb
#把 TokuDB datadir 以及 logdir 和 MySQL 的 datadir 分開,美觀點,也可以不分開,注釋掉本行以及下面 2 行即可
tokudb-data-dir = /data/mysql/zabbix_3306/tokudbData
tokudb-log-dir = /data/mysql/zabbix_3306/tokudbLog
#TokuDB 的行模式,建議用 FAST 就足夠了,如果磁盤空間很緊張,建議用 SMALL
#tokudb_row_format = tokudb_small
tokudb_row_format = tokudb_fast
tokudb_cache_size = 44G
#其他大部分配置其實可以不用修改的,只需要幾個關鍵配置即可
tokudb_commit_sync = 0
tokudb_directio = 1
tokudb_read_block_size = 128K
tokudb_read_buf_size = 128K
若將上述參數寫在 [mysqld] 下,則 show engines 中 tokudb 引擎不存在了了,失效了
若將上述參數寫在 [mysqld_safe] 下,tokudb 引擎還存在,也能建立 tokudb 表,但是這些參數配置是沒生效的。。。。。。。待解決
注意:
mysql 版本:mysql 官方社區版 5.6.24 搭建成功后 新建表就重啟,建標就重啟
錯誤日志:遇到了 bug?
Version: 5.6.24-log socket: /home/data/mydata/3308/mysql.sock port: 3308 Source distribution
08:44:47 UTC – mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=1
max_threads=8096
thread_count=1
connection_count=1
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 3220280 K bytes of memory
Hope that s ok; if not, decrease some variables in the equation.
解決辦法:換成 percona server
社區版 5.6.24
得以解決
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。