Percona Server 的安装及tokudb引擎的安装笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

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  












本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1945419,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL 关系型数据库 Linux
Winsows Server 2019 安装 PostgreSQL
环境准备 windows server 2019 镜像文件,官网地址 =》Windows Server 2019 | Microsoft postgresql 12.x for windows,官网地址=》PostgreSQL: The world&#39;s most advanced open source database 准备一个满足以上条件的服务器;(物理机,VM 均可)以上环境中安装 windows server 2019 的环节省略,...
420 0
Winsows Server 2019 安装 PostgreSQL
|
存储 关系型数据库 MySQL
MySQL - 下载安装过程问题解决 Starting Server(百度经验里的安装教程有坑)
MySQL - 下载安装过程问题解决 Starting Server(百度经验里的安装教程有坑)
189 0
|
存储 关系型数据库 MySQL
基于 Percona Server for MySQL 体验 MyRocks
RocksDB是facebook基于LevelDB实现的一款可嵌入式的持久化键值(Key-Value)存储数据库,目前为facebook内部大量业务提供服务。由于其有高性能和高适配性的特点,所以被大量的应用于对传统数据库引擎的高性能改造,例如商业数据库引擎 TerarkDB 分布式关系型数据库 TIDB 等都是应用了 ROCKSDB 来实现高性能的。
3917 0
|
关系型数据库 MySQL Unix
MySQL中的Percona-toolkit工具由来漫谈
首先问一个问题,你听说过下面这两个工具吗? Maatkit 和Aspersa 如果听过,可能就暴露年龄了,你如果现在去查Aspersa相关的文章,会发现下载链接之类的都不可用了。
1710 0
|
存储 Web App开发 关系型数据库
|
关系型数据库 MySQL Perl
percona server 源码编译安装
mysql percona server source code 源码编译安装脚本(5.7.18)
2089 0