自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 从TiDB迁移数据到另外一个TiDB

然后按照 sync-diff-inspector 的 Datasource 配置,在上下游的 snapshot 配置项中填写相应值。背景:从一个TiDB需要迁移数据到另外一个TiDB。

2024-06-17 21:16:28 336

原创 基于 GTID 的多源复制

导出 4 个工厂的数据到 192.168.100.5,在该服务器上运行。2.2 设置gtid。2.3 设置主从关系。

2024-04-14 16:33:00 158

原创 redis cluster5.0在线扩容节点

1 登陆到任意一台老的集群的redis节点,执行CLUSTER MEET ,将新扩容节点加入到redis cluster集群,初次加入到集群的节点,通过clueter nodes可以看到新节点的状为是master,:平均分配所有的槽位,使用以下命令会自动降16384个槽位自动分配给集群的每一个master,不用手动指定槽为分配。重新分片基本上意味着将slot 重新分配,就像集群创建一样,它是使用 redis-cli 实用程序完成的。2.、重新slot分配。

2024-04-12 00:00:43 186

原创 Redis 7.0 共享复制缓冲区的实现

当从库尝试与主库进行增量重同步时,会发送自己的 repl_offset, 若从库可满足增量重同步条件,则主库会从 ReplicationBacklog 中拷贝从库缺失的数据到从库 OutputBuffer,虽然现在的拷贝变成了仅仅是对特定 replBufBlock 引用计数的改变,在每个 replBufBlock 中记录了该其第一个字节对应的 repl_offset,但如何高效地从数万个 replBufBlock 的链表中找到特定的那个, 仍然一件棘手的事情。一方面,rax 索引占用的内存较少;

2023-11-16 15:31:16 169

原创 redis复制缓冲区与复制积压缓冲区的区别

主节点维护的一个缓冲区,在主节点开始有从节点时创建(不管几个从节点都只有一个),其是长度固定且为先进先出的队列,默认大小为1MB。复制缓冲区的大小由client-output-buffer-limit slave {hard limit} {soft limit} {soft seconds}配置,默认值为client-output-buffer-limit slave 256MB 64MB 60,其含义是:如果buffer大于256MB,或者连续60s大于64MB,则主节点会断开与该从节点的连接。

2023-11-16 15:23:06 353

原创 mysql意向锁究竟是做什么的

表级锁,主要是为了提高加表锁的效率,是mysql数据库自己加的。当有事务给表的数据行加了共享锁或排他锁,同时会给表设置一个标识,代表已经有行锁了,其他事务要想对表加表锁时,就不必逐行判断有没有行锁可能跟表锁冲突了,直接读这个标识就可以确定自己该不该加表锁。特别是表中的记录很多时,逐行判断加表锁的方式效率很低。而这个标识就是意向锁。是一种锁的层次结构。当一个事务需要对某一行进行加锁时,会先获取意向锁,表明该事务将对该行进行加锁操作,同时其他事务可以获取表级别的锁,但不能获取同一行的行级别锁。

2023-11-08 11:00:24 424

原创 mongodb索引到底是B+树还是B树?

查询单条数据的时候,B树的查询效率不固定,最好的情况是 O(1),因为它不需要再遍历去找到叶子节点。所以可以认为在做单一数据查询的时候,使用 B 树平均性能更好。但是,由于 B 树中各节点之间没有指针相邻,因此 B 树做一些数据遍历操作不那么适合。B+ 是在 B 树上改进,它的数据都在叶子节点,同时叶子节点之间还加了指针形成链表。1、为什么 MongoDb 数据组织形式使用 B 树,而 MySQL 使用 B+ 树?其实WiredTiger 使用的是 B+ 树作为其存储结构。2、而 B 树有啥好处呢?

2023-11-02 17:50:35 351

原创 mysql8.0.30 在线调整redo log

该参数会在数据目录下生成’#innodb_redo’的子目录,磁盘文件的存储形式不再是类似 ib_logfileN 这样的文件,而是替代为 #ib_redoN 这样新文件形式。5 去配置文件my.cnf中修改参数,例如将innodb_log_file_size改为1G,innodb_log_files_in_group改为3。redo日志文件中不带有_tmp后缀的说明是正在使用的日志文件,带有_tmp后缀的是等正在使用的文件写满后再写它。调整innodb_redo_log_capacity=6G。

