首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

mysql 正确清理binlog日志

mysq 正确清理binlog日志 前言: MySQLbinlog日志记录了数据库中数据变动,便于对数据基于时间点和基于位置恢复,但是binlog也会日渐增大,占用很大磁盘空间,因此,要对...binlog使用正确安全方法清理掉一部分没用日志。...【方法一】手动清理binlog 清理准备: ① 查看主库和从库正在使用binlog是哪个文件 ?...1 purge master logs to'mysql-bin.000022'; //删除指定日志文件日志索引中binlog日志文件 注意: 时间和文件名一定不可以写错,尤其是时间中年和文件名中序号...切勿删除正在使用binlog!!! 使用该语法,会将对应文件和mysql-bin.index中对应路径删除。 【方法二】通过设置binlog过期时间,使系统自动删除binlog文件 ?

3.5K10

快速安全清理MySQL binlog

一、问题提出 之前写过一篇名为“快速安全删除MySQL大表”博客,讲解如何在不影响线上数据库服务前提下删除大表。实际上清理MySQL binlog也会遇到同样问题。...最初做法是,每天凌晨2:30执行下面的操作清理10天前binlog: mysql -uroot -p123456 -s /data/3306/mysqldata/mysql.sock -e "purge...随着业务量增长出现了两点变化:一是数据库负载增加;二是由于磁盘空间紧张,原存储binglog磁盘上也存储了MySQL数据。这种情况下,即便是在业务低峰期,每次执行清理任务时也会卡库。...事实证明这种方案行之有效,能够不影响数据库服务同时清理binlog。下面是相关脚本文件及其说明。...设置环境 包括设置mysql可执行文件路径和其它资源。 2. 创建binlog文件硬链接 只对具有唯一前缀binlog文件创建硬链接,避免重复创建时报错。

1.7K10

如何彻底卸载清理MySQL

大家好,又见面了,我是你们朋友全栈君。 我们因为各种各样原因可能需要卸载MySQL或者卸载重装,但是如果MySQL不能清理干净的话是很容易出现问题。...本文就讲讲如何彻底卸载MySQL,将MySQL从我们电脑上清理干净。 大体上分为三个步骤: 卸载软件本身。 清除残留文件(☆☆☆☆☆)。 清理注册表。 1....这里我们需要清理两个文件夹。...第一个是:C:\Program Files (x86)\MySQL, 第二个是:C:\ProgramData\MySQL,这里ProgramData可能是隐藏,我们需要在资源管理器中设置查看隐藏文件...清理注册表 往往我们进行完上面的两个步骤,我们计算机上mysql就已经完全删除了,这时进行重装和其他操作就不会有问题了,但是如果这样还是有问题的话,我们就要尝试清理注册表信息。

6.9K20

如何正确清理MySQL数据

如何正确清理MySQL数据 1. 为什么删了数据,表文件大小没有变 1.1 数据删除流程 删除记录,只会将记录标记为删除,表示该位置可以服用。 数据数据页,表示数据页可以复用。...使用 delete 删除所数据,所有的数据页会被标记为可复用,但是磁盘空间占用没有变化。 1.2 数据空洞 删除,插入等操作会使数据页上出现空元素,也叫做数据空洞。 2....如何避免数据空洞 假设数据表A中存在大量数据空洞,解决办法就是重建表。 2.1 重建表流程 建立临时文件,扫描表A主键所有数据页。 利用表A记录生成B+树,存储到临时文件X。...生成临时文件过程中,所有对表A操作记录在日志文件中。 临时文件X生成后,将日志文件应用到临时文件,得到新临时文件 用临时文件 替换表A数据文件。...2.2 什么是Online DDL 在复制表同时,将对表操作,写入日志文件,之后再将日志文件应用到复制文件上,实现复制表时候,不阻塞其他对表写入操作,因此称为Online DDL。

4.7K30

MySQL数据清理需求分析和改进

昨天帮一个朋友看了MySQL数据清理问题,感觉比较有意思,具体实施这位朋友还在做,已经差不多了,我就发出来大家一起参考借鉴下。...为了保证信息敏感,里面的问题描述可能和真实情况不符,但是问题处理方式是真实。 首先这位朋友在昨天下午反馈说他有一个表大小是近600G,现在需要清理数据,只保留近几个月数据。...rename table,这是MySQL归档数据一大利器,在其他商业数据库里很难实现。 但是为了保险起见,我说还是得看看表结构再说。结果看到表结构,我发现这个问题和我预想完全不一样。...mysql> select max(Id) from test_data; +---------+ | max(Id) | +---------+ | 1603474 | +---------+ 1 row...按照这个思路来想,自己还有些成就感,发现这么大一个问题症结,如果数据没有特别的存储,200万数据其实也不算大,清理起来还是很容易

