Я пытаюсь восстановить полную резервную копию, сделанную с одного узла трехузлового percona-кластера (percona cluster 5.5, galera 2.1, метод wsrep sst - это rsync, только таблицы innodb).
Бэкап брался так:
rm -rf /tmp/backup/mysqldb
innobackupex --user=bkpuser --password=xxxx --galera-info --no-timestamp /tmp/backup/mysqldb/
innobackupex --apply-log --use-memory=2G /tmp/backup/mysqldb/
Процедура восстановления, которую я пытаюсь выполнить, выглядит так:
wsrep_urls = gcomm://
для инициализации кластераgalera.cache
и grastate.dat
wsrep_urls = gcomm://firstnode:port,gcomm://secondnode:port,gcomm://thirdnode:port
)wsrep_urls
конфигурация(Я знаю, что wsrep_urls устарел, но я еще не заставил galera работать с wsrep_cluster_address.)
Моя проблема в том, что второй и третий узлы сообщают об ошибках после SST. Для каждой таблицы я вижу эту ошибку:
130225 15:44:43 [ERROR] Cannot find or open table myTestDb/settings from
the internal data dictionary of InnoDB though the .frm file for the
table exists. Maybe you have deleted and recreated InnoDB data
files but have forgotten to delete the corresponding .frm files
of InnoDB tables, or you have moved .frm files to another database?
or, the table contains indexes that this version of the engine
doesn't support.
See http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html
how you can resolve the problem.
MySQL show tables
показывает таблицы как существующие, но при попытке выбрать из них выдает ошибку Table 'myTestDb.settings' does not exist
...
Я попытался удалить файлы локального табличного пространства перед запуском mysql и запросом sst, результат тот же.
Как мне выполнить восстановление? Следует ли мне копировать файлы резервных копий на все узлы?
На поиск ответа у меня ушло много времени. Если вы читаете innobackup.backup.log с узла-донора и наблюдаете за данными, создаваемыми в добавляющем узле, вы получите некоторое представление, почему это происходит.
У меня точно такая же проблема. И в моем случае закомментируйте настроенное значение innodb_data_home_dir и innodb_log_group_home_dir, чтобы решить проблему.
После синхронизации с группой просто включите это значение и скопируйте файл.
Надеюсь это поможет.
Вы не сказали, какой метод SST вы используете. Я полагаю, это xtrabackup?
Симптомы, которые вы описываете на 2-м и 3-м узлах, похожи на отсутствующий (и повторно инициализированный) словарь данных Innodb, который находится в файле ibdata1. Возможно, это не копируется из нужного места на 1-м узле.
Вы упомянули некоторые вещи, такие как журналы trx и двойную запись файлов в «отдельной папке». Какие у вас настройки Innodb в my.cnf? Вы, возможно, устанавливаете innodb_data_home_dir (и это вне вашего стандартного datadir)?
Если так, скорее всего, это ошибка: https://bugs.launchpad.net/percona-xtradb-cluster/+bug/1098566, или, возможно, похожий на него.