将数据从Tokumx迁移到MonoDB的Percona服务器
第1步: 本指南介绍如何将现有的Percona TokuMX实例升级到Percona Server for 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
欢迎任何帮助。 感谢
答案 0 :(得分:1)
检查tokumxIndexes.json文件。运行tokumx_dump_indexes.js时,必须使用mongo shell参数--quiet,否则生成的json将在开头包含shell前导码。
等内容检查文件如果存在前导码,则从tokumxIndexes.json文件中删除这两行。 “MongoDB shell版本:3.0.11-1.6 连接到:127.0.0.1:27017 / test“
再次运行脚本。 然后再次运行脚本 $。/ psmdb_restore_indexes.js --eval“data ='/ your / dump / path / tokumxIndexes.json'” 现在这个脚本将开始构建索引过程。