ich habe heute versucht eine OTRS 5.0.9 / CentOS 7 / MariaDB MyIsam Datenbank auf InnoDB zu konvertieren. Dies mit Hilfe des OTRS Scripts
otrs.Console.pl Maint::Database::MySQL::InnoDBMigration. Auch eine manuelle Konvertierung (ohne dem OTRS Script) der angemerkten Tabelle wirft den Fehler aus: ./otrs/dynamic_field' already exists
Das besagte OTRS ist vor einiger Zeit von OTRS 3.0 mit allen Update Schritten und ohne Migrationsfehler hochgezogen worden und das System läuft ansonsten fehlerfrei. Eine Konvertierung der MyIsam DB auf InnoDB sollte das System im letzten Schritt auf die OTRS DB Vorgaben (InnoDB) angleichen.
//Edit:
Vor dem ausführen des Migrations-Scripts wurde das Datenbank Engine von MyISam auf InnoDB umgestellt :
default-storage-engine = InnoDB
innodb_log_file_size = 512M
und die Logfiles bei gestoppten MariaDB Server neu aufgebaut
rm -r /var/lib/mysql/ib_logfile*
//Edit
Die Tabelle ./otrs/dynamic_field' gibt es aber bei Überprüfung nur einmal.
Das Script läuft durch, bis zu der Tabelle dynamic_field und endet dort mit der unten stehenden Fehlermeldung.
Hat jemand vielleicht einen Ansatz, diesen Fehler zu beheben? Gibt es triftige Gründe dagegen, die Datenbank auf MyIsam zu belassen?
Code: Select all
bash-4.2$ perl otrs.Console.pl Maint::Database::MySQL::InnoDBMigration
Checking for tables that need to be converted to InnoDB...
108 tables need to be converted.
You can re-run this script with --force to start the migration.
This operation can take a long time.
bash-4.2$ perl otrs.Console.pl Maint::Database::MySQL::InnoDBMigration --force
Converting all database tables to InnoDB...
108 tables need to be converted.
Changing table dynamic_field to engine InnoDB...
[Wed May 18 12:30:14 2016] otrs.Console.pl: DBD::mysql::db do failed: Table './otrs/dynamic_field' already exists at /opt/otrs/Kernel/System/DB.pm line 449.
ERROR: OTRS-otrs.Console.pl-Maint::Database::MySQL::InnoDBMigration-63 Perl: 5.16.3 OS: linux Time: Wed May 18 12:30:14 2016
Message: Table './otrs/dynamic_field' already exists, SQL: 'ALTER TABLE dynamic_field ENGINE = InnoDB'
Traceback (10975):
Module: Kernel::System::Console::Command::Maint::Database::MySQL::InnoDBMigration::Run Line: 106
Module: (eval) Line: 444
Module: Kernel::System::Console::BaseCommand::Execute Line: 438
Module: Kernel::System::Console::InterfaceConsole::Run Line: 86
Module: otrs.Console.pl Line: 38
Error: Could not convert table dynamic_field to engine InnoDB.