自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL 8.0 OCP 英文题库解析(一)

Oracle 为庆祝 MySQL 30 周年,从 2025.04.20 ~ 2025.07.31 之间,所有人均可以免费考取 MySQL OCP 认证。从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证,省1700多RMB,这个羊毛薅定了。

2025-05-08 14:12:13 160

原创 openGauss基于PITR恢复测试

检查是否开启归档日志。

2025-04-18 17:11:04 252

原创 物理备份工具 BRM vs gs_probackup

上一篇文章讲了openGauss的物理备份工具gs_probackup,今天来说说BRM备份工具。BRM备份恢复工具全称为:Backup and Recovery Manager,是MogDB基于opengauss的备份工具 gs_probackup 做了一些封装和优化,面向MogDB数据库实现备份和恢复运维管理工作。

2025-04-11 17:30:15 260

原创 opengauss使用gs_probackup进行增量备份恢复

gs_probackup对物理备份gs_basebackup的增强。

2025-04-09 16:15:24 416

原创 一文快速上手openGauss

本文基于centOS7.6环境,目的是简单快速安装openGauss企业版本,官方安装文档有更加详细步骤和说明官方安装文档地址 https://docs.opengauss.org/zh/docs/6.0.0/docs/InstallationGuide安装前准备(1)安装依赖包(2)下载和解压安装包登录https://opengauss.org/zh/download/ 下载企业版(3)修改主机名(4)配置库环境变量(5)编辑配置文件。

2025-03-26 16:14:20 506

原创 快速上手pg_basebackup

pg_dump是逻辑备份,pg_dump工具会导出数据库中的所有对象(如表、视图、函数等)及其数据,并生成一个包含创建这些对象和插入数据的SQL脚本。这种备份方式基于备份开始时的事务快照,因此它反映的是备份开始时的数据状态,即。而pg_basebackup是物理备份,pg_basebackup 工具会复制整个数据目录,包括表空间、配置文件等,并且在备份过程中会记录和复制所有的WAL文件,以确保备份数据的一致性。

2025-03-19 17:08:04 926

原创 PG vs MySQL 主从复制的异同点

如下图是一个完整的主从复制的一个流程。

2025-03-07 17:29:35 954

原创 PG的逻辑复制

逻辑复制是基于逻辑解析,其核心原理是逻辑主库将Publication中表的WAL日志解析成一定格式并发送给逻辑备库,逻辑备库Subscription接收到解析后的WAL日之后进行重做,从而实现表数据同步;逻辑复制架构中最重要的两个角色为Publication和Subscription。Publication(发布)可以定义在任何可读写的PostgreSQL实例上,对于已创建Publication的数据库成为发布节点,一个数据库中允许创建多个发布,目前允许加入发布的对象只有表,允许多个表注册到一个发布中。

2025-03-06 17:35:15 680

原创 PG流复制从零开始搭建教程

【代码】PG流复制从零开始搭建教程。

2025-03-05 11:22:20 217

原创 PG vs MySQL 统计信息收集的异同

对于一条SQL,数据库选择何种方式执行,需要根据统计信息进行估算,计算出代价最低的执行计划。收集统计信息主要是为了让优化器做出正确的判断,选择最佳的执行计划。

2025-02-05 17:31:12 998

原创 PG vs MySQL mvcc机制实现的异同

MVCC实现方法比较MVCC实现方法比较MySQL写新数据时,把旧数据写入回滚段中,其他人读数据时,从回滚段中把旧的数据读出来PostgreSQL写新数据时,旧数据不删除,直接插入新数据。MVCC实现的原理PG的MVCC实现原理定义多版本的数据——使用元组头部信息的字段来标示元组的版本号定义数据的有效性、可见性、可更新性——通过当前的事务快照和对应元组的版本号判断实现不同的数据库隔离级别——通过在不同时机获取快照实现PG的数据多版本实现。

2025-01-17 11:14:54 1200

原创 PG备份恢复--pg_dump

pg_dump 是一个逻辑备份工具。使用 pg_dump 可以在数据库处于使用状态下进行一致性的备份,它不会阻塞其他用户对数据库的访问。一致性备份是 pg_dump 开始运行时,给数据库打了一个快照,且在 pg_dump 运行过程中发生的更新将不会被备份。pg_dump 只备份单个数据库,不能备份数据库公共的全局对象(例如角色和表空间)创建一个database mydb ,在mydb下创建一个表t1。

2024-12-25 15:59:27 691

原创 MySQL8.0后的double write有什么变化

一部分是内存中的double write buffer ,大小为2MB(16k一个页,一共128个页)。第二部分是磁盘共享表空间的128个数据页,在对脏页进行落盘的时候,并不是直接进行落盘,而是先复制到double write buffer,然后再分别写入到共享表空间,然后再写入表空间。

