- 博客(121)
- 收藏
- 关注
原创 深入浅出Redis主从架构:持久化、级联复制与哨兵监控实战
在主从复制首次完成全量同步之后再次需要同步时,从服务器只要发送当前的offset位置(类似于MySQL的binlog的位置)给主服务器,然后主服务器根据相应的 将之后的数据(包括写在缓冲区的积压数据)发送给从服务器,再次将其保存到从节点内存即可,即首次全量复制之后的复制基本增量复制实现。在关闭主服务器上的持久化,并同时开启自动拉起进程的情况下,即便使用Sentinel来实现Redis的高可用性,也是非常危险的。Redis的主从同步是非阻塞的,即同步过程不会影响主服务器的正常访问。
2025-03-19 18:31:38
840
原创 Redis 持久化机制:AOF 与 RDB 详解
Redis 是基于内存型的 NoSQL,和 MySQL 是不同的,使用内存存储进行数据缓存。如果想要实现数据的持久化,Redis 也可支持将内存数据保存到硬盘文件中。以MySQL 做类比RDB类似MySQL dump,AOF类似 MySQL binlog。
2025-03-17 18:09:00
1040
2
原创 Keepalived 多主模型与 LVS 高可用
如上图,keepalived主从架构性能损耗较严重,如果业务分类明确,则可以配置keepalived多主模型降低损耗,两台keepalived互为主备,如:订单业务走keepalived1,keepalived2做备,商品业务走keepalived2,keepalived1做备。也就是keepalived1和keepalived2各拿一份vip。
2025-03-16 00:17:04
357
原创 Keepalived高可用架构实战:从安装配置到高级应用详解
提供的解析器,完成 Keepalived 配置针对网络吞吐的优化的自适应连接组件为某些通用的内存管理功能(例如分配、重新分配、发布等)提供访问权限。
2025-03-15 18:17:45
1122
原创 5 分钟搭建 Prometheus + Grafana 监控
这个 1860 对应的模板地址是 https://grafana.com/grafana/dashboards/1860-node-exporter-full/在被监控机器上下载 mysqld_exporter。导⼊⽅式同上,只不过对应的 ID 是 7362。在被监控机器上下载 node_exporter。重启 mysqld_exporter。初始账号密码:admin/admin。启动 node_exporter。检查 Targets。下载 Grafana。启动 grafana。登录 grafana。
2025-03-14 12:16:32
483
原创 MySQL 逻辑 & 物理备份全攻略:指令大全 + 实战指南
增量备份是基于全备的,第一次增量备份的数据是基于上一次全备,之后的每一次增量都是基于上一次的增量,最终达到一致性的增备。增备的过程中,和全备很类似,区别在于第二步。mysqlpump -B test --exclude-tables=test1,test2 #备份过滤test库中的test1、test2表。mysqlpump --exclude-tables=test1,test2 #备份过滤所有数据库中test1,test2表。MySQL5.7之后多的一个备份工具:mysqlpump。
2025-03-13 17:12:27
1100
原创 告别复杂日志解析 用bin2sql轻松实现MySQL数据闪回
此时: 通过命令可以看到所有产出的binlog日志:查看binlog内容按照时间读取按照点位读取。
2025-03-12 18:04:10
712
原创 Mysql InnoDB 行格式解析
InnoDB 是一个将表中的数据存储到磁盘上的存储引擎,所以即使关机后重启我们的数据还是存在的。而真正处理数据的过程是发生在内存中的,所以需要把磁盘中的数据加载到内存中,如果是处理写入或修改请求的话,还 需要把内存中的内容刷新到磁盘上。而我们知道读写磁盘的速度非常慢,和内存读写差了几个数量级,所以当我 们想从表中获取某些记录时,InnoDB 存储引擎需要一条一条的把记录从磁盘上读出来么?
2025-03-10 18:26:28
796
原创 Oracle 深入理解Lock和Latch ,解析访问数据块全流程
我们在谈到性能优化的时候,通常是讲系统缓慢的时候需要性能优化,系统缓慢通常是由什么原因导致的呢?大概上讲分为两种系统的资源耗尽了(cpu耗尽了,IP,吞吐量上不去)性能枯竭,性能达到了极限。锁定,阻塞,发现系统性能很高,但应用程序性能就是上不去,这种情况通常来讲是阻塞。
2025-02-21 17:49:48
1041
原创 JumpServer堡垒机管理服务器与数据库资产
JumpServer 是一款开源的堡垒机(运维安全审计系统),专注于解决企业 IT 资产的安全访问与权限管控问题。它通过 Web 化统一入口,提供 SSH、RDP、数据库等协议的代理访问,支持细粒度权限分配、操作审计、会话录像等功能,适用于多云混合环境下的运维安全管理。相比之下,OpenVPN 是专注于建立加密网络隧道的工具,主要用于远程访问内网资源,但缺乏细粒度权限控制和审计能力。维度JumpServerOpenVPN核心定位运维安全与审计网络层加密通信权限粒度用户→资产→命令级控制。
2025-02-07 17:32:51
653
原创 Docker 镜像制作原理 做一个自己的docker镜像
创建一个容器查看alpine ,以及更换镜像源,以及安装想要安装的工具(curl,vim,tree等) alpine 更新源使用的是apk update。启动容器之前我们首先要有一个镜像,这个镜像可以是从docker拉取,例如:现在pull一个ubuntu镜像到本机。更换一下国内的源,docker cp 可以把本机的源拷贝到容器,我这里直接用了容器的源。运行我们构建的镜像: 可以看到刚才安装的工具已经都有了。包装完之后退出,可以基于这个容器生成一个镜像。基于自己做的镜像,创建容器,看看工具有没有。
2025-01-15 21:40:12
1059
原创 Linux文件删除奥秘:无备份如何利用进程恢复删除的数据库表?
Linux 的文件系统是通过link的数量来控制文件删除的,一般来说,每个文件都有2个link计数器i_count和i_nlink。
2025-01-10 08:30:00
717
原创 从零开始学TiDB(8) TiFlash 主要架构
T0 时刻从客户端写入两行数据分别写入到了两个region,并且产生raft log此时TiFlash还没有TiKV的这两行数据此时TiFlash同步了key=1 value=100的数据还没有同步 key=999 value=7的数据读取TiFlash中的key=1和key=999又进行了一次写入 key=1 value=200此时raftlog idx=122确认TIKV的raft log idx号并且记录在TiFlash此时,idx=31 从TIKV记录的日志。
2025-01-02 18:56:04
580
原创 从零开始学TiDB(7)TiDB 的MPP架构概述
TiDB的MPP架构充分利用了TiFlash并行计算的功能, 当一个复杂的SQL语句过来的时候(能够使用MPP),先利用表连接的条件把连接条件Hash值相同的数据放到一个节点上,防止网络交换严重,处理了过滤条件后,如有聚合条件,再利用聚合条件的字段进行数据交换,把聚合条件字段hash值相同的数据放到同一个数据节点中,最后每个TiFlash把计算好的数据返回给TiDB Server。
2024-12-26 18:20:13
769
原创 Python 根据TikTok,YouTube 主页链接批量修改粉丝数
数据库里面的博主粉丝数是静态的,一定时间就要进行更新,所以需要获取tiktok和youtube上博主的粉丝数,数据库中已有博主主页链接,根据主页链接爬取粉丝进行修改,没啥技术含量,主要是正则要写的好。
2024-12-18 16:07:00
271
原创 从零开始学TiDB(6)深入学习Placement Driver(PD)
首先TSO的分配涉及到TiDB Server 和 PD组件但如果此时TSO有一百个请求,PD Client不会 一次次的请求PD,则PD Client会把这一百个请求变成一个批处理请求发送给PD相关优化:PD leader解决性能问题的方法PD 的高可用如果此时TiDB Server请求的是704此时PD ledaer宕机,则切换leader PD,开始一次新的3s计时(即TiDBServer 请求的TSO会有断层,代表此时PD leader 宕机了) ,即保证不了连续性。
2024-12-18 15:57:46
792
1
原创 从零开始学TiDB(5)Raft与Multi Raft
leader是集群中领导者,所有的读写都是走leader,follower副本不参加读写,leader会周期性的向follower发出心跳,同时也会把自己的日志同步给follower。follower不参与读写,只会对其它服务做出相应,并同步leader的日志。如果长时间收不到leader的心跳信息,这时候follower会把自己的角色变为condidate(候选者),并发起投票。其中一个region 及其两个副本 构成一个raft group ,多个raft group 构成了multi raft。
2024-12-13 18:01:51
681
原创 Python3 insloader库爬取博主视频粉丝量,点赞,互动率,国家等信息
写在题前:之前搞Java的,今天部门的人给了我一批视频链接,问问有没有办法爬出来这一批视频链接的博主的粉丝量,以及该视频的互动率等信息。经过一番探索之后了解了insloader库。真不不得不感叹python的强大。输出结果如下:
2024-12-12 18:20:26
588
1
原创 从零开始学TiDB(4)TiKV 分布式事务
读操作先从Write 列簇中读取最近一次提交信息,找到最近一次提交信息的事务开始时间,直接去Default中去读写操作也是先从Write 列簇中读取最近一次提交信息,找到最近一次提交信息的事务开始时间,之后要去Lock列簇中查看写是否被阻塞。如果没阻塞才可以去Default列簇中去读
2024-12-11 18:16:01
1057
原创 从零开始学TiDB(3)TiKV 持久化机制
下图总结了RocksDB 写操作的流程。可以看出LSM Tree对写操作进行了很大力度的优化,所以LSMTree对写很友好,但对读不那么友好,如果数据在mem Table中还好说,但如果不在Mem Tble中 下一步应该去immutable 中去中,如果immutable中没有 又会到磁盘中去找。
2024-12-10 18:16:35
343
原创 Oracle 表连接的三种方式,带你深入了解表连接
示例:假设有两个表:(订单表,有上百万条记录)和 (客户表,有几千条记录),我们需要查询每个订单对应的客户信息。查询如下:在这种情况下, 表可能会被选择为驱动表,因为它记录数较少,每个客户的信息在 表中可能会有多条记录。通过将小表 作为驱动表,可以减少嵌套次数,从而提升连接效率。Merge Join示例:看上去合并排序连接要比NL连接更耗时,其实不然,对于相当大的表来说,对于NL,驱动表返回多少条记录就等于访问了多少次被驱动表,但对于排序合并连接来说,顺序扫描减少了随机访问的需求,适合大
2024-11-20 17:34:44
1158
原创 文本列的性能优化?深入Oracle全文索引
全文索引通过分析和处理文本,将文档中的单词分解为词条(tokens),然后存储词条与其所在文档的映射关系。这使得数据库可以快速定位包含特定关键字的记录,而不必对所有文本逐字匹配。
2024-10-29 18:54:39
809
原创 Oracle 教你用DG Broker快速搭建DataGuard
DataGuard Broker能更加容易的管理和维护多个Standby Database。如果有多个备库或者RAC数据库中有个多个实例,如果进行手工配置管理,就会太过于麻烦,Oracle提供了DataGuard Broker工具,可以在一台服务器上对所有数据库进行统一的配置和管理,这些配置会自动同步到各个数据库中。Failover和Switchover可以在DGMGRL工具中是用一条命令切换,大大简化了我们管理的过程。
2024-10-27 16:59:08
1351
原创 Oracle 使用位图索引 Cost降低200倍! 探讨位图索引的利与弊
在会话一中,我们做了插入status列 为invalid, 在会话二中,我们做了插入status 列为invalid 造成sql等待,又做了插入status 列 为 valid 反而插入成功,继续做插入不涉及status列 也可以更新成功。结合位图索引结构与存储方式,发现。
2024-10-18 18:13:47
1142
原创 Oracle 常见索引扫描方式概述,哪种索引扫描最快!
而 INDEX FULL SCAN(MIN/MAX)扫描也是基于索引的存储结构实现的,B Tree 的所有数据都存储在叶子节点,而叶子节点的数据是有序的,如果遇到查询最大值/最小值的场景,正常来说 INDEX FULL SCAN(MIN/MAX) 速度是最快的,因为在扫描时,只需要扫描B Tree的第一个块和最后一个块即可,这样就直接找到了最大值/最小值。distinct 是有排序的操作的 如果使用INDEX FAST FULL SCAN 一次性读取多个数据块是难以保证 有序的。并且,我们使用了索引。
2024-10-17 18:30:40
1242
原创 Oracle 星型查询转换实践
星型查询是一种业务的应用,星型查询转换的核心思想是将原本的星型连接查询重写成更高效的形式。有些业务刚好满足如下的结构,我们可以使用星型查询。
2024-10-03 19:22:01
110
原创 Oracle SQL语句没有过滤条件,究竟是否会走索引??
因为虽然查询的这三个列都被覆盖索引包含在内,但这三个列都可为null,正如开篇所说——Oracle不会为全都为null的行走索引。答案是:可能走索引也可能不走索引,具体要看列的值可不可为null,Oracle不会为所有列nullable属性都为Y的sql语句走索引。可以看到这三个列虽然都有索引,但这三个列的nullable属性都是Y,也就是都可为空,所以索引将失效,该语句将走全表扫描。这样就保证了每一行都将在索引中。再次查询同样的SQL语句,可以看到没有where条件的SQL语句也走了索引。
2024-10-03 17:14:29
1082
原创 Oracle 闪回版本(闪回表到指定SCN)
在这个脚本中,有两个事务,我们尝试保留insert的事务,回滚update的事务。可以看到最下面的几行是刚才执行脚本所做的操作。update操作被回滚了。
2024-09-30 16:19:12
819
原创 Oracle 日志文件多路复用
多路复用 PRODCDB 数据库的所有日志组中的 redo log 文件,存放目录: /u01/app/oracle/oradata/MREDO。
2024-09-30 15:35:36
528
原创 Oracle 配置恢复目录catalog
Oracle中使用RMAN备份的数据我们分为两类Oracle默认把 RMAN知识库 放在目标数据库的控制文件中,在以后进行恢复的时候 我们要先读知识库的信息然后才能恢复。但这样就产生了一个问题,知识库放在了控制文件上,控制文件如果丢失,那么知识库的信息也丢失了,进而无法恢复数据。所以我们需要保护这个控制文件,一般有两种办法。知识库包含的内容:目标数据库的结构归档日志的记录每次备份的备份集与备份镜像。
2024-09-29 16:52:40
925
原创 Oracle 19c 使用EMCC 监控当前所有数据库
EMCC,全称Oracle Enterprise Manager Cloud Control,是Oracle提供的一套集中化监控工具,可以对数据库、操作系统、中间件等进行监控,通过OMS(Oracle Management Service)收集监控数据并将监控信息存入对应Oracle资料数据库并对收集的数据进行处理与展示;使用agent部署在受监控机或远程监控实现监控采集。可实现短信、邮件、SNMP等多方式实现实时告警。同时EMCC在监控Oracle数据库方面,是功能最全面、最强大的存在。
2024-09-25 15:23:28
829
OceanBase企业版v3部署,其中总结了部署过程的各种问题
2024-06-10
数据RAC11g 升级到 RAC 19c
2024-02-06
对于oracle11g 各种进程进行详解,进程与内存结构的关系,SGA的讲解
2024-01-26
linux中对于springboot程序生成火焰图,并对火焰图进行解析
2024-01-26
linux文件系统,inode,datablock,superblock,Filesystem Description等详解
2024-01-21
感觉是相同的代码却一个过得了一个过不了
2023-08-01
关于#google 地图API在安卓手机上运行#的问题,如何解决?
2023-07-11
单片机报错,I2C.c文件的相关问题
2023-05-27
mysql中出生年份的获取
2022-10-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人