【问题描述】
MySQL开启auto commit导入一个4G大小的CSV文件,导入一部分后,导入失败。报错ERROR 1030 (HY000): Got error 40203 from storage engine
【解决办法】
方法一:通过sdbimprt工具导入。导入过程中注意检查数据类型的正确性,可以少量导入之后,确保数据类型没有问题后,再大量导入。
方法二:修改同步日志文件大小。假如logfilesz 设为256,logfilenum设为30,具体可以根据需求设置。
1. 保证全部节点都启动的情况下,全局修改logfilesz和logfilenum参数。可以在一台机器的sdb shell上运行
> db.upateConf({logfilesz:256,logfilenum:30}) 。
2.停掉整个集群所有节点。
$ /opt/sequoiadb/bin/sdbstop -t -all
3. 进入节点数据目录,删除replicalog 目录。节点目录可以通过 sdblist -l 查看。所有数据节点和协调节点都需要删除。以11820节点为例。
$ cd /opt/sequoiadb/database/data/11820
$ rm -rf replicalog/
4.确保所有节点都修改好,重新启动所有节点。
$ /opt/sequoiadb/bin/sdbstart -t all
5.使用sdb shell检查整个集群的logfilesz和logfilenum参数的设置情况。以11820节点为例。
$ /opt/sequoiadb/bin/sdblist -p 11820 --detail --expand | grep logfile
logfilesz: 256
logfilenum: 30