亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風(fēng)向標——亞洲寵物展覽會深度解析
1207
2022-05-28
系統(tǒng)表空間數(shù)據(jù)文件配置
系統(tǒng)表空間數(shù)據(jù)文件是通過innodb_data_file_path和innodb_data_home_dir配置選項來進行配置的。
innodb_data_file_path配置選項被用來配置InnoDB系統(tǒng)表空間數(shù)據(jù)文件。innodb_data_file_path應(yīng)該是一個或多個數(shù)據(jù)文件的規(guī)范列表。如果要命名多個數(shù)據(jù)文件,使用分號(;)來進行分隔:
innodb_data_file_path=datafile_spec1[;datafile_spec2]…
例如,下面的設(shè)置創(chuàng)建一個最小大小的系統(tǒng)表空間:
[mysqld]
innodb_data_file_path=ibdata1:12M:autoextend
上面的設(shè)置配置一個12MB大小命名為ibdata1且自動擴展的數(shù)據(jù)文件。這里沒有指定文件路徑,因此,InnoDB將在MySQL數(shù)據(jù)目錄中創(chuàng)建該文件。
數(shù)據(jù)文件大小可以通過K,M,或G后綴來指示KB,MG或GB。
如果一個表空間包含一個名為ibdata1固定大小為50MB和一個名為ibdata2大小為50MB自動擴展的數(shù)據(jù)文件可以進行以下配置:
[mysqld]
innodb_data_file_path=ibdata1:50;ibdata2:50:autoextend
數(shù)據(jù)文件規(guī)范的完整語法包括文件名,文件大小和多個選項屬性:
file_name:file_size[:autoextend[:max:max_file_size]]
autoexten和max屬性只能用于innodb_data_file_path行中的最后一個數(shù)據(jù)文件
如果對最后一個數(shù)據(jù)文件指定了autoextend,當(dāng)表空間中沒有可用空間時InnoDB會擴展數(shù)據(jù)文件大小。默認情況下是一次擴展64MB。為了修改增量,可以修改innodb_autoextend_increment系統(tǒng)變量。
如果存儲表空間數(shù)據(jù)文件的磁盤空間填滿,可以在其實磁盤上給表空間增加數(shù)據(jù)文件。
InnoDB不知道文件系統(tǒng)的最大文件大小,因此要注意文件系統(tǒng)的最大文件大小,比如2GB。為了給自動擴展的數(shù)據(jù)文件指定一個最大大小,在autoextend屬性后面使用max屬性。只在限制磁盤使用至關(guān)重要的情況下使用max屬性,因為超過最大大小會導(dǎo)致致命的錯誤,可能包括崩潰。下面的設(shè)置允許ibdata1增長到限制所指定的500MB:
[mysqld]
innodb_data_file_path=ibdata1:12M:autoextend:max:500M
默認情況下InnoDB在MySQL數(shù)據(jù)目錄(datadir)中創(chuàng)建表空間文件。為了顯式指定存儲位置,使用innodb_data_home_dir選項。例如,為了在名為myibdata目錄中創(chuàng)建兩個名為ibdata1和ibdata2的數(shù)據(jù)文件,使用如下配置:
[mysqld]
innodb_data_home_dir=/path/to/myibdata/
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
注意:在給innodb_data_home_dir指定值時需要使用斜桿。
InnoDB不會創(chuàng)建目錄,因此確保在啟動MySQL服務(wù)器之前指定的myibdata目錄已經(jīng)存在。還要確保MySQL服務(wù)器對所指定的目錄有正確的權(quán)限來創(chuàng)建文件。更通俗地說,服務(wù)器必須在需要創(chuàng)建數(shù)據(jù)文件的任何目錄中具有訪問權(quán)限。
InnoDB通過將innodb_data_home_dir的值與數(shù)據(jù)文件名進行文本連接來形成每個數(shù)據(jù)文件的目錄路徑。如果在my.cnf中沒有指定innodb_data_home_dir選項,那么默認值是“dot”目錄./,意思是MySQL數(shù)據(jù)目錄。(MySQL服務(wù)器在開始執(zhí)行時將其當(dāng)前工作目錄更改為數(shù)據(jù)目錄。)
如果將innodb_data_home_dir指定為空字符串,則可以為innodb_data_file_path值中列出的數(shù)據(jù)文件指定絕對路徑。下面的示例等價于上面的設(shè)置:
[mysqld]
innodb_data_home_dir=
innodb_data_file_path=/path/to/myibdata/ibdata1:50M;/path/to/myibdata/ibdata2:50M:autoextend
MySQL
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。