当前位置: 首页 > news >正文

mysql-tokudb使用qa

一、使用前提

安装tokudb引擎的前提条件是物理机要关闭大页,并需要注意物理机所剩内存和配置文件中tokudb_cache_size(内存主要占用部分),innodb_buffer_pool_size的使用,另外tokudb的安装一定要安装libjemalloc依赖,不然无法安装tokudb引擎

二、安装tokudb的常规流程

详情可以查看官方文档,官网博客

1.手动启动

1.1.关闭透明大页

# 临时性关闭
echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 永久解决,加载到开机脚本中
# 编辑 rc.local
vim /etc/rc.d/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 授权 rc.localchmod +x /etc/rc.d/rc.local

1.2.安装依赖库

# 注意,一定要安装包
dpkg -i /var/cache/apt/archives/libjemalloc1_3.6.0-3~precise_amd64.deb

1.3 安装tokudb引擎

$ apt install percona-server-tokudb
#或
$ yum install percona-server-tokudb.x86_64

1.4.安装tokudb引擎

INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_background_job_status SONAME 'ha_tokudb.so';

2.自动启动

# 注意:步骤1.2,1.3需要执行,1.1如果容器级别启动则最好在物理机层面关闭大页
# 此脚本将自动禁用透明大页面(如果已启用),并使用所有必需的插件安装和启用 TokuDB 存储引擎。您需要以 root 用户身份或使用 sudo 运行此脚本。该脚本应仅用于本地安装,不应用于将 TokuDB 安装到远程服务器
ps-admin --enable-tokudb -uroot -pPassw0rd

会有如下输出

Checking if Percona server is running with jemalloc enabled...
>> Percona server is running with jemalloc enabled.Checking transparent huge pages status on the system...
>> Transparent huge pages are currently disabled on the system.Checking if thp-setting=never option is already set in config file...
>> Option thp-setting=never is not set in the config file.
>> (needed only if THP is not disabled permanently on the system)Checking TokuDB plugin status...
>> TokuDB plugin is not installed.# 这里配置了透明大页关闭,如果系统上还是透明大页开启的状态,数据库会启动有问题,注意影响
Adding thp-setting=never option into /etc/mysql/my.cnf
>> Successfuly added thp-setting=never option into /etc/mysql/my.cnfInstalling TokuDB engine...
>> Successfuly installed TokuDB plugin.

三、遇到的问题

Q: 启动的时候卡死,日志没有任何信息
A: 这是因为透明大页没关闭,关闭透明大页即可解决

Q: 报错TokuDB is not initialized because jemalloc is not loaded
A: 先检查透明大页是否关闭,如果没有关闭则可能是报错不准确,关闭透明大页即可,如果已经关闭,则用如下方式解决(安装依赖并修改mysql配置文件)

# 安装依赖
dpkg -i /var/cache/apt/archives/libjemalloc1_3.6.0-3~precise_amd64.deb
在[mysqld_safe]下设置malloc-lib变量
# 修改配置文件
malloc-lib=/usr/lib64/libjemalloc.so.1

Q: 报错[ERROR] Found 1 prepared transactions! It means that mysqld was not shut down properly last time and critical recovery information (last binlog or tc.log file) was manually deleted after a crash. You have to start mysqld with --tc-heuristic-recover switch to commit or rollback pending transactions.
A: 这是因为tokudb引擎没有正常启动,就对tokudb的表进行了写入,就会出现事务无法正常提交的情况,解决方式可以用mysqld --tc-heuristic-recover=commit 或者mysqld --tc-heuristic-recover=rollback来解决,但是这要写的方式就会出现[ERROR] Can’t init tc log这种报错,这个先不要删除日志处理,出现这个报错是因为我们使用mysqld --tc-heuristic-recover=commit 类似的写法并不能达到制定的效果,正确的回滚或者提交方式应该如下
修改my.cnf

[mysqld]
tc-heuristic-recover=ROLLBACK

修改配置文件后重启,这时候失败的事务就会回滚,然后我们再把添加的配置去掉,然后再进行重启即可

Q: 多个服务的tokudb引擎的集群导致物理机内存占用过大
A: 这是因为tokudb会分配大量的内存在tokudb_cache(tokudb_cache_size)上,连接数不多的情况下也会很快占满内存到tokudb_cache_size的大小,详情可以查看官网和添加链接描述

Q: tokudb查询主键有间隔不走主键,tokudb的整表顺序读取的速度会很快
A: 可能和tokudb的索引结构有关,目前还没有研究透彻

ps: 官方一些常见问题

相关文章:

mysql-tokudb使用qa

一、使用前提 安装tokudb引擎的前提条件是物理机要关闭大页,并需要注意物理机所剩内存和配置文件中tokudb_cache_size(内存主要占用部分),innodb_buffer_pool_size的使用,另外tokudb的安装一定要安装libjemalloc依赖&…...

对比学习论文综述总结

第一阶段:百花齐放(18-19中) 有InstDisc(Instance Discrimination)、CPC、CMC代表工作。在这个阶段方法模型都还没有统一,目标函数也没有统一,代理任务也没有统一,所以说是一个百花齐放的时代 1 判别式代理任务---个体判别任务 1.1 Inst Dict---一个编码器+一个memory…...

【BASH】回顾与知识点梳理(二十三)

【BASH】回顾与知识点梳理 二十三 二十三. Linux 账号管理(二)23.1 账号管理新增与移除使用者: useradd, 相关配置文件, passwd, usermod, userdelusermoduserdel 23.2 用户功能(普通用户可使用)idfingerchfnchsh 23.3…...

用 Python 写一个 NoSQL 数据库

