| Bug #49969 | Can not reimport a full dump after changing engines to "ndbcluster" | ||
|---|---|---|---|
| Submitted: | 29 Dec 2009 1:24 | Modified: | 8 Feb 2010 10:19 |
| Reporter: | Greg Chandler | Email Updates: | |
| Status: | No Feedback | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S2 (Serious) |
| Version: | mysql-5.1-telco-7.0 | OS: | Linux (RH/AS 5.3, x86_64) |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | 7.0.9-0, ERROR 1005 (HY000) at line 750: Can't create table (errno: 708) | ||
[29 Dec 2009 1:34]
Greg Chandler
I removed the insert statements from the import, and it died in the same place. -------------- CREATE TABLE `EmailTexts` ( `Full_Name` text, `EMail` text, `Work_Phone` text, `UNIX_ID` text, `Work_Status` text, `Employee_ID` text, `Expiration` text, `AU` text, `MAC` text, `Servers` text, `Primary_Group` text, `Other_Groups` text, `Sudo` text, `Managers_Name` text, `Managers_Email` text, `Notes` text, `Req_Commands` text, `Software_Request` text, `Modules` text, `Home_Dir` text, `Shell` text, `GID` text, `Requestor_Name` text, `Reason` text, `ECR_UNIX_ID` text, `ECR_Managers_Name` text, `Environment` text, `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=ndbcluster AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 -------------- ERROR 1005 (HY000) at line 736: Can't create table 'Requests.EmailTexts' (errno: 708)
[29 Dec 2009 8:39]
Sveta Smirnova
Thank you for the report. Please send us your cluster error logs.
[2 Jan 2010 7:14]
Hartmut Holzgraefe
2^33 is out of the valid range of MaxNoOfAttributes values, the maximum value is slightly less than 2^32 Looks as if you have not done a cluster restart (either complete or rolling) as this would have lead to the management node failing to start with [MgmtSrvr] ERROR -- at line 23: Illegal value 8589934592 for parameter MaxNoOfAttributes. Legal values are between 32 and 4294967039 [MgmtSrvr] ERROR -- at line 23: Could not parse name-value pair in config file. and so your cluster seems to still running with the old setting That things already fail on CREATE TABLE is expected behavior as MaxNoOfAttributes determines the max. number of columns, not rows ...
[2 Jan 2010 7:36]
Greg Chandler
When I saw this problem first, I set it to 100,000, that didn't work, then 1,000,000, then 2^31, then where I have it now.
I completely shut the cluster down each time I changed the setting, and restarted it one component at a time. {shutdown the mysql nodes as well}
I even did a full reboot of all the machines on one of those attempts.
[4 Jan 2010 13:59]
Hartmut Holzgraefe
Looks as if you are editing the wrong file then? You can check whether your configuration changes were picked up using e.g. ndb_config --type=ndbd --query=id,MaxNoOfAttributes
[4 Jan 2010 18:21]
Greg Chandler
I've set the MaxNoOfAttributes back to 100,000 and restarted the cluster.
I'm seeing this:
-bash-3.2$ ndb_config --type=ndbd --query=id,MaxNoOfAttributes
2,1000 3,1000
I killed the ndb_mgmd, and the ndbd on both nodes of the cluster. I then restarted the ndb_mgmd with: /usr/sbin/ndb_mgmd -f /mysql-cluster/config.ini
Then I restarted the ndbd with: /usr/sbin/ndbd --initial on each of the nodes.
Both said this {time is different}:
-bash-3.2$ /usr/sbin/ndbd --initial
2010-01-04 12:17:53 [ndbd] INFO -- Configuration fetched from '10.26.86.99:1186', generation: 1
-bash-3.2$ cat /mysql-cluster/config.ini
# Options affecting ndbd processes on all data nodes:
[NDBD DEFAULT]
NoOfReplicas=2
MaxNoOfAttributes=100000
IndexMemory=4096M
DataMemory=4096M
[MYSQLD DEFAULT]
[TCP DEFAULT]
[NDB_MGMD]
hostname=ebstsf-26 # Hostname or IP address of MGM node
[NDBD]
HostName=ebstsf-26
DataDir=/mysql-cluster
[NDBD]
HostName=ancho
DataDir=/mysql-cluster
[MYSQLD]
[MYSQLD]
[4 Jan 2010 18:25]
Greg Chandler
Cluster log, after restart, with 100,000 set
Attachment: ndb_1_cluster.log (application/octet-stream, text), 14.02 KiB.
[8 Jan 2010 10:19]
Hartmut Holzgraefe
As you are using a 7.0 version of cluster you need to add the --reload option when starting ndb_mgmd after a configuration change, else it will continue to use the cached settings ... So instead of starting the management node(s) with: /usr/sbin/ndb_mgmd -f /mysql-cluster/config.ini using /usr/sbin/ndb_mgmd -f /mysql-cluster/config.ini --reload should fix the problem ...
[9 Feb 2010 0:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".

Description: I did a full dump of my DB(s) and exchanged MyISAM with ndbcluster as the engine types. The drop statements, delete the DB(s)/Table(s) and I can see replication across other nodes on import. The import always dies at this line: ERROR 1005 (HY000) at line 750: Can't create table 'Requests.EmailTexts' (errno: 708) Generally I would think that setting "MaxNoOfAttributes" to 2^33 would have fixed it if it was a problem with that parameter. The full dump of the DB is 2.5 Meg. I'm assuming I should not be running into this problem. [root@ancho mysql-cluster]# cat /mysql-cluster/config.ini # Options affecting ndbd processes on all data nodes: [NDBD DEFAULT] NoOfReplicas=2 MaxNoOfAttributes=8589934592 IndexMemory=4096M DataMemory=4096M [MYSQLD DEFAULT] [TCP DEFAULT] [NDB_MGMD] hostname=ebstsf-26 # Hostname or IP address of MGM node [NDBD] HostName=ebstsf-26 DataDir=/mysql-cluster [NDBD] HostName=ancho DataDir=/mysql-cluster [MYSQLD] [MYSQLD] [root@ancho mysql-cluster]# cat /etc/my.cnf [client] port = 3306 socket = /ebssa/forms/mysql/mysql.sock [mysqld] port = 3306 socket = /ebssa/forms/mysql/mysql.sock datadir = /mysql ndbcluster # run NDB storage engine ndb-connectstring=10.26.86.99 # location of management server skip-locking key_buffer_size = 384M max_allowed_packet = 1M table_open_cache = 512 sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size = 32M thread_concurrency = 8 [mysql_cluster] ndb-connectstring=10.26.86.99 # location of management server [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout [root@ancho mysql-cluster]# ls -alh /tmp/full -rw-r--r-- 1 root root 2.5M Dec 28 14:08 /tmp/full How to repeat: Two node cluster: Add RPMs {from mysql.org/cluster server} Setup Managment config from config.ini above. create /mysql-cluster on both nodes Setup blank DB(s) in /mysql on both nodes attempt import on one node. {I have the full dump if needed, will have to screen for data} Suggested fix: Would like to know the fix myself ;)