李鑫
#1
目的:
将zabbix的数据库从自建Mysql 导入到 Oceanbase
操作过程:
1. 将zabbix数据库通过mysqldump导出为 sql文件 ,并反导入,测试导出文件无问题。
2. 搭建Oceanbase obproxy & 3个单节点集群 ,单台配置为 8c32g ,创建zabbix用户,zabbix资源池,zabbix租户,并测试登陆无问题
3. 通过proxy登陆 创建zabbix库,并导入sql文件,此步骤有问题
报错①:
ERROR 1452 (23000) at line 4625 in file: ‘/root/zabbix/zabbix.sql’: Cannot add or update a child row: a foreign key constraint fails
查看sql文件: 原语句为: INSERT INTO `triggers` VALUES (13015,’{12641}>75’,‘More than 75% used in the configuration cache’,’’,0,0,3,0,'Consider 。。。。。。很长
报错②:ERROR 1146 (42S02) at line 4693 in file: ‘/root/zabbix/zabbix.sql’: Table ‘**各种表名**’ doesn’t exist
查看sql文件: 原语句为:INSERT INTO `users_groups` VALUES (4,7,1),(2,8,2);
可提供报错截图,和原导出sql文件。望帮忙找下问题原因,感谢感谢 !!!!!!!
开始操作图:
问题1图:
问题2图:
李鑫
#2
补充一下:问题1中错误提示是 执行的语句如下,是条创建表的的语句,执行后提示:ERROR 1146 (42S02): Table doesn't exist
CREATE TABLE `widget` (
`widgetid` bigint(20) unsigned NOT NULL,
`dashboardid` bigint(20) unsigned NOT NULL,
`type` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
`name` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
`x` int(11) NOT NULL DEFAULT '0',
`y` int(11) NOT NULL DEFAULT '0',
`width` int(11) NOT NULL DEFAULT '1',
`height` int(11) NOT NULL DEFAULT '2',
`view_mode` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`widgetid`),
KEY `widget_1` (`dashboardid`),
CONSTRAINT `c_widget_1` FOREIGN KEY (`dashboardid`) REFERENCES `dashboard` (`dashboardid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
筱霁
#3
dashboard这表存在吗?
目前社区版的OceanBase有一些MySQL能通过的SQL是不能直接执行的,可能需要自己手动拆开。
像`InnoDB`这种MySQL的ENGINE语法,OceanBase也不支持的,因为根本没有InnoDB这种东西。
李鑫
#5
问题一 找到了,原因是报错的sql执行时候关联的有外键表,但是外键的表创建的sql语句,却是在这条语句的下面,所以导致报错,该表不存在。但是这个sql文件在mysql导入没有问题,在Oceanbase却报错了。难道mysql执行sql文件的语句不是自上到下执行的么,求大佬解惑~,目前我通过多次执行这个sql文件,逐次创建解决了这个问题
麻烦问下,我创建表的时候总是提示分区太多了的错误,1499 - Too many partitions (including subpartitions) were defined ,,这是为什么
你好,最好你成功了吗,zabbix server能正常连接你导入Oceanbase的zabbix库吗