“ 尽力做好一件事,实乃人生之首务。”
为什么使用TokuDB引擎?
Mariadb 数据库默认使用Innodb,随着存储数据越来越大,磁盘空间要求就越来越大,在我们有限的资源情况下选择使用TokuDB引擎来满足我们的需求。
TokuDB的特点
· 高压缩比,官方宣称可以达到1:12。
· 高insert性能,官方称至少比innodb高9倍。
· 可以在线添加索引和字段,速度快
01
—
编译tokudb-xtrabackup工具
系统环境:centos 7.2
数据库:mariadb-10.0.13
官方文档:https://github.com/xelabs/tokudb-xtrabackup/wiki/How-to-build
安装依赖包:
wget http://dist.schmorp.de/libev/libev-4.33.tar.gz
tar -xf libev-4.33.tar.gz && cd libev-4.33
./configure
make && make install
开始编译:
yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bison libtool ncurses-devel libgcrypt-devel libev-devel libcurl-devel vim-common unzip -y
wget https://github.com/xelabs/tokudb-xtrabackup/archive/refs/heads/2.4.zip
注意:如果下载不了,请自行科学上网到https://github.com/xelabs/tokudb-xtrabackup下载
unzip tokudb-xtrabackup-2.4.zip &&mv tokudb-xtrabackup-2.4 tokudb-xtrabackup && cd tokudb-xtrabackup
cmake .\
-DBUILD_CONFIG=xtrabackup_release \ -DWITH_BOOST=extra/boost/boost_1_59_0.tar.gz \
-DWITH_MAN_PAGES=OFF \
-DCMAKE_INSTALL_PREFIX=/usr/local/xtrabackup_xelabs/
make -j8 && make install
测试是否成功安装
/usr/local/xtrabackup_xelabs/bin/innobackupex --help
02
—
热备份
1.备份
/usr/local/xtrabackup_xelabs/bin/innobackupex --defaults-file=/work/config/mysql/my.cnf --user=root --password='kxxxxxxxx' --host=localhost --socket=/tmp/mysql3306.sock /work/tmp/ > /work/tmp/innobackupex.log 2>&1
--defaults-file 指定数据库配置文件
--socket 指定数据库sock文件
2.恢复
#备份数据目录
mv /work/data/mysql_data3306 /work/data/mysql_data3306_20211009
#执行恢复数据
/usr/local/xtrabackup_xelabs/bin/innobackupex --defaults-file=/work/config/mysql/my.cnf --user=root --host=localhost --use-memory=200M --apply-log /work/tmp/2021-10-09_14-43-42
#执行恢复数据
/usr/local/xtrabackup_xelabs/bin/innobackupex --defaults-file=/work/config/mysql/my.cnf --user=root --host=localhost --copy-back --rsync /work/tmp/2021-10-09_14-43-42
#修改数据目录属性
chown -R work.work /work/data/mysql_data3306
#安全方式启动mysql查看是否异常
/work/servers/mysql/bin/mysqld_safe --defaults-file=/work/config/mysql/my.cnf &
#如果没有异常报错,就关闭mysql
/work/servers/mysql/bin/mysqladmin -uroot -p shutdown
03
—
快速建立主从关系
建议数据库版本一致,如果使用不同版本需要执行mysql_upgrade进行初始化,这个在主库mariadb-10.0.13 从库mariadb-10.3.23验证过,这里不详细写,有兴趣自己研究下。
#检查从库配置文件的ID是否大于主库配置文件ID
#主库创建一个用户
>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'10.3.128.%' IDENTIFIED BY '123xxx';
>FLUSH PRIVILEGES;
#查看点位或binlog文件
cat /work/tmp/2021-10-09_14-43-42/xtrabackup_binlog_info
mysql-bin.000021 25762 0-621133399-2161
#从库执行建立关系
>CHANGE MASTER TO MASTER_HOST='10.3.128.145',MASTER_PORT=3306,MASTER_USER='slave',MASTER_PASSWORD='123xxx',MASTER_LOG_FILE='mysql-bin.000021', MASTER_LOG_POS=25762;
>start slave;
>show slave status\G;
希望我踩的坑能够帮助你们,为你们节省一点宝贵的时间!