您好,登錄后才能下訂單哦!
Percona Server 的安裝及tokudb引擎的安裝筆記
2017年7月7日
安裝percona server:
yum localinstall Percona-Server-client-57-5.7.18-15.1.el6.x86_64.rpm Percona-Server-shared-57-5.7.18-15.1.el6.x86_64.rpm Percona-Server-server-57-5.7.18-15.1.el6.x86_64.rpm Percona-Server-tokudb-57-5.7.18-15.1.el6.x86_64.rpm
安裝過程中,會自動安裝jmelloc組件。
/etc/my.cnf 內容如下:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
datadir = /var/lib/mysql
innodb_file_per_table=ON
character-set-server = utf8
server_id=1000
join_buffer_size = 256K
thread_stack = 256K
default_storage_engine = InnoDB
max_connections = 2000
#slave-skip-errors = 1032,1062
#性能相關調節
#跳過外部鎖定,用于多進程條件下為MyISAM數據表進行鎖定
skip-external-locking
sort_buffer_size = 4M
read_buffer_size = 4M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
#自適應哈希索引,在高并發復雜sql場景下有可能引發系統資源不足,大量spin waits ,lock waits 鎖等待,導致崩潰
skip-innodb_adaptive_hash_index
#為所有線程打開表的數量
table_open_cache = 2048
#索引塊的緩沖區大小
key_buffer_size = 128M
#MySQL查詢結果緩沖區的大小
query_cache_type = OFF
query_cache_size = 0
#處理大的信息包量
max_allowed_packet = 16M
#1G=>8 2G=>16 3G=>32 >3G=>64
#緩存可重用的線程數
thread_cache_size = 64
event_scheduler = 1
long_query_time = 1
slow_query_log=1
slow_query_log_file = /var/lib/mysql/log-slow-queries.log
log-error = /var/lib/mysql/error.log
max_binlog_size = 256m
transaction_isolation = READ-COMMITTED
#innodb_io_capacity=1000
master_info_repository = TABLE
relay_log_info_repository = TABLE
relay_log_recovery = 1 #crash safe
log-bin=mysql-bin
binlog_format=row
sync_binlog =1
log-slave-updates
log_bin_trust_function_creators = 1
binlog_rows_query_log_events=ON
expire_logs_days = 5
auto_increment_increment=1
auto_increment_offset=1
skip-slave-start
skip-name-resolve
binlog_cache_size = 16M
binlog_stmt_cache_size=16M
########innodb settings########
innodb_buffer_pool_instances = 4 #小于邏輯CPU個數,盡可能調大一點
innodb_log_buffer_size = 16777216
innodb_read_io_threads = 4 #小于邏輯CPU個數/2,盡可能調大一點
innodb_write_io_threads=4 # <=(邏輯CPU個數 -read_io_threads) ,盡可能調大一點
innodb_purge_threads = 2
innodb_flush_method=O_DIRECT
# Timeout
connect_timeout = 20
wait_timeout = 14400
interactive_timeout = 14400
net_write_timeout = 180
lock_wait_timeout = 120
tmp_table_size=200M
max_heap_table_size=200M
sql_mode = 'NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER'
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
prompt ='[\\u@\\h:\\d] >'
[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
初始化數據庫:
/usr/sbin/mysqld --initialize-insecure --basedir=/usr/sbin/ --user=mysql --datadir=/var/lib/mysql/
# 說明:使用 --initialize-insecure參數,不讓mysqld初始化時候生成隨機密碼,保持空密碼
啟動數據庫:
/etc/init.d/mysql start
設置數據庫密碼:
mysql
> set password=PASSWORD('Abcd@1234');
> flush privileges;
> exit
然后,開始安裝tokudb引擎:
官方詳細的安裝步驟: https://www.percona.com/doc/percona-server/5.7/tokudb/tokudb_installation.html
1 禁用Transparent huge pages
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
always代表已啟用
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 將設置寫入到文件,防止重啟配置丟失
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
2、安裝并啟用tokudb引擎:
## 可以使用INSTALL PLUGIN方法安裝,也可以使用ps_tokudb_admin這個工具進行配置(推薦使用ps_tokudb_admin)
執行 ps_tokudb_admin -uroot -pAbcd@1234 --enable
會自動在 /etc/my.cnf 在加入下面的1行配置
[mysqld_safe]
thp-setting=never
然后再執行 ps_tokudb_admin -uroot -pAbcd@1234 --enable-backup
會自動在 /etc/my.cnf 在加入下面的1行配置
[mysqld_safe]
preload-hotbackup
這樣就完成了TokuDB engine plugin和TokuBackup plugin插件的安裝。
重啟mysqld進程。
/etc/init.d/mysql restart
mysql -uroot -pAbcd@1234
> show engines;
> show plugins;
> SELECT @@tokudb_version;
都可以看到tokudb啟用了。
這樣的話,我們重啟了mysqld或者整個服務器的話,tokudb引擎也能在mysql重啟時候再次自動加載。
安裝好tokudb引擎后,我們還可以自定義tokudb的參數在/etc/my.cnf里面。例如下面的2行:
### tokudb settings ########
tokudb_cache_size = 5G # 這個參數根據自己服務中可能使用到tokudb引擎的表數量來設置
tokudb_row_format=tokudb_zlib # 設置默認tokudb行格式,有tokudb_zlib 和 tokudb_lzma
此外,還有些tokudb特有的配置參數,可以補充到/etc/my.cnf 里面,例如下面的部分配置:
#TokuDB的行模式,建議用 FAST ,如果磁盤空間很緊張,建議用 SMALL
#tokudb_default: 設置默認的壓縮行為。在 TokuDB 7.1.0版本,默認使用zlib 庫進行壓縮,未來版本可能會改變。
#tokudb_fast: 使用quicklz 庫的壓縮模式。
#tokudb_small: 使用 lzma 庫的壓縮模式。
#tokudb_zlib: 使用 zlib 庫的壓縮模式,提供了中等級別的壓縮比和中等級別的CPU消耗。
#tokudb_quicklz: 使用 quicklz 庫的壓縮模式, 提供了輕量級的壓縮比和較低基本的CPU消耗。
#tokudb_lzma: 使用lzma庫壓縮模式,提供了高壓縮比和高CPU消耗。
#tokudb_uncompressed: 不使用壓縮模式。
#tokudb_row_format = tokudb_small
tokudb_row_format = tokudb_fast
tokudb_cache_size = 1G ###建議內存的一半
tokudb_commit_sync = 0
tokudb_directio = 1
tokudb_read_block_size = 128K
tokudb_read_buf_size = 128K
optimizer_switch = 'mrr=on,mrr_cost_based=off'
tokudb-data-dir = /mydata/3306/tokudbData
tokudb-log-dir = /mydata/3306/tokudbLog
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。