1

将数据从 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 迁移到 mongodb 的 Percona 服务器中找到的指南。在第 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

欢迎任何帮助。谢谢

4

1 回答 1

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' " 现在这个脚本将开始构建索引进程。

于 2016-06-30T07:22:52.820 回答