- 博客(398)
- 资源 (12)
- 收藏
- 关注
原创 MHA binlog server
GTID模式下切换的时候,默认是不会去Master上获取binlog,如果配置了Binlog Server,MHA机会去binlog-server上获取,下面创建一个binlog server,并验证binlog server能够在主库binlog被清理的情况下提供日志恢复.
2024-12-22 19:32:25
460
原创 GTID详解
3, mysql-bin.000004 的previous-gtid = 1-120, 如果N = 88 在 Previous-GTIDs 中,那么继续对比上一个binlog文件mysql-bin.000003,然后继续step2,直到找到为止。2, Previous_gtid_log_event: 用于表示当前binlog文件之前已经执行过的gtid集合,记录在Binlog文件头,如:4855c186-ba02-11ef-8bf4-000c297511da:1-23。3,主库将从库缺失的事务发送给从库。
2024-12-20 10:25:49
1413
原创 数据库索引失效场景
字段类型不一致或隐式转换: 当查询条件中的字段类型与索引列的类型不一致时,MySQL可能会进行隐式类型转换,从而导致索引失效。例如,如果索引列是VARCHAR类型,而查询条件中使用了整数类型进行比较,就会发生隐式转换。 查询中包含OR条件: 当查询语句中使用OR连接多个条件时,如果MySQL优化器认为使用索引的成本高于全表扫描,则可能会选择不使用索引。这通常发生在其中一个条件未使用索引或索引选择性较低的情况下。 LIKE通配符的错误使用: 在使用LIKE进行模式匹配时,如果通配符“%”出现
2024-12-11 11:50:46
220
原创 字典推导式
字典推导式不仅提高了代码的可读性,还使得字典的创建过程更加直观和高效。它在处理复杂数据结构时非常有用,例如从嵌套字典中提取数据或根据条件过滤字典中的元素。字典推导式是 Python 中一种简洁的语法,用于从一个可迭代对象中创建一个新的字典。
2024-12-05 21:33:50
291
原创 MHA切换过程
MHA(Master High Availability)是一套用于MySQL数据库的高可用性解决方案,它能够在主服务器发生故障时自动将一个从服务器提升为新的主服务器,从而实现数据库服务的持续可用。
2024-12-05 12:02:08
290
原创 Innodb和MyISAM的使用场景
InnoDB的使用场景需要事务支持的应用:InnoDB支持事务处理(ACID),可以保证数据的一致性和完整性。例如,在金融系统中,转账操作需要确保原子性、一致性、隔离性和持久性,InnoDB能够满足这些需求。 高并发写操作的场景:InnoDB支持行级锁定(Row-Level Locking),允许多个用户同时对同一表进行写操作,提高并发性能。这在电子商务平台中,多个用户同时下单的场景下非常重要。 需要外键约束的场景:InnoDB支持外键约束,可以维护不同表之间的引用完整性。例如,在一个包含订单表和用
2024-12-05 11:41:10
315
原创 ClickHouse守护进程
维护CK过程中,有时候会有CK OOM,并且CK自己没有自动拉起的情况出现;那么这个时候就需要守护进程,最初我不说了Supervisor来做守护进程,但是当我手动kill的时候发现并没有自动拉起。于是乎自己写了一个CK守护进程脚本,并将其设置为每分钟执行一次。
2024-12-04 18:21:17
310
原创 MySQL两阶段提交目的
MySQL的两阶段提交(Two-Phase Commit, 2PC)主要目的是为了确保在分布式事务处理中数据的一致性和完整性。在MySQL中,两阶段提交机制用于协调存储引擎层的Redo Log和服务器层的Binlog之间的操作顺序,以防止在系统崩溃或异常情况下出现数据不一致的情况。
2024-12-04 15:10:59
358
原创 redis备份方式
Redis是一个开源的内存数据结构存储系统,常用于数据库、缓存和消息中间件。Redis提供了两种主要的持久化方式:RDB(Redis DataBase)和AOF(Append Only File)。
2024-12-04 10:55:08
588
原创 MySQL MVCC 介绍
MVCC(Multi-Version Concurrency Control)是一种并发控制机制,用于在多个并发事务同时读写数据库时保持数据的一致性和隔离性。MVCC通过在每个数据行上维护多个版本的数据来实现。当一个事务要对数据库中的数据进行修改时,MVCC不会直接覆盖原始数据,而是创建一个新版本的数据,并将原始数据保留下来,以便其他事务可以继续读取旧版本的数据。
2024-12-03 17:38:19
802
原创 TiDB如何保证数据一致性
这个协议基于两阶段提交(2PC)的思想,但进行了优化和改进,以适应分布式环境的特殊需求。它首先会向所有参与事务的节点发送预提交请求(Prepare Request),这些节点在收到请求后会执行本地事务操作,并将操作结果和状态信息返回给协调者。如果所有节点都成功执行了本地事务操作并且没有冲突或错误发生,协调者会向所有节点发送提交请求(Commit Request),否则发送回滚请求(Rollback Request)。TiKV(TiDB 的分布式存储引擎)使用 Raft 协议来实现数据的一致性和高可用性。
2024-12-03 15:48:11
532
原创 TiDB如何将行记录映射为键值对
通过这种映射方式,TiDB能够将关系型数据库中的表数据和索引数据有效地转换为键值对,从而利用分布式键值存储系统(如TiKV)的优势进行数据存储和检索。这种设计使得TiDB能够在保持关系型数据库的功能和性能的同时,实现水平扩展和高可用性。
2024-12-03 11:23:10
411
原创 TiDB的各个节点是无状态吗?
无状态服务(Stateless Service)是指在处理客户端请求时,不依赖于任何特定的客户端状态的服务。每个请求都被独立处理,并且服务不需要在多个请求之间保持客户端的状态信息。
2024-12-03 11:15:26
404
原创 mysql一个事务最少几次IO操作
例如,如果数据不在Buffer Pool中,那么在事务开始时,可能需要从磁盘加载数据页到Buffer Pool,这会增加IO操作的次数。此外,如果事务涉及的数据页在Buffer Pool中被修改,那么在事务提交后,这些脏页需要被异步刷写到磁盘上,这也会增加IO操作的次数。在最理想的情况下,即所有数据都在内存中,并且没有其他并发事务的情况下,一个事务最少可能只需要三次IO操作:一次是将Redo Log从缓冲区刷写到磁盘,一次是Undo Log书盘,第三次是将Binlog从缓冲区刷写到磁盘。
2024-12-02 16:18:53
407
原创 MySQL中如何减少回表
在MySQL中,回表是指在使用非聚集索引进行查询时,如果需要获取的数据不在索引页中,就需要根据索引页中的指针返回到数据表中查找实际数据行的过程。这个过程会增加额外的磁盘I/O操作,降低查询性能,特别是在查询大量数据时,回表查询的开销会显著增加。为了减少回表,可以采取以下策略。
2024-11-30 17:10:28
506
原创 MySQL Inception工具
MySQL Inception是一个强大的数据库变更管理和审计工具,主要用于审核、执行、备份以及回滚数据库操作。它的工作模式和MySQL完全相同,可以直接使用MySQL客户端来连接,但不需要验证权限。Inception相对于应用程序(上层审核流程系统等)而言,是一个服务器,在连接时需要指定服务器地址及Inception服务器的端口即可。
2024-11-30 14:49:11
374
原创 Xtrabackup备份过程
(5)innobackupex收到xtrabackup通知后哦,执行FLUSH TABLES WITH READ LOCK(FTWRL),取得一致性位点,然后开始备份非InnoDB文件(如frm、MYD、MYI、CSV、opt、par等格式的文件),在拷贝非InnoDB文件的过程当中,数据库处于全局只读状态。(4)xtrabackup拷贝完成ibd数据文件后,会通知innobackupex(通过创建文件),同时xtrabackup进入等待状态(redo线程依旧在拷贝redo.log)
2024-11-30 11:32:35
320
原创 半同步复制
MySQL半同步复制(Semisynchronous replication)是一种介于异步复制和全同步复制之间的复制方式,旨在提高数据安全性,减少数据丢失的风险。在半同步复制中,主库在执行完客户端提交的事务后,不会立即返回给客户端,而是等待至少一个从库接收并将事务写入中继日志(relay log)后,主库才会返回给客户端。这样,即使主库发生故障,至少有一个从库已经接收到了事务,从而减少了数据丢失的风险。
2024-11-29 16:18:53
345
原创 redo log 如何确保事务持久性的
预写日志(Write-Ahead Logging, WAL):顺序写入:事务提交时的刷盘:后台线程的刷盘:redo log的循环使用:崩溃恢复:
2024-11-28 11:41:43
385
原创 DBA面试题-1
索引(Index)是一种用于提高数据库查询效率的数据结构。它类似于书籍的目录,能够帮助快速定位并检索表中的数据行。通过索引,数据库系统可以不必扫描整个表来查找所需的数据,而是直接访问索引结构,从而显著提高查询速度。介绍索引下推(Index condition pushdown) 简称 ICP,主要用于提升使用索引的查询效率。在MySQL中,查询优化器会决定使用哪些索引来加速查询。
2024-11-28 10:07:58
1670
原创 MyBatis-config.xml核心配置
MyBatis-config.xml 包含了会深深影响MyBatis行为的设置和属性信息,配置文档的顶层结构如下。
2024-09-21 18:14:29
678
原创 Mapper代理开发
细节:如果Mapper接口名称和SQL映射文件名称相同,并且在同一个目录下,则可以使用包扫描方式简化SQL映射文件的加载。在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致。设置SQL映射文件的namespace属性为Mapper接口全限定名。local.content下新建mapper包,并在其中定义接口。更新UserMapper.xml路径。
2024-09-21 17:49:08
319
原创 MAVEN如何导入项目
3,如果没有maven面板,可以选择view->Appearnce->Tool Window Bars。工作中经常需要导入他人的项目,那么如何导入呢?2,选中对应项目的pom.xml,双击即可。1, 选择Maven面板,点+
2024-09-12 10:09:26
580
原创 Druid连接池练习
3, 获取PreparedStatement对象。6, 处理结果:List<Brand>完成商品品牌数据的增删改查操作。1, 获取Connection。可以批量导入构造函数、查询: 查询所有数据。修改: 根据id修改。删除: 根据id删除。
2024-09-12 09:50:12
216
原创 数据库连接池
功能:获取连接 Connection getConnection();官方(SUN)提供数据库连接池标准接口,由第三方实现该接口。druid.properties配置文件设置。连接池标准接口: DataSource。DruidDemo.java源代码。Druid数据库连接池。
2024-09-12 09:45:46
257
MHA 安装包.7z
2020-04-27
CUCM RTMT adm guide
2017-12-13
Feature Description and Implementation
2014-08-19
Avaya One-x attendant WEBLM installer
2014-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人