2

我正在尝试使用以下命令将旧数据库迁移到 mysql 集群(4 个数据节点):

ALTER TABLE sample ENGINE=NDBCLUSTER

但我收到以下错误:

The table '#sql-7ff3_3' is full

此表中大约有 3 亿行。这是我的配置文件:

/mysql-cluster/config.ini
[NDBD DEFAULT]
NoOfReplicas=2
DataDir=/data/mysql-cluster/ndb/
BackupDataDir=/data/mysql-cluster/backup/
DataMemory=10G
IndexMemory=5G
TimeBetweenLocalCheckpoints=6
FragmentLogFileSize=256MB
NoOfFragmentLogFiles=50
MaxNoOfOrderedIndexes=8000
MaxNoOfConcurrentOperations=100000
MaxNoOfTables = 10000
RedoBuffer=128M
MaxNoOfAttributes=5000
MaxNoOfUniqueHashIndexes=1024


/etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql-cluster/mysqld/
event_scheduler=on
default-storage-engine=ndbcluster
ndbcluster
ndb-connectstring=192.168.x.x,192.168.x.x
innodb_file_per_table
innodb_buffer_pool_size = 512MB
key_buffer = 512M
key_buffer_size = 512M
sort_buffer_size = 512M
table_cache = 1024
read_buffer_size = 512M
4

1 回答 1

1

您达到了临时表的限制,无论是 num_rows、磁盘空间还是表空间。

尝试将 'MAX_ROWS=1000000000' 添加到您的更改表中。

检查“tmpdir”是否指向有足够空间的磁盘。

然后查看'tmp_table_size'的值。 http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_tmp_table_size 如果不能进一步增加,请在 http://dev.mysql.com/doc/中挖掘refman/5.5/en/table-size-limit.html

最后,MySQL Cluster 表空间和日志文件组不是作为文件实现的。您是否使用 CREATE/ALTER TABLESPACE 分配了足够的空间? http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-disk-data-objects.html

于 2012-11-23T09:38:32.120 回答