2023-10-12 17:09:23 115

原创 mongodb事务

对于需要对多个文档(在单个或多个集合中)进行原子性读写的情况,MongoDB支持多文档事务。时间戳,标识下⼀次重启后,从该位置重新同步,如果本步 骤之前失败,重启恢复时,会从 ApplyThrough。,MongoDB引入了分布式事务, 增加了对分片上的多文档事务的支持 集群并包含对 副本集上的多文档事务。可⻅时间戳,如果有其他节点从该备节点同步,此时就能读到这部分新写⼊的。划分到到多个线程并发重放,为了提升并发效率,事务产⽣的。的限制),包含事务⾥所有的操作,备节点拉取。,并在本地重放事务操作。

2023-09-19 23:12:06 371

原创 mysql当中prepare预处理报错

然后,我们使用 SET 语句设置 @age_limit 的值为 18,接着使用 EXECUTE 语句执行预处理语句 stmt,通过 USING 子句传入参数 @age_limit。但是,如果你准备的语句是动态生成的,或者你在执行大量的不同查询时使用了准备的语句,那么你应该在每次执行完EXECUTE后立即关闭准备的语句,以避免消耗过多的系统资源。其中,statement_name 是我们给预处理语句起的一个名称,可以自定义,sql_statement 是要编译的 SQL 查询或语句。

2023-08-22 16:41:41 630

原创 systemctl配置redis服务的2种方式

服务配置文件:/usr/lib/systemd/system/redis-6381.service。redis配置文件要改成daemonize yes。redis配置文件要改成daemonize no。

2023-06-08 08:30:16 1046

原创 systemctl 使用

systemctl主要负责控制systemd系统和服务管理器。在ubuntu 、centos等一系列发行版中可用。可以方便的管理需要启动的服务等。可以实现开机自启动、出错重启和定时重启等等功能。

2023-05-31 16:58:50 390

原创 redis5.0 cluster删除一个节点

redis-cli -a password --cluster del-node ip:prot 删除点ID。2、然后清理此节点对应的nodes-3000.conf配置文件信息。1、kill掉这个节点的进程。

2023-04-25 23:43:46 576

原创 redis5.0 cluster集群搭建

6、分配slot后,重新平衡slot( 参数--cluster-use-empty-masters是让空的节点也要分配slot)

2023-04-25 22:39:34 248

原创 TiDB GC 原理

如果一轮 GC 运行时间太久,那么在一轮 GC 完成之前,即使到了下一次触发 GC 的时间也不会开始下一轮 GC。为了保证 safe point 之后的任何时间戳都具有一致的快照,这一步删除 safe point 之前提交的数据,但是会对每个 key 保留 safe point 前的最后一次写入(除非最后一次写入是删除)。每次 GC 时,首先,TiDB 会计算一个称为 safe point 的时间戳,接下来 TiDB 会在保证 safe point 之后的快照全部拥有正确数据的前提下,删除更早的过期数据。

2023-02-22 22:26:56 318

原创 TiDB逻辑快速导数据(dumpling导出和Lightning导入)

摘要:mysql使用mysqldump和mydumper实现数据的导出,和load data导入数据。tidb则使用dumpling导出和Lightning导入,实现逻辑导出和导入。

2023-02-20 22:52:03 1131

原创 dm v5.4.3执行stop-task 返回 invalid op 7 on task

再通过指定版本安装:tiup intall dmctl:v5.4.3 安装了对应版本的组件,可以对任务进行停止操作了。通过了tiup uninstall dmctl --all移除dmctl组件。感觉组件update方式如果能多个默认匹配集群版本就好了。【 DM 版本】v5.4.3。

2023-02-03 15:56:34 96

原创 mysql临时表相关参数

然而从5.7版本开始,临时表的默认存储引擎变为innodb,虽然在性能上有了一定的提升,但是由于innodb引擎的临时表共用表空间ibtmp1,导致在高并发下,多个session同时创建临时表时,该表空间会变得非常大,并且不能动态缩小,除非重启MySQL,否则无法释放。1.max_heap_table_size:用户创建的内存表的最大值,也用于和tmp_table_size一起,限制内部临时表在内存中的大小;释放磁盘空间只能重启。max_heap_table_size和tmp_table_size区别。

2022-12-19 22:58:59 487

