GreatSQL数据库DROP表后无法重建

MYSQL分区表测试 MYSQL分区表测试过程详细说明。MYSQL分区表测试过程详细说明。 立即下载

一、数据库信息:

数据库版本:5.7.21-log

某银行测试数据库,APP业务库内有一个含有大量(几百个)分区表的大表test_app。DROP该分区表的大表后导致无法重建该分区表。

二、问题描述:

  客户使用“drop table test_app;”时,显示表删除成功。当重新执行该表的建表语句时,报错“Table 'app.test_app /* Partition p0 */' already exists”

三、问题分析:

3.1> 原因是GreatSQL 5.7数据库DDL没有原子性,drop表的删除动作没有执行完成;

3.2> 进入数据库“show tables”查看test_app表已不存在;

3.3> 进入数据库所在的目录下,查看test_app表的相关文件。test_app.frm文件已不存在,但是有大量的"test_app#P***.ibd"分区表文件存在。关闭数据库,移除这些分区表文件到其他目录,启动数据库;数据库无法启动,报“无法找到这些分区表文件”的错误;

3.4> 重新创建test_app表时,报“table already exists”错。

3.5> 感觉进入了死胡同,最先想到的直截了当方法是备份APP业务库内除这张表的其他表,删除该数据库后,进行APP业务数据库的恢复,该方法没有测试,觉得太麻烦。

四、问题处理(方法一,测试步骤):

4.1> 新建一个临时库test,依据app库目录里的数据文件名称,修改建表语句后,执行test_app表的建表SQL语句,生成test_app.frm文件;

4.2> 关闭数据库,修改数据库配置文件my.cnf文件的参数为“innodb_file_per_table=OFF”;

4.3> 把临时库test目录下的test_app.frm文件拷贝到业务数据库app目录下,启动数据库;

4.4> 进入业务数据库APP,可以看到test_app表;

4.5> 执行“drop table test_app;”语句,成功删除了表。关闭数据库;

4.6> 进入业务数据库app对应的目录下,test_app.frm文件已不存在,但是有个test_app#P***.ibd分区表文件存在。手工删除该ibd文件。

4.7>修改数据库配置文件my.cnf文件的参数为“innodb_file_per_table=ON”;启动数据库。

4.8> 重新执行test_app表的建表SQL语句。即可成功创建表。

五、问题处理(方法二,客户执行步骤):

5.1> 设置innodb_file_per_table=OFF:set global innodb_file_per_table='OFF';

5.2> 执行test_app表的建表语句,建表成功。

5.3> 删除test_app表drop table test_app;

5.4> 重启数据库。

5.5> 再执行test_app表的建表语句,建表成功。


Enjoy GreatSQL :)

关于 GreatSQL

GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

image

社区有奖建议反馈: https://greatsql.cn/thread-54-1-1.html

社区博客有奖征稿详情: https://greatsql.cn/thread-100-1-1.html

(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)

技术交流群:

微信&QQ群:

QQ群:533341697

微信群:添加GreatSQL社区助手(微信号:wanlidbc )好友,待社区助手拉您进群。

YOLOv11涨点改进 | Conv篇/小目标改进 | YOLOv11引入SPDConv卷积特征无损下采样模块,增加YOLOv11小目标P2检测层(助力小目标任务高效涨点) 本文提出了一种创新的SPDConv模块来优化YOLOv11模型,通过空间到深度(SPD)层和非步幅卷积层实现特征无损下采样。该方法有效解决了传统CNN中因跨步卷积和池化层导致的细粒度信息丢失问题,特别提升了小目标检测性能。实验表明,SPDConv在目标检测和图像分类任务中显著优于现有SOTA模型。文章详细介绍了模块原理、核心代码实现,并提供了YOLOv11集成SPDConv的具体方法,包括配置文件修改和P2层增强等优化技巧。该技术为计算机视觉任务提供了一种高效的特征保留方案。 阅读详情

相关推荐

HID报告描述符实战解析:从Usage到Item的完整设计流程

本文深入解析了HID报告描述符的设计流程,从核心概念Usage(用途定义)入手,详细阐述了如何通过Item(条目)的三种角色——全局、局部与主干,构建出能被系统正确识别的设备“说明书”。文章以标准USB鼠标和键盘为例进行实战拆解,并介绍了使用Report ID与自定义设备等进阶设计方法,帮助开发者掌握这一实现USB设备即插即用的关键技术。