1.4K50

mysql清理日志脚本分享

就需要定期清理, 人工清理一是麻烦, 二是容易出错 所以整了个清理日志脚本. 脚本下载地址 1....='60' #切换之后日志过期时间, 超过之后就删除 SLOW_LOG_TAR_DIR='' #切换之后日志保存目录, 为空时候,表示原来路径 #ERROR LOG #ERROR_LOG_FILE...超过就切换并归档 ERROR_LOG_TAR_EXPIRE_DAYS='60' #归档错误日志最大保存时间, 过期就删除 ERROR_LOG_TAR_DIR='' #切换之后日志保存目录 #...='60' #切换之后日志过期时间, 超过之后就删除 SLOW_LOG_TAR_DIR='' #切换之后日志保存目录, 为空时候,表示原来路径 #ERROR LOG #ERROR_LOG_FILE...='524288000' #500MB GENERAL_LOG_TAR_EXPIRE_DAYS='60' GENERAL_LOG_TAR_DIR='' #BINLOG 不支持, 就系统自动清理就行

1K60

mysql慢查询优化-内存清理

前提介绍 同样mysql,同样查询,为啥在不同服务器上查询效率差别有10几倍 继上一篇索引优化后,在自己服务器上已经从10几秒优化到了2s,以为万事大吉了, 谁知道,同样操作,在客户服务器上优化后...这让我开始怀疑客户服务器内存使用 由于客户mysql,当时我是使用docker镜像,所以一开始想到解决方案是扩大docker容器内存 但是后来一想,即使内存扩大了,保不住下次还会不够用,为啥一个小小...mysql能把内存占满了, 不行,必须从mysql上解决根本问题,而不是一位扩大内存 于是,我开始了如下操作: 解决过程 查看docker容器cpu占用情况 image.png 神马?...image.png 查询存在连接数 在mysql 输入 show processlist ;查询存在连接数以及timeout时间,可以帮助识别出有问题查询语句 发现有好多造成查询慢语句 mysql...wait_timeout过大有弊端,MySQL里大量SLEEP连接无法及时释放,拖累系统性能; 设置过小,可能会遇到“MySQL has gone away”之类报错 Linux系统中,默认是28800

2.3K20

cocos 🦑 🎮 开发游戏利器 ⚔ :1️⃣ 创建游戏场景

这是我参与11月更文挑战第19天,活动详情查看:2021最后一次更文挑战」 安装 Cocos CREATOR 新下载后是需要Editor中安装插件(我最开始安装时最新版本,但是新建项目后没有Canvas...浏览器控制台 可以在控制台对我们游戏进行性能分析 点击stop后 可以看到每部分耗时 开始我项目 分为如下七步 1.创建项目 2.创建游戏场景 3.制作游戏摇杆 4.搭建物理地图,开启物理引擎...5.摇杆控制坦克移动 6.游戏地图滚动 7.打包发布微信小游戏 我们项目已经建好了我,文件夹也建了。...下面我们创建一下游戏场景: 创建游戏场景 把需要图片文件放入文件夹 如果复制到Cocos Creator中时复制不进去,那就去文件夹中粘贴。...摇杆外圈和内部按钮。

48430

MySQL数据清理有技巧,这么破

比如一个对数据表做清理操作,可能看起来就是做些delete操作,有什么好办法和技巧呢。...所以我目标是:在正常时间进行数据清理工作,而且对于业务无感知。...本着这个目标,我就得更加细致和认真一些,比如表test需要保留多长时间数据,存在哪些时间字段,我们清理和补录是基于哪些时间字段,我整理了下表: ? 可以看到整个清理工作量还是比较大。...我们需要构造另外一个影子库,在这个影子库下面创建同名表,然后通过rename方式进行切换,为了保证这个过程完整性和连续性,整个rename过程应该是一气呵成。 ?...而整个数据写入根据测试,基本都是4秒内就可以完成数据写入。 执行清理之后效果如何呢,可以看到清理数据效果还是很不错。 ?

1.3K30

MySQL Binlog和Relaylog生成和清理

BINLOG文件生成与删除 binlog文件生成: 在每条二进制日志写入到日志文件后,会判断该文件是否超过max_binlog_size,如果超过则生成一个新binlog binlog文件删除:...1>当使用RESET MASTER命令后,会清空全部二进制日志 命令:RESET MASTER; 2>当执行PURGE MASTER LOG TO命令后,会删除指定binlog以及之前二进制日志...命令:PURGE MASTER LOGS TO ‘binlog file name’; 3>当执行PURGE MASTER LOG BEFORE 命令后,会删除指定时间前所有二进制 命令:PURGE...flush-log 清理binlog文件顺序: 先从文件系统中清理文件,再修改索引文件。...没有关系) PS: 因此还是建议配置 expire-logs-days , 否则当我们外部脚本因意外而停止时,还能有一层保障。