原创 redis 主从数据不一致原因探查

主库:# Keyspace从库:# Keyspace单靠的expires来判断数据是否一致会出现偏差。其统计信息的统计值不是精确值,有一定的误差。keysexpires因此,通过expires来判断数据量时,逻辑上已经过期但未被Redis删除的keys也会被统计进来,从而出现了源端和目标端的数据不一致的现象。

2022-12-13 17:08:50 720

原创 innoxtrabackup全备参数-基于从库

在备份的时候加上--no-lock参数,就是在复制MyISAM表和.frm等文件的时候不锁表,不执行flush table with read lock,但要保证这时没有对MyISAM表的DML操作和Innodb表的DDL操作,这一般通过应用端权衡时间是容易办到的。这时可以加一个--safe-slave-backup参数,使得在从库上备份的时候停止SQL THRED,这样即使从库能从主库接收binlog文件,但是不会应用,relay log position就不会移动了,这个时候备份集中会生成一个。

2022-12-11 22:47:08 820

原创 tidb磁盘挂载参数

ext4是第四代扩展文件系统,是ext3文件系统的后继版本,相比ext3,ext4取消子目录限制,支持的文件卷达到1EB,最大文件支持达到16TB,对于大数据存储足够,ext4在fsck(file system check)做了大量优化,相比ext3用时少很多。读取文件时,将禁用对元数据的更新。提到nodealloc需要先知道delalloc, delalloc是说把所有的block分配推到真正要写数据的时候,之前有淘宝内核在线上业务中反馈出delalloc延迟分配导致的写延迟问题,所以禁用延迟分配。

2022-12-01 23:45:34 756

原创 tidb扩容之tiup报错

使用tiup部署tidb节点时,使用tidb用户和root用户部署效果是一样的,都是会先copy 公钥和私钥到目录~.tiup/storage/cluster/clusters/集群/ssh下面,然后使用配置文件里的配置用户tidb去登陆到目标节点,最后部署节点。所以不管是使用tidb用户部署,还是用root 用户部署,都是最后会是以tidb用户来登陆到各个tidb节点来实现部署。然后再利用生成的公钥和私钥来ssh免密登陆到各个节点上,使用tidb用户(假设配置文件里是tidb用户)来部署节点;

2022-12-01 00:03:57 457

原创 mysql 导入数据报错(open_files_limit)

innodb_open_files=10000后好了。背景:导入数据报错。

2022-11-28 19:12:05 695

原创 mysql服务器 raid 分类

由于现代数据中心业务量的与日俱增,单台服务器上需要运行的数据也日益增多。当单个物理硬盘在容量和安全性上不足以支持系统业务时,就需要将多个硬盘以某种特定方式组合起来,对外作为一个可见的硬盘来使用,才可满足实际需要。硬盘组,就是将一组物理硬盘组合起来,作为一个整体对外体现,是虚拟磁盘的基础。虚拟磁盘,即使用硬盘组划分出来的连续的数据存储单元,相当于一个个独立的硬盘,通过一定的配置,使其具有比单个物理硬盘更大的容量,及更高的安全性和数据冗余性。

2022-11-19 19:19:59 279

原创 输出和输入的问题

人体的储蓄与机器的不同之处在于:机器的储蓄不需要输出能源,灌入即可用,人体的摄入能量则同时还需要释放能量来转化,所以对人体就存在一个摄入与释放孰多孰少的问题。对于机器来说,只存在零件的磨损问题,不存在能源的转化问题,能源的转化也是由机器的结构所决定的。先看功能方面,所谓阳化气,这个阳化气即是功能态,好比机器的动力系统,动力的长短强弱一方面取决于能源存储的多少,一方面取决于能源释放的快慢。前面说了,病态是身体阴阳的一个方面出现了过强或过弱的倾向,造成了整体的失衡,无论从功能或结构上都可以做这样的划分。

2022-11-09 07:26:10 139

原创 TiDB的tikv节点的压缩算法

如果采用的压缩方式为"no:no:lz4:lz4:lz4:zstd:zstd",在大量写入数据的情况下,发现系统的 I/O 压力不大,但是 CPU 资源已经吃光了,top -H 发现有大量的 bg 开头的线程(RocksDB 的 compaction 线程)在运行,这 个时候可以考虑用 I/O 资源换取 CPU 资源,将压缩方式改成"no:no:no:lz4:lz4:zstd:zstd"。RocksDB6层的压缩为:[no:no:lz4:lz4:lz4:zstd:zstd]