weixin_29230865的博客 282

mysql5.7 分区表_mysql分区表学习

一:怎样对已有数据的表进行表分区可以直接alter table进行修改。如:USE dba;ALTER TABLE t3 PARTITION BY RANGE(id)(PARTITION p1 VALUES LESS THAN(5),PARTITION p2 VALUES LESS THAN (10),PARTITIONp3 VALUES LESS THAN maxvalue);二:分区表的限制2...

weixin_28804379的博客 1327

在Unity中为Sentis部署的YOLOv8模型集成NMS层并实现移动端性能优化

本文详细讲解了在Unity中利用Sentis部署YOLOv8模型时,如何通过代码动态集成NMS层以解决移动端性能瓶颈。文章核心在于避免导出时绑定NMS,转而使用Sentis原生API在运行时高效构建NMS处理流程,并分享了关键的GPU数据操作与移动端性能优化技巧,确保模型在移动设备上流畅运行。

p1q2r的博客 1094

Mysql5.7表分区技术

MySQL表分区技术是一种将表数据划分为更小、更可管理的逻辑部分的方法。它可以提高查询性能、简化数据维护和管理,并允许更灵活地处理大量数据。

~ 5368

期末求生指南:手把手教你用浏览器开发者工具绕过百一测评切屏检测

本文详细介绍了如何利用浏览器开发者工具绕过百一测评的切屏检测功能。通过分析JavaScript事件监听机制,定位关键检测代码,并提供实时调试和本地覆盖两种修改方法,帮助学生在遵守规则的前提下更灵活地应对在线考试。文章还包含风险控制和替代方案等实用建议。

weixin_28698059的博客 550

经典损失函数——均方误差(MSE)和交叉熵误差(CEE)的python实现

损失函数(loss function)用来表示当前的神经网络对训练数据不拟合的程度。这个损失函数有很多,但是一般使用均方误差和交叉熵误差等。 1.均方误差(mean squared error) 先来看一下表达式: 用于将的求导结果变成,是神经网络的输出,是训练数据的标签值,k表示数据的维度。 用python实现: def MS...

Answer3664的博客 1万+

MYSQL5.7分区表

mysql基础信息 版本 :5.7.32 配置:2核4G 表结构: 分区表表结构 不分区表结构 数据量:1亿 数据自取: 参考阿飞的博客(忘了网址,找到了再补上),阿飞的博客没有给出分区前后的查询性能对比,自测下。 以下是测试主键索引 测试分区表sql select * from employees_partition where job_no = ‘NO.8888891’; 连续执行五次用时: 0.288s 1.552s 1.367s 0.444s 0.461s 测试分区关闭缓存sql sele

weixin_40757126的博客 1037

ArcGIS实验教程——实验十七:缓冲区分析(Buffer Analysis)

【实验描述】缓冲区(Buffer)是为了识别某一地理实体对周围地物的影响而在其周围建立的一定宽度多边形区域,缓冲区分析(Buffer Analysis)是用来确定不同地理要素的空间临近性或接近程度的一种分析方法。作为GIS的空间分析方法之一,缓冲区分析的应用范围特别广泛,常用于分析矢量实体对周围的影响。例如,工厂排放的废水废气所影响的空间范围等等。 一、缓冲区的基本概念 1、缓冲区 是地理空间目标的一种影响范围或服务范围。 2、缓冲区分析 指根据分析对象的点、线、面实体,自动建立它们周围一定距离的带

智慧空间实验室 1万+

MySQL 5.7 表分区技术(一):分区简介

文章目录一、什么是分区二、为什么要对表进行分区三、基本分区类型四、变体分区类型五、查看数据库服务器是否支持分区六、分区的一些其他事项 一、什么是分区 分区就是通过设置一定的逻辑,跨文件系统分配单个表的多个部分,但是就访问数据库而言,逻辑上还是只有一个表。简单的说,分区就是MySQL服务器将一个表的数据按一定规则分成N部分分别存放,但对程序访问数据库表读写数据而言,还是一个表。打个比方,你有一个书架,上面有5层,你可以将你的100本书分成几类,每类放在不同的层上。假如某天你想看《颈椎病康复指南》这本书了,就要