2024-12-24 15:41:15 922

原创 pgbench的使用

r 在基准结束后,报告平均的每个命令的每语句等待时间(从客户端的角度来说是执行时间)。pgbench -i -s 5 pgbenchdb --初始化,将在pgbench_accounts表中创建500,000行。-T 运行测试这么多秒,而不是为每个客户端运行固定数量的事务。–基准测试1,并行工作线程数2,客户端数量4,每客户端事务数60。-c 模拟的客户端数量,也就是并发数据库会话数量。–基准测试2,并行工作线程数2,客户端数量10,运行时间1分钟。注意:-t和-T是互斥的。

2024-11-26 17:22:26 294

原创 PG的并行查询

PostgreSQL利用多CPU 让查询更快,这种特性被称为并行查询。第一个sql进行了并行查询,Gather节点位于最顶端,说明整个查询都是并行,如果Gather或Gather Merge位于Plan Tree的中间层,则位于Plan Tree下方的都是并行。第二个sql关闭了并行,在有缓存的情况下,执行依然比第一个并行执行的sql还要慢一些。并行成本值。

2024-11-22 18:24:05 411

原创 长事务影响vacuum和vacuum full

session 1 有长事务没提交,导致session 2的vacuum 清理死元组失败,session 1 提交后,vacuum 成功。将session 1 commit后,再次在session 2中执行成功。表末端的数据如果是死元组,进行vacuum也能把空间释放掉。表末端的数据如果是死元组,进行vacuum也能把空间释放掉。

2024-11-13 15:59:11 182

原创 MySQL 元数据锁查询

元数据锁查询

2024-09-06 10:27:11 1642

原创 MySQL8.0新特性~资源组的应用

MySQL-8.0中新增了resource group资源组的功能。MySQL资源组的想法来源很简单:每个资源组是一个资源独立的单位,每个资源组能够容纳一个或者多个MySQL线程。拥有设置资源组权限的DBA们能够创建、配置资源组以及指定、切换MySQL线程从属的资源组,从而更加精准地管控MySQL。RESOURCE_GROUP_NAME: 资源组名。

2024-08-01 16:26:42 535

原创 MySQL8.0新特性~最左前缀匹配原则被打破了

在MySQL8.0.25和mysql5.7.33中创建如下在mysql8.0.25中执行在mysql5.7.33中执行可以看到在8.0版本中使用了range的扫描方式。

2024-07-22 15:17:22 787 1

原创 MySQL8.0 MGR的维护管理