2022-11-03 16:15:59 658

原创 TiDB 数据库统计表的大小方法

TiDB统计表的大小,列出了一些方法,都是比较实用。

2022-11-03 13:09:02 1806

原创 MySQL数据库单行数据大小对性能的影响

简介:今天被问一个问题,说单行数据有个字段最大16k,对 MySQL查询性能的影响有多大,是否会导致 MySQL下降。数据行格式:那是不是说,只要 varchar 中存储的数据大于 768 个字节,多余的字节就一定会存储的未压缩的二进制大对象页中?如果是这样的话,就会导致 B+ 树失去了意义(因为只有一个数据页,剩下数据就往二进制大对象页中插入就行),成为了一个链表。

2022-11-02 14:51:17 4471

原创 MySQL数据库机器配置的3个网络参数

为1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。为1表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。在关闭net.ipv4.tcp_tw_reuse的情况下,是不能重复利用TIME_WAIT的,需要等待TIME_WAIT自己关闭,并且TIME_WAIT的时间不能通过参数进行配置,如果修改的话,需要自己编译内核。tcp_timestamps设计目的是为了记录数据包的发送时间,过程如下。

2022-10-24 22:45:27 2021

原创 MySQL 中的mysql库探秘

简介:mysql 中有个库叫mysql,总共31张表,我们常用的可能是用户表user,还有time_zone表等。表columns_priv:对列进行授权,例如。

2022-10-11 21:59:30 974

原创 mysql 日志归档(slow log和 error log)

5) copytruncate 如果没有这个选项的话,操作方式:是将原log日志文件,移动成类似log.1的旧文件, 然后创建一个新的文件。如果设置了,操作方式为拷贝原日志文件,并且将其变成大小为0的文件。dateformat .%s 配合dateext使用,紧跟在下一行出现,定义文件切割后的文件名,必须配合dateext使用,只支持 %Y %m %d %s 这四个参数。一 、脚本首先处理掉大的日志文件,因此logrotate轮转时是先copy,然后再清理日志文件,会打满磁盘IO。

2022-10-11 12:45:38 847

原创 MySQL 内存问题排查思路

简介:MySQL 内存持续增长的问题虽然不会经常发生,但是如果偶尔发生了,也会让我们不知所措。一 、如果碰到MySQL 内存持续升高问题的主要情况有4种:MySQL 没有合理设置 innodb_buffer_pool_size服务器上还有一些其他进程可以分配内内存。MySQL 内存泄漏。内存缓慢增长属于正常现象,但存在因为一些慢sql频繁执行并因MySQL的内存分配使用了系统glibc,而glibc本身的内存分配算法存在缺陷,导致内存释放不完全。二、MySQL 内存持续排查思路: 1 基于服务器的检查:

2022-10-10 08:51:03 2383

原创 mysql多源复制配置及注意事项

2) 查看performance_schema 库中的replication_connection_status 表。1、配置多源复制之前必须满足如下条件,这2个参数可以动态调整。如果没有配置这2个参数为TABLE,则会报错。1)使用show slave status。

2022-09-19 23:30:20 620

原创 使用 pt-table-checksum 检查MySQL数据一致性

校验结束后,在每个从库上,执行如下的sql语句即可看到是否有主从不一致发生:select * from percona.checksums where master_cnt this_cnt OR master_crc this_crc OR ISNULL(master_crc) ISNULL(this_crc) 配置选型:

2022-06-14 23:33:30 487

原创 etcd 集群部署

etcd的集群部署

2022-04-20 23:36:54 798

原创 mysql自增主键锁导致的导入数据超时问题

程序在生产导入数据时,报锁超时 Lock wait timeout exceeded; try restarting transaction;root@information_schema 04:21:55>select * from INNODB_TRX limit 10\G;*************************** 1. row ***************************trx_id: 188346027249trx_state: LOCK WAITt.

2022-04-01 17:12:26 1090 1

原创 碰到 mysql 主从复制报 ‘max_allowed_packet error’ bug 一例

mysql 主从同步的bug 还是比较坑的,我们一起看下

2022-03-24 22:15:53 1369

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除