在MySQL中,TIMESTAMP列的默认范围是从'1970-01-01 00:00:01'到'2038-01-19 03:14:07'。如果插入的时间值超出了该范围,MySQL会将其视为无效值,并将其设置为'0000-00-00 00:00:00'。在MySQL 8.0.35最新版本中,timestamp时间戳溢出的问题目前仍旧没有解决。如下图所示:为了解决这个问题,只能更改表结构,将updat
redis_find_bigkey工具 - 自定义阀值查找Redis Big Keyshttps://github.com/hcymysql/redis_find_bigkeyRedis大key是指在Redis中存储的Value值非常大的键,当一个命令需要处理大的键值时,Redis将会花费更多的时间来执行这个命令,这会导致其他客户端发起的命令需要等待更长的时间才能得到响应。在高并发的场景下,这可能
就一个文件,浏览器直接打开即可。https://github.com/vrana/adminer/releases/download/v4.8.1/adminer-4.8.1-mysql.php为什么Adminer比phpMyAdmin更好?将phpMyAdmin替换为Adminer,您将获得更整洁的用户界面、更好的 MySQL 功能支持、更高的性能和更高的安全性。我用的目标下载地址:https:
mysql_sniffer 是一个基于 MySQL 协议的抓包工具,用来实时抓取 MySQL 服务端的请求,并格式化输出,输出内容包括访问时间、来源 IP、执行的SQL语句。在进行MySQL 8.0升级时,了解新版本对SQL语法的改变和新增的功能是非常重要的。通过使用mysql_sniffer,DBA可以在升级之前对现有的SQL语句进行抓取和分析,以确保在新版本中能够正常运行。有一些已知SQL语法
MySQL 5.7 将于 2023 年 10月 31日 终结生命周期。终结意味着自2023年10月31日起,MySQL官方将不再提供对MySQL 5.7版本的技术支持和更新。本文将从技术角度和业务层面出发,来分析升级数据库或迁移到其他数据库系统的必要性和迫切性。我们将探讨为什么进行数据库升级或迁移是一个重要的决策,并从技术和业务两个方面来论述。
MongoDB 4.2 版本引入了流量控制特性,用于保持副本集多数提交延迟不超过指定的最大值,从而确保数据的一致性和可靠性。如果复制延迟达到"flowControlTargetLagSeconds" : 10(秒),流量控制机制就会开始限制主节点上的写入操作。db.adminCommand( { getParameter : 1, "flowControlTargetLagSeconds" : 1
mysqlstat 是一个命令行工具,功能如下:实时监控mysql服务器的QPS、TPS、网络带宽指标查看执行次数最频繁的前N条SQL语句查看访问次数最频繁的前N张表文件ibd查看当前锁阻塞的SQL查看死锁信息查看重复或冗余的索引查看应用端IP连接数总和统计库里每个表的大小MySQL命令行监控工具 - mysqlstat https://github.com/hcymysql/mysqlstat
MySQL 8.0 MGR(组复制)高可用VIP故障转移脚本简介:MGR(组复制)官方推荐用MySQL router中间件去做MGR高可用故障转移,但其多过了一层网络,性能会下降,并且需要额外维护一套中间件,运维成本过高,于是写了一个类似MHA的master_ip_failover脚本,实现VIP切换。1)脚本会自动设置当前Primary和备选Primary参数group_replication_
在MySQL中,AES_ENCRYPT函数本身不包含盐的功能。盐(salt)是一个随机生成的值,用于增加加密的复杂性和安全性。在使用盐时,需要确保每次加密都使用不同的盐值,并将盐值与加密后的数据一起存储。解密时,需要将盐值与加密后的数据一起使用,以正确还原原始数据。使用带盐的AES_ENCRYPT函数,加密具体步骤如下:生成一个随机的盐值。盐值应该足够长、足够复杂,以增加破解的难度。将盐值和密钥连
slowquery2023年9月13日更新: 用自研的sql_helper替换掉soar,无需部署,直接拉取docker pull slowquery即可。服务端部署:拉取镜像shell> docker pull docker.io/hcymysql/slowquery:2023-09-13启动shell> docker run -itd -e "TERM=xterm-256color
pt-slave-repair介绍MySQL主从复制作为一种常见的数据同步方式,有时候会出现同步错误导致同步中断的情况。手动修复这些同步错误通常需要耗费时间和精力,并且对于不熟悉MySQL复制的人来说比较困难。pt-slave-repair是对原有pt-slave-restart工具的补充,它提供自动修复MySQL主从同步复制的报错数据,以及恢复中断的sql thread复制线程。https://
输入SQL自动判断条件字段是否增加索引https://github.com/hcymysql/sql_helper使用:shell> chmod 755 sql_helper shell> ./sql_helper -f test.yaml -q 'select * from sbtest1 limit 1;'注:test.yaml为MySQL配置文件
mysqlbinlog;数据恢复
MySQL全量数据迁移至ClickHouse步骤:a) /usr/bin/mydumper -h 192.168.192.180 -u hechunyang -p wdhcy159753 -P 3306 --no-schemas -t 12 --csv -v 3 --regex '^hcy.user$' -o ./注:需要mydumper 0.12.3-3版本支持导出CSV格式b) clickho
MySQL表结构转换为ClickHouse表结构https://github.com/hcymysql/binlog_parse_sql/blob/main/mysql_to_clickhose_schema.pyhttps://github.com/hcymysql/binlog_parse_sql/blob/main/mysql_to_clickhose_schema_test.py(MySQ
binlog_parse_clickhouse.py(ETL抽数据工具)将MySQL8.0迁移至ClickHouse原理:将解析 binlog 和执行 SQL 语句两个过程由两个线程来执行。其中,解析 binlog 的线程每次解析完一个事件后通过队列将 SQL 语句传给 SQL 执行线程, SQL 执行线程从队列中取出 SQL 语句并按顺序依次执行,这样就保证了 SQL 语句的串行执行。https
需求:在不知道表名和字段名的情况下,查找出哪些字段里包含“关键字”的数据。思路1:整库全量dump,按照表名导出txt纯文本格式,然后用grep命令过滤。find ./ -name "*.sql" | xargs grep '金凤凰' >> result.log思路2:用python全量扫描跑批,涉及到varchar的字段都扫一遍。import pymysql from concurr
binlog_analysisBinlog分析工具-binlog_analysis.pyhttps://github.com/hcymysql/binlog_analysisshell> pip3 install mysql-replication -i "http://mirrors.aliyun.com/pypi/simple" --trusted-host "mirrors.aliyu
binlog_parse_sqlhttps://github.com/hcymysql/binlog_parse_sql将 binlog 解析为 SQL 并将其存入数据库shell> pip3 install pymysql mysql-replication -i "http://mirrors.aliyun.com/pypi/simple" --trusted-host "mirr
当mysqld服务进程访问损坏的表时,数据库会直接崩溃退出。如果在遭遇到损坏的表时,不希望出现这种结果,请将参数innodb_corrupt_table_action变量值设置为salvage,该值会跳过损坏的表,不会使mysqld服务进程崩溃,导致整个数据库无法启动。注:1)MySQL没有此参数,请切换至Percona或者MariaDB2)该参数只能适配独立表空间 innodb_file
sqlops新增pt-osc功能,触发条件:1)当行记录小于150万行,研发可以直接在网页里执行Alter table操作。2)当行记录大于150万行并且小于3000行,平台将调用pt-online-schema-change开源工具在线执行Alter表结构变更。3)当行记录大于3000行时,提示:Alter更改表结构会引起表锁,影响业务。由于该表过大,平台不支持自助上线。https://gi
redis_monitorhttps://github.com/hcymysql/redis_monitor轻便式Redis Monitor面向研发人员图形可视化监控工具,借鉴了LEPUS(天兔)监控平台以及redis-cli info命令输出的监控指标项,去掉了一些不必要看不懂的监控项,目前采集了数据库连接数、QPS、内存使用率统计和同步复制延迟时长。Redis Monitor可以监控单
MySQL 8.0.31版本引入了一个参数sql_generate_invisible_primary_key,开启这个参数,会在建表时,检查表中是否有主键,如果没有主键,则会自动创建。该参数非常实用,减少了DBA对sql语句表结构的审计。自动创建主键l 参数名称:sql_generate_invisible_primary_keyl 作用范围:Glob
数据库审计平台(简称DB Audit),实时记录用户操作数据库的行为,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行实时告警。通过对用户访问数据库行为记录、分析和汇报,来帮助DBA事后生成合规报告、事故追根溯源,同时通过搜索技术提供高效查询审计报告,定位事件原因,以便日后查询、分析、过滤,实现加强内外部数据库网络行为的监控与审计,提高数据资产安全。目前有两种技术方案
mydumper早期版本,第一步先通过mydumper导出数据入本地;第二步再通过myloader导入本地数据库里。mydumper最新版,支持Stream流式备份恢复,通过管道的方式,一条命令即可实现备份和恢复,从而加快恢复速度。1)安装:#yum install https://github.com/mydumper/mydumper/releases/download/v0.12.3-3
MariaDB Xpand 是一款(MySQL客户端协议)在线事务处理 (OLTP)分布式数据库(对标PostgreSQL协议的CockroachDB),Xpand则是存储引擎。使用 MariaDB Xpand 需要许可证密钥(45天非生产试用期)。软件下载地址 https://mariadb.com/downloads/#xpand特点1)符合ACID的分布式数据库,适用于海量数据、高并
通常,ALTER TABLE首先在主库上执行完毕后,才被复制并开始在从库上执行。有了这个特性,当ALTER TABLE在主库上开始执行时,它会立刻被复制并开始在从库上执行。这样可以完全消除从库的复制滞后,即可实现从库无延迟并行复制。使用:MariaDB [test]> set global binlog_alte
InnoDB数据页面压缩(Page Compression)技术可以使数据文件体积变小,减少降低磁盘开销,2亿行记录,可提高吞吐量(20%-30%),以较小的成本地提高了CPU的利用率。尤其是对只读业务,(例如,查询历史订单表)最为有效,同样的磁盘空间可以存储更多的数据。InnoDB提供了两种压缩技术,一种是早期的 行格式压缩(COMPRESSED Row Format),它该方法是在
有一些已知SQL语法与MySQL 8.0不兼容,例如:grant ALL on *.* to admin@'%' identified by 'hechunyang';select NVL(id/0,'YES') from test.t1 where id = 1;select user_id,sum(amount) from test.user group by user_id DESC lim
update_10w循环分批次批量更改数据10万行记录业务方的SQL: UPDATE t1 SET report_status=0 WHERE create_time>'2022-04-28 00:00:00' and create_time<'2022-04-29 00:00:00';这个SQL要改18422654条数据,直接执行会影响业务稳定性,并且造成主从复制延迟。固需要通过脚本
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号