蝈蝈的博客 4001

流体动力学仿真软件:XFlow_(16).案例研究:热传输与相变

包括密度、比热容、热传导系数等。

kkchenjj的博客 722

【PCIe 总线及设备入门学习专栏 6.1 -- PCIe MCTP】

MCTP 是由 DMTF(Distributed Management Task Force)定义的协议,用于提供设备和主机间基于不同传输层(如 PCIe、I²C、USB 等)的管理消息通信能力。在 PCIe 环境下,MCTP 消息作为的一种特殊形式传输,并被赋予唯一的 VDM Code 值0000b,以区别于其他 VDM。MCTP 在 PCIe 环境中作为一种基于 Type 1 VDM 的管理通信协议,提供了设备与主机之间的灵活数据传输能力。

CodingCos的博客 2128

Mysql5.7 分区

一、什么是数据库分区? 数据库分区是一种物理数据库设计技术,主要目的是在特定的sql操作中减少数据的读写的总量以及减少响应时间。 二、分区主要是两种形式//这里一定要注意行和列的概念(row是行,column是列) ① 水平分区 ,表的不同行可以分配给不同的物理分区 水平分区(Horizontal Partitioning) 这种形式分区是对表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1个或多个分区)。所有在表中定义的列在每..

u010648194的博客 2525

把 ST03 的历史数据留得更久:ABAP Workload 统计保留期设置、原理与落地避坑指南

SAP ST03性能数据保留期配置指南 ST03/ST03N是SAP系统性能分析的核心工具,但默认数据保留期通常较短(3个月左右),难以满足跨季度对比、年度规划等需求。本文详细解析了ST03数据保留期的配置方法及注意事项: 数据存储机制:性能数据存储在监控库中,通过定期重组作业清理过期数据 配置路径:7.0+系统在"Workload Collector Database→Reorganization→Control"中按Profile分别设置 关键限制:保留期最大值建议不超过99,否则可

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 218

GreatSQL非阻塞式DDL与异步删除大表:运维不再胆战心惊

**GreatSQL非阻塞式DDL**和**异步删除大表**是GreatSQL数据库(开源免费的金融级数据库,可作为MySQL的理想替换)为运维场景打造的两大利器。过去,执行一条`ALTER TABLE`或`DROP TABLE`往往让人手心冒汗——业务卡顿、主从延迟、性能断崖式下跌,稍有差池就是一场事故。如今,GreatSQL让DDL不再"堵车"、大表删除不再"惊心",彻底告别胆战心惊的运维日常

gitblog_01134的博客 136

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

万答#7,如何批量删数据和调整系统表空间

欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 前情提要: 业务需要删除大量数据,如果直接 delete 会造成如下问题: 1.会产生大事务,造成主从延迟,影响数据库高可用切换。 2.系统表空间会不断膨胀。 3.锁定的记录多,更容易可能导致锁等待。 问1:如何优雅的删除大量数据 答: 1.如果表不需要就直接 drop 2.如果只保留表结构用 truncate 3.如果只保留部分数据可以使用 pt-archive 进行分批删除 特别注.

GreatSQL2021的博客 479

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【MySQL】不建议使用分区表

分区表简介 分区是指根据一定的规则,数据库把一个表分解成多个更小的、更容易管理的部分。就访问数据库的应用而言,逻辑上只有一个表或一个索引,但是实际上这个表可能由数10个物理分区对象组成,每个分区都是一个独立的对象,可以独自处理,可以作为表的一部分进行处理。分区对应用来说是完全透明的,不影响应用的业务逻辑。 从上面的说明我们可以看到,分区表是一个独立的逻辑表,但是底层由多个物理子表组成。实现分区的代码实际上是对一组底层表的的封装。对分区表的请求,都会转化成对存储引擎的接口调用。所以分区对于SQL层来说是一个完

morris 7651

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MySQL的KEY分区存在BUG,请慎用

