In my answer to your previous question, I mentioned how the size of an individual table is 2TB when you use innodb_file_per_table. There may be a way to surpass the table limit by doing just the the opposite, leaving innodb_file_per_table disabled.
With innodb_file_per_table disabled, there are three ways you can go about this:
TECHNIQUE #1 : Use multiple system tablespaces in ext3
You could chain InnoDB tablespaces 2TB at a time. Start off with this
When ibdata1 is about to hit 2TB, add another ibdata file
When ibdata2 is about to hit 2TB, add another ibdata file
and so on...
UPDATE 2013-06-01 20:45 EDT
I just discovered something with reference to setting the max filesize for a system tablespace. Here is the situation:
Client has the following InnoDB files
[root@l*****]# ls -l ibd*
-rw-rw---- 1 s-em7-mysql s-em7-mysql 362807296 Jun 2 00:15 ibdata1
-rw-rw---- 1 s-em7-mysql s-em7-mysql 2196875759616 Jun 2 00:15 ibdata2
and has this setting
MySQL was reporting table full errors.
I tried creating a new file
That value did not work
I tried using new sizes for the max value
After trying for 15 min with different combinations, none of these values worked. Looks like mysqld was never going to startup again. I decided to try the exact number of bytes for the filesize of ibdata2:
When I started mysql, LO AND BEHOLD, MySQL was up.
ibdata3 was created at 10M
ibdata3 was soon growing in 8M chunks
- Client was happy once again
Moral of the story : At times, you may need to use the exact filesize for a system tablespace in innodb_data_file_path
TECHNIQUE #2 : RAW DISK PARTITION
According to MySQL 5.0 Certification Study Guide, Page 428
Any raw partitions in the configuration must exist but must have the modifier
newraw listed after the size of the file specification.
newraw tells InnoDB to initialize the partition when the server starts up. New partitions are treated as read-only after initialization. After InnoDB initializes the tablespace, stop the server change
raw in the partition specfication, and restart the server. For example, to use a 10GB Unix partition named /dev/hdc6, begin with a configuration like this:
Start the server and let InnoDB initialize the tablespace. Then stop the server and change the configuration from
After changing the configuration, restart the server.
Just create a RAID10 Disk with whatever size you need. Just don't put any filesystem on it.
TECHNIQUE #3 : Use ext4 with TECHNIQUE #1
You could chain InnoDB tablespaces 16TB at a time. Start off with this
When ibdata1 is about to hit 16TB, add another ibdata file
When ibdata2 is about to hit 16TB, add another ibdata file
And so on...