首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏MySQLBeginner

    MySQL 数据归档实战 -Python 和 pt-archiver 的结合

    于是用python倒腾了一个小工具—mysql_archiver小工具,github地址:https://github.com/dbarun/mysql_archiver ? 二、mysql_archiver 2.1 归档调度 db_archive_exec.py,从数据库获取归档任务的基本信息,调用pt-archiver进行操作 2.1.1 表结构设计 表db_archive_info 2.3.1 表结构设计 表db_archive_report_weekly,主要存放数据库归档周报数据 ? 2.3.2 数据库视图设计 视图vw_db_archive_report_weekly,计算前一周的数据库归档情况 ? 2.3.3 生成邮件内容 ? MySQL_archiver基本上实现了数据归档的自动运转,统一的归档任务调度管理、自动监控和预警、自动生成报表。在一定程度上节约了生产力,提高了运维效率。

    1.5K20发布于 2019-02-27
  • 来自专栏MySQL

    【赵渝老师】MySQL数据约束

    数据库中,“约束”指的是对表中数据的一种限制条件,它能够确保数据库中数据的准确性和有效性。 ERROR1062(23000):Duplicateentry'1'forkey'testprimarykey.PRIMARY'二、外键约束(foreignkey)外键通常会和主键约束一起使用,用来确保数据一致性 mysql>insertintotestchildvalues(2,'Mike',1);#提示:这三条insert语句都将成功插入数据。 (1)创建一张新的表test5.展开代码语言:SQLAI代码解释mysql>createtabletest5(idint,namevarchar(32),ageint);(2)在表中增加一个字段展开代码语言 :SQLAI代码解释mysql>altertabletest5addgendervarchar(10)default'Female';#提示:这里增加了一个gender字段用于表示性别,默认是“Female

    16910编辑于 2025-12-31
  • 来自专栏企鹅号快讯

    MySQL数据归档实战-python和pt-archiver的结合

    于是用python折腾了一个小工具…… 二,mysql_archiver 2.1 归档调度 db_archive_exec.py,从数据库获取归档任务的基本信息,调用pt-archiver进行操作 2.1.1 2.3 归档报表 db_archive_report_weekly.py,生成前一周的归档情况,并以邮件方式发送 2.3.1 表结构设计 表db_archive_report_weekly,主要存放数据库归档周报数据 2.3.2 数据库视图设计 视图vw_db_archive_report_weekly,计算前一周的数据库归档情况 2.3.3 生成邮件内容 三,小结 开发运维工具,说白了,就是为了避免重复的运维工作 mysql_archiver基本上实现了数据归档的自动运转,统一的归档任务调度管理、自动监控和预警、自动生成报表。在一定程度上节约了生产力,提高了运维效率。 mysql_archiver也是存在很多缺点的,比如:python代码有点臃肿,不够简洁;缺少可视化的操作界面,如果能有一套运维平台,那就完美了。 期待各路大神的交流、指点……

    2.2K80发布于 2018-02-28
  • 来自专栏MySQLBeginner

    MySQL数据归档实战-Python和pt-archiver的结合

    导读 作者:蓝剑锋 TCL高级DBA,MySQL&Oracle OCP 知数堂MySQL实战/优化班第12期学员 微信:lanjian106103 个人公众号:DBARUN ? 于是用python倒腾了一个小工具—mysql_archiver小工具,github地址:https://github.com/dbarun/mysql_archiver ? 二、mysql_archiver 2.1 归档调度 db_archive_exec.py,从数据库获取归档任务的基本信息,调用pt-archiver进行操作 2.1.1 表结构设计 表db_archive_info 2.3.1 表结构设计 表db_archive_report_weekly,主要存放数据库归档周报数据 ? MySQL_archiver基本上实现了数据归档的自动运转,统一的归档任务调度管理、自动监控和预警、自动生成报表。在一定程度上节约了生产力,提高了运维效率。

    1.1K20发布于 2019-04-24
  • 来自专栏分布式架构

    ZooKeeper的顺序一致性属于一致性

    说到ZooKeeper到底是一致性,还是最终一致性,相信大家一定能搜到大量互相打架的文章。 在数据库中,为了提高数据库对外性能,通常采用写MVCC等。而且生产实践中,我们通常认为数据库是一致性的,而数据库的隔离级别通常默认是RC(注1),存在幻读等并发控制问题。 综上所述,我们可以知道一致性具有一定的模糊性和习惯性,因此我们可以认为一致性是一种统称,那么我们怎么判断一致性和最终一致性呢?这需要我们通过场景来实际分析。 注1:MySQL的RR其实是利用MVCC + RC来实现。 注2:关于和弱的定义,可以参考剑桥大学的slide image.png ZooKeeper 是一项高性能、可扩展的服务。 总结一下:Zookeeper并不保证读取的是最新数据:实现了CAP中的A-可用性、P-分区容错性、C-写入一致性,丧失了C-读取一致性

    3K31编辑于 2021-12-06
  • 来自专栏分布式架构

    ZooKeeper的顺序一致性属于一致性

    - 什么是一致性 - 说到zab到底是一致性,还是最终一致性,相信大家一定能搜到大量互相打架的文章。 在数据库中,为了提高数据库对外性能,通常采用写MVCC等。而且生产实践中,我们通常认为数据库是一致性的,而数据库的隔离级别通常默认是RC注1,存在幻读等并发控制问题。 注1:MySQL的RR其实是利用MVCC + RC来实现。 综上所述,我们可以知道一致性具有一定的模糊性和习惯性,因此我们可以认为一致性是一种统称,那么我们怎么判断一致性和最终一致性呢? 总结一下:Zookeeper并不保证读取的是最新数据:实现了CAP中的A-可用性、P-分区容错性、C-写入一致性,丧失了C-读取一致性。 笔者通常认为在分布式系统大部分场景中,只要达到线性写,顺序读这样的级别就可以认为是一致性

    78721编辑于 2021-12-20
  • 来自专栏技术杂记

    Mysql复制数据一致性检查

    前言 Percona Toolkit 是一系列进行mysql管理的工具,强大而高效,可以完成很多复杂的工作,是mysql数据库运维工程师居家旅行必备的良品。 Maatkit 和 Aspersa 演化而来,由 percona 收集整理和维护而成 其中有两个特别有用的工具 pt-table-checksum 和 pt-table-sync ,分别可以用来进行主从一致性检查 ,和不一致数据修复 下面分享一下Mysql复制数据一致性检查的基本操作,详细可以参阅 官方文档 Tip: 目前官方版本是 Percona Toolkit 2.2.16 ---- 概要 ---- 下载安装 package: percona-toolkit --> Running transaction check ---> Package perl-TermReadKey.x86_64 0:2.30-4.el5 Development Team <mysql-dev@percona.com>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-Percona Is this ok [y/N]

    42910编辑于 2022-04-23
  • mysql和redis数据一致性

    2.为什么需要5秒时间限制?1. 数据库操作延迟数据库更新操作(尤其是高并发场景)可能耗时较长。5秒限制:确保数据库有足够时间完成更新,避免缓存提前删除。2. 小结延时双删机制的5秒时间限制是平衡性能与一致性的关键设计:等待数据库操作完成覆盖线程/网络延迟减少缓存穿透风险错开操作时间差注意:时间设置需根据实际场景调整(如3秒、10秒),核心是确保数据库更新与缓存操作的时间差合理 更新数据时,先更新mysql,redis等缓存失效的时候,再从mysql查询,接着写入redis逻辑清晰,可控性代码侵入性大,可能出现数据不一致适用于高并发读写场景Binlog 监听同步解析 MySQL Binlog 并同步到 Redis(如 Canal)自动化同步,降低应用层负担存在延迟,数据一致性需优化高吞吐量业务,如订单、库存定时同步(批量同步)定时查询 MySQL 并批量刷新 Redis适合低频变更 (MQ)同步MySQL 写入后,发送 MQ 消息,消费端更新 Redis高可靠性,可保证最终一致性依赖 MQ,增加架构复杂度适用于金融、电商等高一致性场景延迟双删先删 Redis → 更新 MySQL

    27800编辑于 2025-03-16
  • 来自专栏java学习java

    java面试基(5

    ​ new 运算符,new 创建对象实例(对象实例在堆内存中),对象引用指向对象实例(对象引用存放在栈内存中)。

    47630编辑于 2022-11-20
  • 来自专栏技术杂记

    Mysql复制数据一致性检查1

    检查数据不一致 使用 pt-table-checksum 进行不一致数据检查 pt-table-checksum performs an online replication consistency check 检查示例 [mysql@replication-check-vm ~]$ pt-table-checksum --nocheck-replication-filters --nocheck-binlog-format replicate=test.checksum --tables abc_test_db.users h=replication-check-vm,u=root --ask-pass Enter MySQL 使用逗号分割 --databases 指定要检查的库,可以是一个列表,使用逗号分割 h=xxx,u=xxx DSN选项,h代表host,u代表用户名,使用逗号分割 --ask-pass 使用提示密码的方式连接数据库 ,而不是使用DSN指定,更安全 Note: 此时的DSN要指定master,并且首先要解决对于数据库的读写权限问题 Tip: 可以一次指定多个表进行检查,中间使用逗号分隔 [mysql@replication-check-vm

    36910编辑于 2022-04-23
  • 来自专栏ops技术分享

    检查mysql节点数据一致性

    一.简介 源码地址 日期:2018/4/12 介绍:参考pt checksum思想改写,可以定制化的检查随意两个mysql节点的数据一致性。 功能: 检查随意两个几点的数据一致性 支持并发检查,基于库的并发 支持指定行数,如默认10000。 效果图: 二.使用 适用:centos6+ 语言:中文 注意:执行前先编辑配置文件 1.下载 git clone https://gitee.com/mo-shan/check_data_for_mysql.git1 cd check_data_for_mysql` 2.编辑配置文件 vim conf/check.conf 3.修改工作路径,将这里的check_data_for_mysql_path改成check_data_for_mysql *#work_dir=\"/check_data_for_mysql_path\"#g' bin/start.sh 4.使用 bash bin/start.sh

    58240发布于 2021-06-16
  • 来自专栏IT大咖说

    分布式一致性数据库的灵魂 - Raft 算法

    内容来源:2017 年 11 月 18 日,PingCAP首席架构师唐刘在“数据技术嘉年华——分会场五:云架构、数据架构”进行《分布式一致性数据库的灵魂 - Raft 算法的理论和实践》演讲分享。 但是这样会存在各种各样的问题,比如数据量增大后无法承受压力,单节点如何向多节点分布,数据一致性怎么保证,最严重的就是数据节点挂掉,数据全部丢失了。 同步(Sync Replication)解决了异步复制(Async Replication)可能潜在的问题。 ,这就是在分布式一致性领域所面临的线性一致性问题。 它保证了系统在多个状态上的Agreement,另外在集群的大部分节点挂掉后能够保证数据一致性

    1.7K60发布于 2018-04-18
  • 来自专栏技术杂记

    Mysql复制数据一致性检查2

    修复数据不一致 使用 pt-table-sync 来进行数据不一致修复 pt-table-sync synchronizes data efficiently between MySQL tables ,所以要非常慎重,三思而后行 它并非在slave上执行操作,修改不一致数据,而是在master上重新插入当前值,通过同步而影响slave,从而解决数据的不一致(指定用户需要足读写权限) Note: pt-table-sync [mysql@replication-check-vm ~]$ pt-table-sync --replicate test.checksum h=slave-vm,u=root --ask-pass databases=abc_test_db --tables=users --print > /tmp/users.sql Enter password for slave-vm: [mysql 这个工具好在,业务在线时可以执行,不会对系统造成很大影响(会产生一定量的读IO,但不会产生有明显业务影响的锁),特别是在大表,核心表数据一致性检查时太能解渴了 ---- 原文地址

    51010编辑于 2022-04-23
  • 来自专栏lakezhong的专栏

    MySQL崩溃后的数据一致性

    作为互联网公司使用得最多的通用数据库系统,MySQL,在数据一致性方面就有较多的考虑,同时也给了用户较多的设置选项,用来满足不同业务场景下数据一致性和性能的需求(业务需要对数据一致性和性能做权衡,这里不展开 MySQL数据一致性大体上包括两方面:单机数据一致性和集群数据一致性,本文就围绕这两方面进行说明。 单机数据一致性 MySQL崩溃后,保证单机数据一致性主要包括两个机制:“MySQL binary log和InnoDB redo log的一致性”和“InnoDB数据文件的一致性”。 这个机制提升了数据灾难恢复机制,也就提升了数据一致性。 集群数据一致性 原生MySQL有很多种搭建集群的方式,这里为了把原理说清楚,只对“1主N备”的集群形式做说明。 本文介绍了MySQL数据一致性的大部分原理,MySQL原生的一致性保障有时还是无法满足生产环境的需求,因此各大公司还会通过修改MySQL复制机制、实现同步插件等方式做到应用场景匹配的一致性需求。

    3.1K81发布于 2020-02-07
  • 来自专栏PingCAP的专栏

    读 TiDB 论文有感 | 数据一致性且资源隔离的 HTAP 数据

    由于关于 TiDB 数据库在高可用、水平扩展和 ACID 事务的实现方案很久以前就已经公布出来了,对于这些主题大家都比较熟悉,所以就不再赘述了,下面主要谈谈论文中关于如何实现数据一致性且资源隔离的 HTAP 在数据库内部同时存在两套存储引擎,分布负责 OLTP 和 OLAP 工作负载,这可以很好避免上面的问题,但是数据需要从两套存储引擎中复制,这样会导致同时满足数据一致性和资源相互隔离是一个很难解决的问题 一般来说,对于一个分布式存储系统,数据一致性和资源相互隔离经常是一个二选一的选择题,选择数据一致性,一般是通过同步复制的方式(比如同步双写等)将数据复制到多个相关的实例上,那么将导致所有的计算与存储资源都会紧耦合在一个系统中 这样,TiDB 就将同步的数据复制机制转变成异步的数据复制机制了,并且保证了数据一致性。 论文中实验的数据也验证了这一点,TiDB 中,同时进行 AP 和 TP 操作,AP 操作对 TP 吞吐量的影响最多不到 10%,TP 操作对 AP 吞吐量的影响最多不到 5%。

    1.2K41发布于 2020-09-10
  • 来自专栏用户7873631的专栏

    PHP+MYSQL获取数据5

    ="localhost"; $username="root"; $password=""; $db="fy"; $pageSize=10; $showPage=5; $conn){ echo "数据库连接失败"; exit; } mysqli_select_db($conn,$db); $sql="SELECT mysqli_close($conn); $total_sql="SELECT COUNT(*)FROM page";获取数据,然后是 $total_result=mysqli_fetch_array "{$row['ID']}"; echo "{$row['NAME']}"; echo ""; }意思是获取到数据以后 ,就形成关联数组,也就是idNAME为下标啦,赋值给$row一个一个来形成数据排列下来。

    3.1K30发布于 2020-10-28
  • 来自专栏全栈工程师修炼之路

    5-MySQL数据监控方法

    [TOC] 0x01 简介 描述:主要进行监控SQL语句的执行效率以及安全性的检查,方便对MySQL服务器性能的优化提升; 0x02 监控记录 1.实时查看SQL语句 描述:MySQL默认不能实时查看执行的 所以一般在生产环境中记录指定的数据后就关闭该功能; 实际操作: /** 1.查看Logs记录功能十分是否开启 **/ mysql> SHOW VARIABLES LIKE "general_log%" > SET GLOBAL general_log = 'ON'; mysql> SET GLOBAL general_log_file = '/var/log/mysql/general_log.log '; /** 永久开启需要配置my.cnf文件 **/ general_log = 1 general_log_file = /var/log/mysql/general_sql.log /** 3 .实时查看 */ $ tail -f /var/lib/mysql/general_sql.log 补充事项: 1.您可以采用一些数据库监控软件进行实现SQL语句的监控,比如:BareTail;

    30210编辑于 2022-09-29
  • 来自专栏Java

    redis与mysql数据一致性问题(事务一致性

    redis与mysql数据一致性问题(事务一致性) 案例:考虑一个在线购物应用,其中有一个购物车服务,购物车信息存储在MySQL中,同时为了提高性能,购物车中的商品数量也被缓存到了Redis。 () try: # 开始MySQL事务 mysql_conn.begin() # 从MySQL中获取购物车中的商品数量 cursor.execute 使用MySQL事务确保原子性: 在MySQL中执行购物车更新操作时,将相关操作包裹在事务中,以确保它们的原子性。 如果任何一个操作失败,整个事务将被回滚,防止不一致的数据状态。 mysql_conn.close()

    34210编辑于 2025-01-21
  • 来自专栏深度学习与python

    Facebook一致性键值存储ZippyDB架构简介

    在 ZippyDB 之前,Facebook 的各个团队都直接使用 RocksDB 来管理他们的数据。这导致每个团队在解决类似的挑战时造成了工作的重复,比如一致性、容错、故障恢复、副本以及容量管理等。 为了解决这些不同团队的需求,我们创建了 ZippyDB,以提供一个高度持久化和一致性的键值数据存储,通过将所有的数据转移到 ZippyDB 上并解决管理这种数据相关的挑战,大大提升了产品开发的速度。 ——译者注)和读模式。 ZippyDB 在实现读取的时候,会将读取操作路由到主节点上,从而避免与 quorum 进行对话。 “在某些极端的情况下,主节点尚未得到更新的消息,这时候对主节点的读就变成了对 quorum 的检查和读取。”

    81720编辑于 2023-04-01
  • 来自专栏Java

    redis与mysql数据一致性问题(数据丢失)

    redis与mysql数据一致性问题(数据丢失) 案例:考虑一个在线博客平台,博客文章内容存储在MySQL数据库中,同时使用Redis作为缓存层以提高访问速度。 用户在发布新博客文章时,需要确保文章内容既保存在MySQL中,也缓存到Redis中,以避免数据丢失导致用户访问时获取不到最新的博客内容。 () try: # 开始MySQL事务 mysql_conn.begin() # 向MySQL插入博客文章 cursor.execute mysql_conn.close() 解决方案: 使用Redis持久化机制: 启用Redis的持久化机制,通过定期快照(RDB)或追加文件(AOF)的方式将数据持久化到磁盘,以防止Redis重启时数据丢失 ,以保证数据一致性

    18400编辑于 2025-01-21
领券