系统表空间数据文件配置
系统表空间数据文件是通过innodb_data_file_path和innodb_data_home_dir配置选项来进行配置的。
innodb_data_file_path配置选项被用来配置InnoDB系统表空间数据文件。innodb_data_file_path应该是一个或多个数据文件的规范列表。如果要命名多个数据文件,使用分号(;)来进行分隔:
innodb_data_file_path=datafile_spec1[;datafile_spec2]…
例如,下面的设置创建一个最小大小的系统表空间:
[mysqld] innodb_data_file_path=ibdata1:12M:autoextend
上面的设置配置一个12MB大小命名为ibdata1且自动扩展的数据文件。这里没有指定文件路径,因此,InnoDB将在MySQL数据目录中创建该文件。
数据文件大小可以通过K,M,或G后缀来指示KB,MG或GB。
如果一个表空间包含一个名为ibdata1固定大小为50MB和一个名为ibdata2大小为50MB自动扩展的数据文件可以进行以下配置:
[mysqld] innodb_data_file_path=ibdata1:50;ibdata2:50:autoextend
数据文件规范的完整语法包括文件名,文件大小和多个选项属性:
file_name:file_size[:autoextend[:max:max_file_size]]
autoexten和max属性只能用于innodb_data_file_path行中的最后一个数据文件
如果对最后一个数据文件指定了autoextend,当表空间中没有可用空间时InnoDB会扩展数据文件大小。默认情况下是一次扩展64MB。为了修改增量,可以修改innodb_autoextend_increment系统变量。
如果存储表空间数据文件的磁盘空间填满,可以在其实磁盘上给表空间增加数据文件。
InnoDB不知道文件系统的最大文件大小,因此要注意文件系统的最大文件大小,比如2GB。为了给自动扩展的数据文件指定一个最大大小,在autoextend属性后面使用max属性。只在限制磁盘使用至关重要的情况下使用max属性,因为超过最大大小会导致致命的错误,可能包括崩溃。下面的设置允许ibdata1增长到限制所指定的500MB:
[mysqld] innodb_data_file_path=ibdata1:12M:autoextend:max:500M
默认情况下InnoDB在MySQL数据目录(datadir)中创建表空间文件。为了显式指定存储位置,使用innodb_data_home_dir选项。例如,为了在名为myibdata目录中创建两个名为ibdata1和ibdata2的数据文件,使用如下配置:
[mysqld] innodb_data_home_dir=/path/to/myibdata/ innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
注意:在给innodb_data_home_dir指定值时需要使用斜杆。
InnoDB不会创建目录,因此确保在启动MySQL服务器之前指定的myibdata目录已经存在。还要确保MySQL服务器对所指定的目录有正确的权限来创建文件。更通俗地说,服务器必须在需要创建数据文件的任何目录中具有访问权限。
InnoDB通过将innodb_data_home_dir的值与数据文件名进行文本连接来形成每个数据文件的目录路径。如果在my.cnf中没有指定innodb_data_home_dir选项,那么默认值是“dot”目录./,意思是MySQL数据目录。(MySQL服务器在开始执行时将其当前工作目录更改为数据目录。)
如果将innodb_data_home_dir指定为空字符串,则可以为innodb_data_file_path值中列出的数据文件指定绝对路径。下面的示例等价于上面的设置:
[mysqld] innodb_data_home_dir= innodb_data_file_path=/path/to/myibdata/ibdata1:50M;/path/to/myibdata/ibdata2:50M:autoextend
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)