Миграция с Tokumx 1.5 на сервер Percona для mongodb 3.11
Перенос данных с Tokumx на сервер Percona для MonoDB
Шаг 1. В этом руководстве описывается, как обновить существующий экземпляр Percona TokuMX до Percona Server для MongoDB. Следующие файлы JavaScript необходимы для выполнения обновления:
• allDbStats.js
• tokumx_dump_indexes.js
• psmdb_restore_indexes.js
Вы можете скачать эти файлы с GitHub.
Шаг 2. Запустите сценарий allDbStats.js, чтобы записать состояние базы данных перед миграцией: $ mongo ./allDbStats.js > ~/allDbStats.before.out
Шаг 3: Выполните дамп базы данных: $ mongodump --out /your/dump/path
Шаг 4. Выполните дамп индексов: $ ./tokumx_dump_indexes.js > /your/dump/path/tokumxIndexes.json
Шаг 5: Восстановите коллекции без индексов, используя переключатель --noIndexRestore: $ mongorestore --noIndexRestore /your/dump/path
Шаг 6: Восстановите индексы (это может занять некоторое время). Этот шаг удалит параметры кластеризации для коллекций перед вставкой.
$. / psmdb_restore_indexes.js --eval "data = '/ your / dump / path / tokumxIndexes.json'"
Шаг 7:
Запустите сценарий allDbStats.js, чтобы записать состояние базы данных после миграции:
mongo ./allDbStats.js > ~/allDbStats.after.out
Это руководство, которое я нашел в статье Миграция с Tokumx на сервер Percona для mongodb. на шаге 6, когда я пытаюсь восстановить индексы, я получаю ниже упомянутую ошибку:
/mnt/tokumx-bkup/tokumxIndexes.json
2016-06-29T05:28:20.028+0000 E QUERY SyntaxError: Unexpected identifier
at /tmp/tokumx2_to_psmdb3_migration-master/psmdb_restore_indexes.js:78:1 at /mnt/tokumx-bkup/tokumxIndexes.json
2016-06-29T05:28:20.028+0000 E QUERY Error: error loading js file: /mnt/tokumx-bkup/tokumxIndexes.json
at /tmp/tokumx2_to_psmdb3_migration-master/psmdb_restore_indexes.js:78:1 at /tmp/tokumx2_to_psmdb3_migration-master/psmdb_restore_indexes.js:78
не удалось загрузить: /tmp/tokumx2_to_psmdb3_migration-master/psmdb_restore_indexes.js
Любая помощь будет приветствоваться. Спасибо
1 ответ
Проверьте файл tokumxIndexes.json. При запуске tokumx_dump_indexes.js необходимо использовать параметр оболочки mongo --quiet, иначе результирующий json будет содержать преамбулу оболочки в начале.
И проверьте файл, используя что-то вроде http://jsonlint.com/
Также, если преамбула присутствует, удалите эти две строки из файла tokumxIndexes.json. "Версия оболочки MongoDB: 3.0.11-1.6, подключающаяся к: 127.0.0.1:27017/test"
и снова запустите скрипт. и снова запустите скрипт $./psmdb_restore_indexes.js --eval "data='/your/dump/path/tokumxIndexes.json' " Теперь этот скрипт начнет сборку процесса индексации.