没有合适的资源?快使用搜索试试~ 我知道了~
首页MySQL复制出错 Last_SQL_Errno:1146的解决方法
MySQL复制出错 Last_SQL_Errno:1146的解决方法
6 下载量 85 浏览量
更新于2023-03-03
评论 1
收藏 59KB PDF 举报
主要介绍了MySQL复制出错 Last_SQL_Errno:1146的解决方法,需要的朋友可以参考下
资源详情
资源评论
资源推荐
MySQL复制出错复制出错 Last_SQL_Errno:1146的解决方法的解决方法
主要介绍了MySQL复制出错 Last_SQL_Errno:1146的解决方法,需要的朋友可以参考下
背景:我们在做数据迁移或者拆分的时候,使用Tablespace transcation 这种解决方案时,很有可能就会遇到 从库复制出错,
报: Last_SQL_Errno: 1146
那么具体错误内容可能会有如下:那么具体错误内容可能会有如下:
Last_SQL_Error: Error 'Table 'spider.tb_city_population_rank' doesn't exist' on query. Default database: 'spider'. Query: 'alter
table tb_city_population_rank discard tablespace'
Last_SQL_Error: Error 'Table 'spider.tb_city_population_rank' doesn't exist' on query. Default database: 'spider'. Query: 'alter
table tb_city_population_rank import tablespace'
那么我们遇到这样的问题的时候该如何恰当的处理呢?考虑如下几点:那么我们遇到这样的问题的时候该如何恰当的处理呢?考虑如下几点:
1. 我们整个库的容量有多大?
2. 业务容忍的最大延迟时间多久?
3. 我们恢复需要多久?恢复的难易程度如何?
通过考虑到以上几点,通过考虑到以上几点, 我们就可以根据实际情况做出抉择,采用什么样的办法尽快的恢复从库;对于这样的问题,简单粗暴我们就可以根据实际情况做出抉择,采用什么样的办法尽快的恢复从库;对于这样的问题,简单粗暴
的方案就是重建从库,当然还有别的办法,的方案就是重建从库,当然还有别的办法, 且听我慢慢道来:且听我慢慢道来:
首先我们先看看我们是如何通过Transport tablespace 迁移数据的,大概步骤如下:
1.库A执行: show create table xxx1; 拿到简表语句;
2.库B执行: create table xxx1; 在从库上建立基本的表结构;
3.库B执行: alter table xxx1 discard tablespace; 让mysql自己删掉ibd文件;
4.库A执行: flush tables xxxx1,xxxx2 for export;把内存的脏数据刷到磁盘,使得ibd文件数据一致;
5.库A执行: scp xxxx1.ibd xxx2.ibd xxxx1.cfg xxx2.cfg slave_host:/data/ 把ibd文件拷贝到从库;
6.库B执行: alter table xxx1 import tablespace 导入数据文件。
好了我们知道了整个迁移的具体步骤,那么我们就可以轻松的应对在迁移过程中复制出错的问题了。
那么我们首先来看一下:那么我们首先来看一下:
Last_SQL_Errno: 1146
Last_SQL_Error: Error 'Table 'spider.tb_city_population_rank' doesn't exist' on query. Default database: 'spider'. Query: 'alter
table tb_city_population_rank discard tablespace'
其大概的意思就是我们在从库上没有找到 这个表的完整定义信息,观察一下磁盘上的文件我们就明白了:
[root@GZ_NF_DB_RP_002 spider]# ls -lhrt |grep tb_city_population_rank
-rw-r----- 1 mysql mysql 8.3G Mar 31 20:03 tb_city_population_rank.ibd
果然没有 这个表的 frm 文件, 那么怎么办呢?由于是 slave 的sql_thread 线程报错, 那么我们可采取取巧的办法:
用超级用户登录从库,先备份一下 这个ibd 文件:[root@GZ_NF_DB_RP_002 spider]# mv tb_city_population_rank.ibd
tb_city_population_rank.ibd.bak
然后拿到这个文件的表结构, 在从库上执行建表语句,这样一样来, 我们从库就有了 ibd frm 文件, 那么 此时我们开启slave
sql_thread,这时就会执行时主库传过来的 语句:
alter table tb_city_population_rank discard tablespace ; 那么当我们再一次的观看此盘数据文件的时候,ibd 文件又不见了,
此时slave 也就已经出错了,其错误信息如下:
Last_SQL_Errno: 1146
Last_SQL_Error: Error 'Table 'spider.tb_city_population_rank' doesn't exist' on query. Default database: 'spider'. Query: 'alter
table tb_city_population_rank import tablespace'
那么我们此时需要做的就是: 把刚才mv 的文件 再 mv 回去, 也就是说:[root@GZ_NF_DB_RP_002 spider]# mv
tb_city_population_rank.ibd.bak tb_city_population_rank.ibd ; 完成这个命令后我们再执行 start slave sql_thread ; 此时这个
表就正常了, 我们可以执行select * from tb_city_population_rank limit 100; 来验证一下是否可读。
那么此时,我们算完整的解决了因一个表导致的复制出错的问题, 那么如果迁移了多张表(经常是) , 那么我们就可以按照
这个解决方案,一步一步的来解决复制出错。其大概的思路就是, 缺什么我们补什么,多了什么我们去掉什么。
下面是其它网友的补充,根据返回的错误信息进行调整即可。下面是其它网友的补充,根据返回的错误信息进行调整即可。
mysql 主主复制(双主复制)报错Last_SQL_Errno: 1146
weixin_38501826
- 粉丝: 9
- 资源: 893
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0