《MySQL_第三方數(shù)據(jù)庫(kù)引擎 tokudb》要點(diǎn):
本文介紹了MySQL_第三方數(shù)據(jù)庫(kù)引擎 tokudb,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
特性:高壓縮,可支持多個(gè)湊集索引,支持ACID、MVCC,使用 Fractal Tree 索引
長(zhǎng)處:
fractal tree 可以再了解下,對(duì)隨機(jī)IO有非常年夜的改善作用
fractal tree 可以快速插入及刪除,在隨機(jī)IO方面的性能比 B-tree的性能更優(yōu)
高壓縮,官網(wǎng)給出最年夜25倍
對(duì)數(shù)據(jù)及索引進(jìn)行壓縮,根據(jù)數(shù)據(jù)的可壓縮性,官網(wǎng)給出的最年夜壓縮比是 25 倍
在線索引創(chuàng)立,創(chuàng)立期間,insert delete的DML支持,update呢 ?
在線列增加刪除重定名,修改期間,insert delete的DML支持,update呢 ?
在線備份
多個(gè)湊集索引
無(wú)io讀復(fù)制
TokuDB slave可以配置,讓來(lái)自master改動(dòng)可以最小化.通過(guò)記錄fractal tree索引:
Insert/update/delete操作可以控制撤消read-modify-write的行為,然后注入消息到合適的fractal tree.
Update/delete操作可以配置取消必要io的一致性檢查.
為了使用使用無(wú)io讀復(fù)制,服務(wù)必要配置:
在replication master:
設(shè)置為binlog行模式:BINLOG_FORMAT=ROW
在replication slave:
Slave必需為只讀:read_only=1
撤消一致性檢查:tokudb_rpl_unique_checks=0
封閉查找(read-modify-write) :tokudb_rpl_lookup_rows=0
可以在一個(gè)或者多個(gè)slave上配置.只要master使用了基于行的復(fù)制,優(yōu)化在tokudb slave就可用.也便是說(shuō)如果master使用innodb或者myisam表也是可用的.
無(wú)損化,少碎片
4Mb為單元進(jìn)行存儲(chǔ)
快速恢復(fù)
恢復(fù)時(shí)長(zhǎng)少于1min
2.1 percona mysql安裝
2.2 安裝 jemalloc,管理內(nèi)存
https://github.com/jemalloc/jemalloc/releases 找個(gè)最新版本安裝就可以了
解壓過(guò)程中如果報(bào)錯(cuò)如下,請(qǐng)安裝 bzip2 包 :yum install -y bzip2
安裝成功后,在數(shù)據(jù)庫(kù)配置文件中的mysqld_safe模塊,添加引用libjemalloc.so,記得必要先找下這個(gè)文件的實(shí)際位置,然后cp或者ls一份到/usr/lib64目錄下.
在數(shù)據(jù)庫(kù)配置文件中添加引用
注意,數(shù)據(jù)庫(kù)關(guān)閉后,必要用mysqld_safe啟動(dòng)服務(wù),使用 jemalloc 管理內(nèi)存.
2.3 改動(dòng)transparent_hugepage
tokudb引擎必要啟動(dòng)透明大頁(yè),更好的提供內(nèi)存管理.
必要修改為never,如果不修改,使用tokudb引擎的時(shí)候,會(huì)在error.log中報(bào)錯(cuò)
配置如下:
2.4 安裝tokudb引擎跟percona client
官網(wǎng)下載后安裝.
2.5 啟用tokudb存儲(chǔ)引擎
安裝tokudb引擎后,會(huì)提示啟動(dòng)指令語(yǔ)法如下:
使用 ps_tokudb_admin指令 :
ps_tokudb_admin --enable -uroot -p --sock=/tmp/pmysql.sock --defaults-file=/data/mysql/mysql3306.cnf
如果正常,則是以下顯示,不正常的話,看下前面的安裝步調(diào)是不是少了
安裝生產(chǎn)后,可以在
TokuDB Version
3.1 安裝tokudb引擎后的新增文件
在數(shù)據(jù)目錄中,新增了8個(gè)文件
tokudb.environment:tokudb贏取的環(huán)境變量存儲(chǔ)文件,像創(chuàng)立時(shí)間、當(dāng)前版本號(hào)
tokudb.rollback:每一個(gè)tokudb的事務(wù),都有本身的回滾日志,具體回滾日志分配相關(guān)信息記錄在這里
tokudb.directory:映射文件夾的名字
3.2 tokudb文件管理
可以統(tǒng)一把tokudb的數(shù)據(jù)文件存儲(chǔ)在某個(gè)文件夾下,參數(shù)是 tokudb_data_dir
可以統(tǒng)一把tokudb的臨時(shí)文件存儲(chǔ)在某個(gè)文件夾下,參數(shù)是 tokudb_tmp_dir
可以統(tǒng)一把tokudb的日志文件存儲(chǔ)在某個(gè)文件夾下,參數(shù)是 tokudb_log_dir
如何遷移:
SELECT dictionary_name, internal_file_name FROM INFORMATION_SCHEMA.TokuDB_file_map;
移動(dòng) *.tokudb 文件 跟 __tokudb_lock_dont_delete_me_data 到新的存儲(chǔ)目錄
移動(dòng) __tokudb_lock_dont_delete_me_temp 到新的 存儲(chǔ)目錄
移動(dòng) 到新的 log*.tokulog* files and your __tokudb_lock_dont_delete_me_logs file 存儲(chǔ)目錄
封閉數(shù)據(jù)庫(kù)服務(wù)
配置文件中添加或者改動(dòng) tokudb_data_dir、tokudb_tmp_dir、、、
創(chuàng)立 tokudb 文件的存儲(chǔ)目錄
移動(dòng)文件
啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器
查看文件的寄存位置
3.3 問(wèn)題闡發(fā)
https://www.percona.com/doc/percona-server/5.7/tokudb/tokudb_troubleshooting.html
information_schema庫(kù)里邊的相應(yīng)系統(tǒng)視圖闡發(fā)
tokudb如何備份呢?
單表也可以使用mysqldump.全庫(kù)呢? tokudb引擎全庫(kù)備份,官方版本是使用 tokudb_backup 引擎來(lái)進(jìn)行,支持在線熱備.也就是,必要另外安裝這個(gè)引擎,安裝相對(duì)簡(jiǎn)單,使用 ps_tokudb_admin + 重啟數(shù)據(jù)庫(kù)服務(wù)預(yù)加載引擎 + ps_tokudb_admin.
4.1 安裝備份引擎
首先,確保數(shù)據(jù)庫(kù)是啟動(dòng)正常狀態(tài),執(zhí)行ps_tokudb_admin,如果 數(shù)據(jù)庫(kù)配置文件 cnf不是在 /etc/my.cnf,必要手動(dòng)指定 --defaults-file,避免無(wú)法找到配置文件寫(xiě)入 preload-hotbackup.
這個(gè)時(shí)候,可以看到提示:Successfully added preload-hotbackup option into /data/mysql/pmysql3330.cnf,查看配置文件,在 mysqld_safe 配置中,添加多了一行 配置 :preload-hotbackup.
重啟數(shù)據(jù)庫(kù)服務(wù),使用 mysqladmin封閉,mysqld_safe 啟動(dòng)
這里有個(gè)地方注意下, libHotBackup.so 記得要cp到 /usr/lib 或者 /usr/lib64的目錄下,否則mysqld_safe啟動(dòng)數(shù)據(jù)庫(kù)的時(shí)候,會(huì)報(bào)錯(cuò)如下:
這種情況下,它檢查到 安裝目錄下有 libHotBackup.so 引擎文件,會(huì)使用這個(gè)加載,必要 把這個(gè)文件拷貝到 /usr/lib64 或者 /usr/lib,再重新加載這個(gè)文件,然后再次執(zhí)行 mysqld_saft啟動(dòng)服務(wù).
數(shù)據(jù)庫(kù)啟動(dòng)后,安裝備份引擎
反省
4.2 備份tokudb
實(shí)例備份
配置前提
如果實(shí)例含有innodb引擎的表格,必要關(guān)閉 innodb異步io的變量 innodb_use_native_aio,避免出現(xiàn)數(shù)據(jù)不一致,無(wú)法恢復(fù)的備份.這個(gè)變量只能在配置文件中添加,屬于readonly變量
建立備份文件夾,這個(gè)文件夾必需是為空、授權(quán)備份文件夾可寫(xiě),因?yàn)閭浞莸臅r(shí)候,需要寫(xiě)入及創(chuàng)建文件夾,所以對(duì)其所在的文件夾需要有權(quán)限
注意,tokudb_back對(duì)自己引擎的表格,支持對(duì)單獨(dú)存儲(chǔ)的 tokudb_data_dir\ tokudb_log_dir \binary log備份,但是,不支持不支持不支持 innodb或者myisam引擎的表格另外存儲(chǔ),也就是 所有的InnoDB存儲(chǔ)引擎,MyISAM,及其他文件必須在MySQL datadir
tokubackup不備份MySQL的配置文件(S)
tokubackup不支持增量備份
配置
chown -R mysql:mysql /data/backup
在配置文件中設(shè)置 innodb_use_native_aio = OFF,重啟數(shù)據(jù)庫(kù)實(shí)例,這里注意,啟動(dòng)數(shù)據(jù)庫(kù)必要到 /usr/local/pmysql 目錄下,執(zhí)行 ./bin/mysqld_safe --defaults-file=/data/mysql/pmysql3330.cnf
建立文件夾 /data/backup/pmysql3330 ,并授權(quán)
備份分為2中,一種是實(shí)例備份,一種是指定備份,目前tokudb_backup僅支持整個(gè)實(shí)例備份,支持混合引擎,指定備份,目前采用mysqldump辦法.
實(shí)例備份
set tokudb_backup_dir='/data/backup/pmysql3330';
執(zhí)行這個(gè)指令則開(kāi)始備份,備份過(guò)程中,支持讀寫(xiě),
備份失足驗(yàn)證
表格備份
實(shí)例備份后還原
tokudbback沒(méi)有特定的函數(shù)進(jìn)行數(shù)據(jù)恢復(fù),可以使用cp或者sync到 數(shù)據(jù)目錄,或者直接使用備份目錄
注意權(quán)限改動(dòng)
《MySQL_第三方數(shù)據(jù)庫(kù)引擎 tokudb》是否對(duì)您有啟發(fā),歡迎查看更多與《MySQL_第三方數(shù)據(jù)庫(kù)引擎 tokudb》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/9186.html