当最后一个节点也退出时,相当于整个MGR集群都关闭了。这时候任何一个节点启动MGR服务后,都不会自动成为Primary节点,需要在启动MGR服务前,先设置 group_replication_bootstrap_group=ON,使其成为引导节点,再启动MGR服务,它才会成为Primary节点,[参考文章](后续启动的其他节点也才能正常加入集群。P.S,第一个节点启动完毕后,记得重置选项 group_replication_bootstrap_group=OFF,避免在后续的操作中导致MGR集群分裂。

2024-07-17 17:49:31 988

原创 使用mysql shell搭建MGR

资源有限只需要准备一台Linux主机腾讯云主机159.75.158.18(1)规划部署(2)准备实例配置文件编辑3个配置文件,分别是my3381.cnfmy3382.cnfmy3383.cnf配置文件内容以my3383.cnf为例将其中对应的数字3383 改为对应端口到不同配置文件(3)创建目录(4)初始化和启动库(5)创建账号为了简化步骤,直接执行此步骤不规范,正常操作应当是#在本地通过socket方式登入执行选择数据用户和密码在使用。

2024-07-16 17:39:04 1175

原创 xtrabackup 备份报错“too many open files“ 突然消失

可以看到不同的用户启动数据库,导致open_files_limit的生效值不同。open_files_limit : 如果是root账号启动 以my.cnf文件里面的值为准, 如果是mysql启动, 就可能是 ulimit -n 看到的那个值。在my.cnf中配置open_files_limit=65535 ,当我们以mysql用户启动(mysql用户文件句柄数限制为1000),数据库中open_files_limit的生效值采用的事1000,疑问备份需要打开的表超过1000,因此备份失败;

2024-07-05 15:36:57 715

原创 MySQL8.0~open_files_limit 和 innodb_open_files 参数生效取值标准

1、innodb_open_files 和open_files_limit 两个参数值生效,和操作系统配置和配置文件配置有关系,且和不同操作系统启动服务也有关。2、open_files_limit : 如果是root账号启动 以my.cnf文件里面的值为准, 如果是mysql启动, 就可能是 ulimit -n 看到的那个值3、innodb_open_files :如果以mysql账户启动,则取my.cnf文件里面的值为准;

2024-07-05 14:28:22 989

原创 MySQL8.0新特性~设置不记录某些错误到error log

在MySQL8.0 中 error lo相关参数多了log_error_services 和log_error_suppression_list ,另外log_error_verbosity 的默认值变成了25.7.338.0.25。

2024-07-03 11:10:52 550

原创 MySQL8.0新特性~ddl log

在MySQL8.0之前的版本中,由于架构的原因,mysql在server层使用统一的frm文件来存储表元数据信息,这个信息能够被不同的存储引擎识别。而实际上innodb本身也存储有元数据信息。这给ddl带来了一定的挑战,因为这种架构无法做到ddl的原子化,我们在线上经常能够看到数据目录下遗留的临时文件,或者类似server层和innodb层列个数不一致之类的错误。

2024-07-03 09:37:04 855

原创 MySQL8.0新特性~索引新增特性

使用 invisible 创建表 或者 进行 表变更中设置索引为 隐藏索引。这时,索引隐藏不可见, 但是数据库会在后台继续维护隐藏。这个隐藏索引, 在查询时,甚至 force index 都不会使用。这个隐藏索引的主要作用是: 一些索引不确定是否有需要, 如果进行删除,后续又需要恢复这个索引, 假如数据量很大,那么就会耗费大量时间。这时就可以将索引设置为隐藏索引, 等需要时 直接恢复即可。

2024-07-01 16:21:46 704

原创 MySQL8.0新特性~General tablespaces

通用表空间数据文件可以放置在数据目录之外的位置,但是路径必须是innodb_directories的值或者附加到innodb_directories值的变量(innodb_data_home_dir、innodb_undo_directory和datadir)之一。通过ALTER TABLE语句的TABLESPACE选项可以修改表的表空间,将表在通用表空间、独立表空间或系统表空间之间进行移动。和Oracle一样,MySQL在创建表时可以指定表空间也可以修改表的表空间。例:创建datadir路径外的表空间。

2024-06-28 16:11:28 1029

原创 mysql8.0中的mysql.ibd

在MySQL 8.0之前,数据字典的信息分散在多个位置,包括文件系统上的文件(如.frm、.opt、.TRN等文件)以及数据库系统表中(如INFORMATION_SCHEMA和mysql库中的表)。从MySQL 8.0开始,所有的数据字典信息都被迁移到了InnoDB存储引擎的表中,并且使用一个单独的表空间文件mysql.ibd来存储这些信息。这一变化极大地简化了数据字典的维护,提高了其访问效率和可靠性。mysql8.0版本中多了一个mysql.ibd的文件。.TRN,.TRG文件用于存放触发器的信。

2024-06-06 11:31:23 452 1

原创 MySQL主从异常1872报错

主从报错1872处理办法

2024-05-08 11:29:07 654

原创 MySQL的GTID

mysql 的GTID详解

2024-04-30 10:19:55 1300 3

原创 mysqldump备份期间做DDL会发生什么

mysqldump备份期间做DDL会发生什么

2024-04-30 09:59:20 507

原创 MySQL参数优化

mysql参数优化

2024-04-29 16:19:38 641

原创 MySQL 迁移到 Oracle 需要注意的问题

MySQL 迁移到 Oracle 需要注意的问题

2024-04-29 16:15:34 657

原创 optimize table、analyze table 和 alter table的区别

mysql的optimize table、analyze table 和 alter table的区别

2024-04-29 16:07:40 495

原创 MySQL权限一览

mysql权限大全

2024-04-29 15:57:11 272

原创 MySQL怎么看死锁记录

mysql如何查看死锁记录

2024-04-29 15:50:02 609

原创 MySQL的change buffer是什么

mysql的change buffer有什么用

2024-04-29 15:47:08 599

原创 表空洞是什么

mysql的表碎片清理

2024-04-29 15:41:36 591

原创 mysql索引优化

InnoDB 默认会选择 N 个数据页,统计这些页面上的不同值,得到一个平均值,然后乘以这个索引的页面数,就得到了这个索引的基数。即使你将 index2 的定义修改为 email(18) 的前缀索引,这时候虽然 index2 已经包含了所有的信息,但 InnoDB 还是要回到 id 索引再查一下,因为系统并不确定前缀索引的定义是否截断了完整信息。如果使用 index1(即 email 整个字符串的索引结构)的话,可以利用覆盖索引,从 index1 查到结果后直接就返回了,不需要回到 ID 索引再去查一次。

2024-04-29 15:35:44 421

原创 MySQL常用的几个reset

因为在slave 运行时刻 reset master 命令不被支持,reset master 将master 的binlog从000001 开始记录,slave 记录的master log 则是reset master 时主库的最新的binlog,从库会报错无法找的指定的binlog文件。1.reset master 将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件 起始值从000001 开始,然而purge binary log 命令并不会修改记录binlog的顺序的数值。

2024-04-29 15:32:58 435

空空如也

空空如也

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

TA关注的人

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