Расширение innodb_data_file_path в MySQL - PullRequest
0 голосов
/ 05 февраля 2012

Предположим, что сервер MySQL 5.5 использует следующую конфигурацию для хранения данных innodb

innodb_data_file_path =  /var/lib/mysql/ibdata:100G;/disk2/mysql/ibdata2:1000M:autoextend

через некоторое время, если база данных уже заполнена некоторое время. Я хочу добавить дополнительный путь в этот innodb_data_file_path, потому что у меня заканчивается дисковое пространство и добавлен новый диск. Это возможно? Как это можно сделать? Будет ли что-то вроде следующей работы?

innodb_data_file_path =  /var/lib/mysql/ibdata:100G;/disk2/mysql/ibdata2:XXXG;/disk3/mysql/ibdata3:1000M:autoextend

1 Ответ

2 голосов
/ 05 февраля 2012

Вы объяснили здесь . Если вы не указали путь в вашем innodb_data_home_dir, вы можете указать абсолютный путь для innodb_data_file_path, и вы можете иметь несколько файлов в формате file_name:file_size[:autoextend[:max:max_file_size]], разделенных точкой с запятой.

Также вы можете добавить новый файл данных для существующей базы данных. Остановите mysql, измените innodb_data_file_path и запустите его снова.

Одно примечание: , если у вас есть что-то вроде конфигурации:

innodb_data_file_path=/var/lib/mysql/file1:10M:autoextend

и вы хотите добавить новый файл, например

innodb_data_file_path=/var/lib/mysql/file1:10M;/bigmedia/file2:1800M:autoextend

может случиться так, что вы получите ошибки при запуске mysql (не в состоянии инициализировать движок InnoDB) ... ошибка может сказать что-то вроде: «file1 содержит страницы xx, но в my.cnf он говорит страницы xxx», это означает, что вам придется изменить размер файла file1 в my.cnf на его действительный размер (он превысил свой размер, указанный в файле конфигурации ... это нормально, когда это единственный файл, но mysql ожидает, что он будет точно указанного размера и расти второй файл, когда у вас есть второй файл). Это легко догадаться, всего 1 млн. Приращений. Итак, вы получите конфиг как:

innodb_data_file_path=/var/lib/mysql/file1:23M;/bigmedia/file2:1800M:autoextend

Будьте осторожны с этим и постарайтесь не уничтожить ваши данные:)

...