最近和人交接一个运行着的内部系统。
由于之前是oracle,现在想转到mysql来。
使用mysql migration toolkit做迁移时。有一个表大概九千万行的数据,迁移到七千多万行时停了,我看了下mysql的log,应该是如下部分:
Version: '5.1.73'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution
140917  1:08:57  InnoDB: Error: Write to file ./ibdata1 failed at offset 4 1319108608.
InnoDB: 1048576 bytes should have been written, only 520192 were written.
InnoDB: Operating system error number 22.
InnoDB: Check that your OS and file system support files of this size.
InnoDB: Check also that the disk is not full or a disk quota exceeded.
InnoDB: Error number 22 means 'Invalid argument'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/operating-system-error-codes.html
140917  1:08:57 [ERROR] /usr/libexec/mysqld: The table 't_data_original_video' is full
看了下,那个叫ibdata1的文件大概是18G大小。又好像不是太符合网址上的错误原因。
但数据库已经被rollback。
由于对数据库这块的操作相当不熟,特来请教亲们:
1.如果继续做数据迁移,我要修改哪些配置。
另外,ibdata1中的数据可否继续使用?
服务器环境就是阿里云的乞丐版。

解决方案 »

  1.   

    嗯,mysql没有装到数据盘,导致系统盘空间耗尽无法写入。
      

  2.   

    DB: Check that your OS and file system support files of this size.
    InnoDB: Check also that the disk is not full or a disk quota exceeded.
    检查一下磁盘空间,或者磁盘配额的设置。
      

  3.   

    可以问一下,使用mysql migration toolkit,oracle数据库反转时Fetch 17 sequence(s) of the  schema sjk----The schema could not be reverse engineered (error: 10008).
    ReverseEngineeringOracle.reverseEngineer :这个怎么解决的啊?
      

  4.   

    应该是磁盘满了,ibdata1 无法写入了,文件系统对文件尺寸的限制,没有18G左右的坎。对于使用很有限空间的vps来说,建议最好开启innodb_file_per_table ,不要把数据都写入ibdata1中,那个文件无法在线收缩(目前国内有个修改版可以做到在线收缩,不过忘记是什么修改版了)。