故障案例--通过create server创建federate引擎导致主从失败
来源:互联网 发布:java动态代理模式 编辑:程序博客网 时间:2024/05/21 14:51
故障现象
主从同步失败,报错如下
Error 'Unknown storage engine 'FEDERATED'' on query. Default database: 'test'. Query: 'create table test_federated(`id` int(20) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL DEFAULT '', `other` int(20) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `name` (`name`), KEY `other_key` (`other`)) ENGINE=FEDERATED CONNECTION='test_server/test_table''
故障原因
主库采用先创建server的方式创建federate引擎的表,结果create server时mysql默认不会记录binlog,也就是从库的mysql.servers记录传不到slave,那么当从库使用这个server创建federate引擎时,由于找不到对应的server记录而报错。
Error 'server name: 'test_server' doesn't exist!' on query. Default database: 'test'. Query: 'create table test_federated(`id` int(20) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL DEFAULT '', `other` int(20) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `name` (`name`), KEY `other_key` (`other`)) ENGINE=FEDERATED CONNECTION='test_server/test_table''
复现方法
1 主库上创建server
create server test_server FOREIGN DATA WRAPPER mysql OPTIONS (USER 'ucloudbackup', HOST '10.9.160.116', PORT 3306, DATABASE 'federated',password 'idL060E88F');
2 这时查看主库的mysql.servers表会有记录,而从库的mysql.servers 表无记录
mysql> select * from mysql.servers;
+-------------+--------------+-----------+--------------+------------+------+--------+---------+-------+
| Server_name | Host | Db | Username | Password | Port | Socket | Wrapper | Owner |
+-------------+--------------+-----------+--------------+------------+------+--------+---------+-------+
| test_server | 10.9.160.116 | federated | ucloudbackup | idL060E88F | 3306 | | mysql | |
+-------------+--------------+-----------+--------------+------------+------+--------+---------+-------+
1 row in set (0.00 sec)
3 主库上创建federated引擎的表,创建成功并查询有效
create table test_federated(`id` int(20) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL DEFAULT '', `other` int(20) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `name` (`name`), KEY `other_key` (`other`)) ENGINE=FEDERATED CONNECTION='test_server/test_table';
mysql> select * from test_federated;
+----+-------+-------+
| id | name | other |
+----+-------+-------+
| 1 | jiang | 0 |
+----+-------+-------+
1 row in set (2.59 sec)
4 在从库上show slave status\G发现上述报错
解决方法
解决方法有两个
1 出现问题在从库上先手工创建出该server
2 摒弃这种创建federate的方式,ddl时指定完整的字符串,比如
mysql> create table test_federated1(`id` int(20) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL DEFAULT '', `other` int(20) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `name` (`name`), KEY `other_key` (`other`)) ENGINE=FEDERATED CONNECTION='mysql://ucloudbackup:idL060E88F@10.9.160.116:3306/federated/test_table';
Query OK, 0 rows affected (0.00 sec)
两种创建方法官网链接如下
https://dev.mysql.com/doc/refman/5.7/en/federated-create-connection.html
https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html
- 故障案例--通过create server创建federate引擎导致主从失败
- 主从(master/slave)默认引擎不一致导致复制失败
- SQL Server 2005故障排除:通过命令行启动数据库引擎
- 故障案例----tokudb启动失败
- 断电故障导致ASM DiskGroup 故障及恢复案例
- 断电故障导致 ASM DiskGroup 故障及恢复案例
- 故障案例 mongodb configserver启动失败
- 故障案例--mysql5.6启动失败
- SQL Server 错误:15023(创建对于用户失败)——孤立用户故障排除
- SQL SERVER开发失败案例
- activiti 5.10 创建引擎失败
- 故障案例:主从同步报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server
- 故障案例:主从同步报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server
- 生产环境上线程序导致服务故障案例解析
- 故障案例:一个子查询导致服务崩溃
- 故障案例--mongo备份文件损坏,导致mongorestore中断
- 故障案例--mongo 3.0鉴权导致cpu居高不下
- 故障排查:是什么 导致了服务器端口telnet失败?
- 由shp文件生成geojson
- Spark RDD/Core 编程 API入门系列 之rdd案例(map、filter、flatMap、groupByKey、reduceByKey、join、cogroupy等)(四)
- android控件
- 自定义ImageView实现类似微信朋友圈发图片点击出来阴影效果;同时使用Picasso加载网络图片
- MySQL数据库
- 故障案例--通过create server创建federate引擎导致主从失败
- node.js 任务4 用express 自定义路由,接收增删改查请求
- python使用grid-search调参
- spark与Hadoop的比较
- 如何学习MySQL
- EditText 的简单使用
- TabLayout体验
- java中将字符串转换为URL能解析的编码
- 中文字符串截取 mb_substr