当前位置: 首页 > 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博客 &…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

OPENCV图形计算面积、弧长API讲解(1)

一.OPENCV图形面积、弧长计算的API介绍 之前我们已经把图形轮廓的检测、画框等功能讲解了一遍。那今天我们主要结合轮廓检测的API去计算图形的面积&#xff0c;这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能&#xff0c;常用的API…...