MySQL innodb共享表空間新增表空間資料檔案方法

chenfeng發表於2016-08-25
當innodb使用共享管理表空間(innodb_file_per_table=off),只有一個資料檔案ibdata1而且表空間快滿了。在這種情況下,需要新增額外的表空間來擴充套件容量。方法如下:
1. 停止mysql服務
2. 備份配置檔案
3. 編輯my.cnf裡innodb_data_file_path的值
根據innodb_data_file_path更改ibdata1:$size;ibdataN:$size;…ibdataN:$size; 當前定義的表空間或預設表空間是不能改變的,否則啟動失敗,但是可以新增額外的表空間,ibdataN序列根據當前的數量遞增,
$size自定義。
4. 啟動mysql服務

舉例如下:

MySQL [test]> show variables like 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | OFF   |
+-----------------------+-------+
1 row in set (0.00 sec)


檢視innodb資料檔案路徑:

MySQL [test]> show variables like 'innodb_data%';
+-----------------------+------------------------+
| Variable_name         | Value                  |
+-----------------------+------------------------+
| innodb_data_file_path | ibdata1:12M:autoextend |
| innodb_data_home_dir  |                        |
+-----------------------+------------------------+
2 rows in set (0.00 sec)

資料檔案路徑:
MySQL [test]> show variables like 'datadir';
+---------------+--------------+
| Variable_name | Value        |
+---------------+--------------+
| datadir       | /data/mysql/ |
+---------------+--------------+
1 row in set (0.00 sec)


停止mysql服務:
[root@chenfeng mysql]# service mysql stop
Shutting down MySQL. SUCCESS! 


修改/usr/local/mysql/my.cnf,更改innodb_file_per_table為共享管理表空間並新增兩個資料檔案ibdata2和ibdata3,設定成自動擴充套件:
innodb_file_per_table=off
innodb_data_file_path = ibdata1:12M;ibdata2:100M;ibdata3:300M:autoextend


啟動mysql資料庫:
[root@chenfeng mysql]# service mysql start
Starting MySQL... SUCCESS! 


檢視資料目錄,發現新增資料檔案成功:

-bash-4.2$ cd /data/mysql
-bash-4.2$ ll ibdata*
-rw-rw----. 1 mysql mysql  12582912 8月  25 16:02 ibdata1
-rw-rw----. 1 mysql mysql 104857600 8月  25 16:02 ibdata2
-rw-rw----. 1 mysql mysql 314572800 8月  25 16:02 ibdata3

MySQL [test]> show variables like 'innodb_data%';
+-----------------------+--------------------------------------------------+
| Variable_name         | Value                                            |
+-----------------------+--------------------------------------------------+
| innodb_data_file_path | ibdata1:12M;ibdata2:100M;ibdata3:300M:autoextend |
| innodb_data_home_dir  |                                                  |
+-----------------------+--------------------------------------------------+
2 rows in set (0.00 sec)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2124036/,如需轉載,請註明出處,否則將追究法律責任。

相關文章