NoSQL 这个词在近些年正变得随处可见. 但是到底 “NoSQL” 指的是什么? 它是如何并且为什么这么有用? 在本文, 我们将会通过纯 Python (我比较喜欢叫它, “轻结构化的伪代码”) 写一个 NoSQL 数据库来回答这些问题. OldSQL 很多情况下, SQL 已经成为 “数据库” (database)…...

Spring Security自定义登陆界面和密码验证逻辑

maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency> 创建配置文件处理跳转拦截等功能以及密码比对功能 package com.example.demo2.demos.web1;…...

Android布局【LinearLayout】

文章目录 常见属性orientation的选择项解释项目结构主要代码 常见属性 orientation&#xff1a;布局中组件的排列方式gravity&#xff1a;控制组件所包含的子元素的对齐方式&#xff0c;可多个组合layout_gravity&#xff1a;控制该组件在父容器里的对齐方式background&#x…...

搭建grafana+loki+promtail日志收集系统

准备工作 下载地址 https://github.com/grafana/loki/releases 安装包放在服务器目录&#xff1a;/opt wget https://github.com/grafana/loki/releases/download/v2.4.2/loki-linux-amd64.zip wget https://github.com/grafana/loki/releases/download/v2.4.2/promtail-lin…...

Electron+vue3项目使用SQLite3数据库

SQLite 是一个进程内的库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库&#xff0c;这意味着与其他数据库不一样&#xff0c;我们不需要在系统中配置。 就像其他数据库&#xff0c;SQLite 引擎不是一个独立的进程&am…...

SpringSpringBoot常用注解

目录 一、核心注解二、Spring Bean 相关2.1 Autowired2.2 Component, Repository, Service, Controller2.3 RestController 与 Controller2.4 Configuration 与 Component2.5 Scope 三、处理常见的 HTTP 请求类型3.1 GET 请求3.2 POST 请求3.3 PUT 请求3.4 DELETE 请求3.5 PATC…...

题目:2566.替换一个数字后的最大差值

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;2566. 替换一个数字后的最大差值 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 将从左到右第一个非 9 数字全部修改为 9 以得到最大值。将从左到右第一个数字全部修改为 0 以得到最小值&a…...

使用 NLP 进行文本摘要

一、说明 文本摘要是为较长的文本文档生成简短、流畅且最重要的是准确摘要的过程。自动文本摘要背后的主要思想是能够从整个集合中找到最重要信息的一小部分&#xff0c;并以人类可读的格式呈现。随着在线文本数据的增长&#xff0c;自动文本摘要方法可能会非常有用&#xff0c…...

vue3挂载全局方法和组件

话不多说直接上代码 main.js import { createApp } from vue import App from ./App.vueconst app createApp(App)// 注册全局方法和组件 function myMethod(){console.log(Hello, world!); } app.provide("myMethod", myMethod) // provide注册全局方法 inject获取…...

mybatisplus学习笔记

1.踩过的坑 1.MybatisPlus 要与其代码生成器的版本一致&#xff1b; 2.要使用新版代码&#xff08;3.5.1及以上&#xff09;生成器则要使用springboot3&#xff0c;如果用springboot2使用新版代码生成器会导致builder.parent(“com.sdfsf”) // 设置父包名》重复&#xff01;&…...

go mod 添加私有库GOPRIVATE

私有地址 形式仓库域名/组织名形式仓库域名形式*仓库域名 示例私有地址&#xff1a; gitee.com/takujo_admin 或者igitlab.com 多个私有地址,分割&#xff0c;示例&#xff1a; gitee.com,igitlab.com 修改env go env -w GOPRIVATE"私有地址" go env -w …...

07-HDFS入门及shell命令

1 文件系统 是一种存储和组织数据的方法&#xff0c;它使得文件访问和查询变得容易使得文件和树形目录的抽象逻辑概念代替了磁盘等物理设备使用数据块的概念&#xff0c;用户使用文件系统来保存数据不必关心数据底层存在硬盘哪里&#xff0c;只需记住这个文件的所属目录和文件…...

TiDB在科捷物流神州金库核心系统的应用与实践

业务背景 北京科捷物流有限公司于2003年在北京正式成立&#xff0c;是ISO质量管理体系认证企业、国家AAAAA级物流企业、海关AEO高级认证企业&#xff0c;注册资金1亿元&#xff0c;是中国领先的大数据科技公司——神州控股的全资子公司。科捷物流融合B2B和B2C的客户需求&#…...

React 18 更新 state 中的数组

参考文章 更新 state 中的数组 数组是另外一种可以存储在 state 中的 JavaScript 对象&#xff0c;它虽然是可变的&#xff0c;但是却应该被视为不可变。同对象一样&#xff0c;当想要更新存储于 state 中的数组时&#xff0c;需要创建一个新的数组&#xff08;或者创建一份已…...

【css】css中使用变量var

CSS 变量可以有全局或局部作用域。 全局变量可以在整个文档中进行访问/使用&#xff0c;而局部变量只能在声明它的选择器内部使用。 如需创建具有全局作用域的变量&#xff0c;请在 :root 选择器中声明它。 :root 选择器匹配文档的根元素。 如需创建具有局部作用域的变量&am…...

判断自己网络所在的NAT类型

文章目录 各NAT类型介绍软件准备流程 各NAT类型介绍 NAT0: OpenInternet&#xff0c;没有经过NAT地址转换&#xff0c;公网IP NAT1: Full Cone NAT&#xff0c;动态家宽可以达到最优的状态&#xff0c;外网设备可以主动发信息给NAT1网络内的设备。 NAT2: Address-Restricted C…...

ClickHouse(十九):Clickhouse SQL DDL操作-1

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术&#xff0c;IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...