1.9K40

mysql创建数据库步骤_MySQL创建数据表

,其实在未执行创建一个数据库之前是查不到这个数据库,也就是在mysql安装文件目录里看不到cjhl_xzf这个文件夹。...sys +———-+ 3 rows in set (0.00 sec) 2、创建一个数据库cjhl_xzf mysql> CREATE DATABASE cjhl_xzf; 注意不同操作系统对大小写敏感...3、选择你所创建数据库 mysql> USE cjhl_xzf Database changed 此时你已经进入你刚才所建立数据库cjhl_xzf. 4、 创建一个数据库表 首先看现在你数据库中存在什么表...创建了一个表后,我们可以看看刚才做结果,用SHOW TABLES显示数据库中有哪些表: mysql> SHOW TABLES; +———————+ | Tables in menagerie |...: mysql> select * from mytable; Empty set (0.00 sec) 这说明刚才创建表还没有记录。

16.1K60

mysql创建索引原则

mysql中使用索引原则有以下几点: 1、 对于查询频率高字段创建索引; 2、 对排序、分组、联合查询频率高字段创建索引; 3、 索引数目不宜太多 原因:a、每创建一个索引都会占用相应物理控件...StudentName, Sex, Address, Phone, BirthDate),其中需要对StudentNo,StudentName字段进行查询,对Sex字段进行分组,对BirthDate字段进行排序,此时可以创建多列索引...index index_name (StudentNo, StudentName, Sex, BirthDate); #index_name为索引名 在上面的语句中只创建了一个索引...创建多列索引,需要遵循BTree类型, 即第一列使用时,才启用索引。...在上面的创建语句中,只有mysql语句在使用到StudentNo字段时,索引才会被启用。

2.4K10

MySQL存储过程_MySQL创建存储过程

如果将这些sql操作封装在存储过程中,只需网络交互一次可能就可以了; 存储过程基础语法 1、创建存储过程语法 CREATE PROCEDURE 存储过程名称 ([ 参数列表 ]) BEGIN --...PROCEDURE [ IF EXISTS ] 存储过程名称 ; 注意点:上面创建存储过程语句在navicat或者sqlyog中没问题,但是放到命令行中执行会报错,在命令行中模式下,需要通过关键字...delimiter 指定SQL语句结束符 存储过程中变量 在MySQL中,变量一般可分为分为三种类型: 系统变量、用户定义变量、局部变量; 一、系统变量 系统变量是MySQL服务器系统自身提供...注意点: mysql服务重新启动之后,所设置全局参数会失效,要想不失效,可以在 /etc/my.cnf 中配置; 全局变量(GLOBAL): 全局变量针对于所有的会话; 会话变量(SESSION):...循环语句在编程中经常被用到,常用于对批量数据进行循环处理,在mysql存储过程中,也提供了几种常用循环语句,包括:while循环,repeat循环,和loop循环; 1、while循环语句 while

22.2K21

mysql创建索引视图_mysql创建视图、索引

MySQL中索引存储类型有两种:BTREE(树)和 HASH(哈希),具体和表存储引擎有关。MyISAM和InnoDB存储引擎只支持BTREE索引。...3、实例: 在创建时候创建索引 CREATE TABLE 表名 [ 列名称 数据类型 ] [ UNIQUE | FULLTEXT ] [ INDEX | KEY...,用来指定索引; (1)、普通索引(index): 普通索引是MySQL基本索引类型,允许在定义索引列中插入重复值和空值 例: CREATE TABLE book ( bookid INT...查询时,只有在查询条件中使用了这些字段(创建组合索引时候指定哪些列)最左边字段时,索引才会被使用。...(50) NOT NULL, age INT NOT NULL, info VARCHAR(200), INDEX MultiIdx(id,name,age) ); (4)、全文索引:MySQL

7.5K50
领券