First be sure to install the latest version of TokuMX on the target machines, which is currently 1.4.2.
Also, for all long-running commands, you’ll want to run them in a tmux session. You can create a new tmux session with
tmux new, attach to the default session with
tmux attach -d, and quit a tmux session with
exit after you’re in it.
Run the following commands on the MongoDB secondary with credentials and paths updated to match your environment:
sudo service mongodb stop sudo mongodump -u adminuser -p 'password' --dbpath /var/lib/mongodb --journal
Connect to the Mongo primary admin DB and run rs.status(). Get last timestamp from secondary and use it in the mongo2toku command below. You can now restart the MongoDB secondary with
sudo service mongodb start.
If you want to copy a file from one machine to another with scp, you’ll want to ssh to the first machine using the -A option to enable forwarding of the authentication agent connection. Note that if this is a long running copy command, you’ll want to use tmux, but the -A option will only work with
tmux new and not
tmux attach -d without jumping through a bunch of extra hoops. So, using
ssh -A and
tmux new copy the files to the new machine:
scp -r dump remoteip:/media/ephemeral0/mongodump
Now run the following on the Toku primary being sure to use your credentials, data paths, and oplog time:
sudo mongorestore --dbpath /media/ephemeral0/tokumx dump mongo2toku --from rs/primary:27017,secondary:27017 --ruser adminuser --rpass 'password' --host localhost:27017 --authenticationDatabase admin -u adminuser -p 'password' --ts=9999999999:9