从Tokumx 1.5迁移到Percona服务器对于mongodb 3.11

时间:2016-06-29 05:33:13

标签: mongodb server database-migration percona tokumx

将数据从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

欢迎任何帮助。 感谢

1 个答案:

答案 0 :(得分:1)

检查tokumxIndexes.json文件。运行tokumx_dump_indexes.js时,必须使用mongo shell参数--quiet,否则生成的json将在开头包含shell前导码。

使用http://jsonlint.com/

等内容检查文件

如果存在前导码,则从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'” 现在这个脚本将开始构建索引过程。