1. 问题现象 上个星期排查项目问题时,发现一个很奇怪的现象: 项目使用mysql 5.7,有几个频繁操作的表,使用mysql 的key 分区,分区数是10、100,建表语句类似如下: CREATE TABLE `tbl_key_partition` ( `id` varchar(64) NOT NULL COMMENT 'id', `last_modify_time` datetime DEFAULT NULL COMMENT '最后修改时间', PRIMARY KEY (`id`)

penriver的博客 1400

mysql分区表结构的报错解决

Syntax error: RANGE PARTITIONING requires definition of VALUES LESS THAN for each partition报错

weixin_44506660的博客 1334

mysql表分区bug_分析与解决:MySQL分区表复制bug导致的主从延迟

原标题:分析与解决:MySQL分区表复制bug导致的主从延迟作者介绍张松坡,腾讯云数据库架构师,主要负责腾讯云数据库MySQL、Redis等数据库架构设计、数据库运维、运营开发等工作。曾就职于腾讯新闻、腾讯视频。写在前面,感谢腾讯云数据库架构师团队祝海强、杜川、刘志祥在排障思路、源码分析上面提供的帮助,让我学习到了很多,不敢居功,特此鸣谢!本文将以数据库实际使用中的某典型案例来分析造成主从延迟的原...

weixin_42554394的博客 316

MySQL5.7无法重建(含大量)分区表

test_app.frm文件已不存在,但是有大量的test_app#P***.ibd分区表文件存在。4.6> 进入业务数据库app对应的目录下,test_app.frm文件已不存在,但是有个test_app#P***.ibd分区表文件存在。4.1> 新建一个临时库test,依据app库目录里的数据文件名称,修改建表语句后,执行test_app表的建表SQL语句,生成test_app.frm文件;4.3> 把临时库test目录下的test_app.frm文件拷贝到业务数据库app目录下,启动数据库;

lengyuqiu的博客 565

mysql分区表学习

学习地址: MySQL :: MySQL 5.7 Reference Manual :: 22 Partitioning 分区简介 查看当前数据库是否支持分区 SELECT PLUGIN_NAME AS NAME, PLUGIN_VERSION AS Version, PLUGIN_STATUS AS STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_TYPE = 'STORAGE ENGINE'; 分区优势: 分区.

大魔王 406

MySQL 5.7 表分区技术(二):RANGE分区

文章目录一、说明二、RANGE分区定义三、示例3.1 根据dept_id列进行分区3.2 通过MAXVALUE关键字"catch all"所有大于某个值的数据3.3 根据position_code对表分区3.4 子句使用表达式四、分区表达式支持的函数五、RANGE分区适用的情况 一、说明 文档示例采用的MySQL版本为5.7.21-log,不同版本可能会有些区别。 示例表基本结构如下: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id`

蝈蝈的博客 8131

MySQL5.7无法重建表

参数:innodb_file_per_table=ON。

lengyuqiu的博客 1672

IDEA如何clone自己想要的分支代码

一般你git到的代码会是默认分支,而不是自己选择的分支 解决方法:先正常git,然后在右下角点击 再在remote branch里选择自己想要的分支,然后check out就好了。 或者直接在vcs->git->branches->remote branch里选择自己想要的分支,然后check out就好了,原有的分支可以delete掉。 ...

what to say 4421

MySQL之分库分表(一)

一、首先我们在linux下安装好mysql5.7版本,方法有几种,这里使用安装离线rpm包方式,感觉这种方式最简单快捷。 (1)wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm (2)rpm -ivh mysql57-community-release-el7-8.noarch.rpm (3)yum...

weixin_42255265的博客 499

【详解】MySQL分区表,分区的过程,四种分区类型

分区的功能并不是在存储引擎层进行完成的,因此不是只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM,NDB都支持。当并不是所有的存储引擎都支持,如CSV等不支持。在使用分区功能之前,应该对存储引擎对分区的支持有所了解。 MySQL数据库在5.1版本时添加了分区功能。 分区的过程是将一个表或者索引分解为多个更小、更可管理的部分。就访问数据库应用而言,从逻辑上讲,只有一个表或者一个索引,但是在物理上,这个表或索引可能由数十个物理分区组成。每个分区都是...

CodingLJ 2653
上一篇: GreatSQL的sp中添加新的sp_instr引入的bug解析
下一篇: Percona Toolkit 神器全攻略
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值