Czy zmiana wartości innodb_data_file_path dla mysql 5 jest bezpieczna?


Niedawno napotkałem uszkodzenie danych po zmianie wartości tego parametru na
       my.cnf
od:
innodb_data_file_path = ibdata1:10M:autoextend:max:128M

Do kogo:
innodb_data_file_path = ibdata1:10M:autoextend:max:256M

Nie jestem do końca pewien, czy to była przyczyna uszkodzenia, ponieważ wcześniej w DB było za mało miejsca. Moje pytanie brzmi, czy można bezpiecznie zmienić maksymalny rozmiar bazy danych po zapełnieniu miejsca?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli chcesz mieć pewność, wykonaj następujące czynności:
Najpierw zmień ścieżkę innodb_data_file_path w/etc/my.cnf na
[mysqld]
innodb_data_file_path = ibdata1:10M:autoextend

Uruchom następujące
cd
service mysql restart --skip-networking --skip-grant-tables
mysqldump --single-transaction --routines --triggers --all-databases > MySQLData.sql
service mysql stop

Upewnij się, że istnieje plik/root/MySQLData.sql. Następnie idź dalej
rm/var/lib/mysql/ibdata1
rm/var/lib/mysql/ib_logfile0
rm/var/lib/mysql/ib_logfile1
service mysql start --skip-networking --skip-grant-tables
mysql < MySQLData.sql
service mysql restart

Spróbuj !!!
Właściwie mam monitoring w mojej pracy, który używa MySQL jako repozytorium i zmieniłem maksymalny z 1 TB na 16 TB. Podczas zbierania danych nic nie można było zarejestrować, ale nie było żadnych uszkodzeń. Możesz po prostu zmienić numer.
Jak wspomniałem, całkowicie usunąłbym wartość maksymalną
innodb_data_file_path = ibdata1:10M:autoextend

z dwóch powodów:
  • bardzo mała zmiana
  • Element ibdata1 będzie zawsze zapisywany, ponieważ obszar tabel cofania znajduje się w nim i musi zostać zapisany. Spowoduje to, że ibdata1 będzie rosnąć losowo. Możesz napotkać to ponownie. Dlatego najlepiej jest usunąć opcję max.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się