只升级mongodb的版本极为简单,更新/替换 bin/目录下的可执行文件即可。
debian和osx上的升级,按步骤来,没什么好说的。
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/
切换引擎就麻烦了,新引擎的性能很诱人。
对迁移引擎来说,最大的问题是文件格式不兼容
也就是说,得把旧数据全部重新导一遍。
实现方式是设旧引擎数据库为master
设新引擎数据库为slaver
执行数据同步
旧引擎库
# mongod.conf dbpath=/hdd3/mongodb logpath=/var/log/mongodb/mongod_audit.log logappend=true port = 27017 bind_ip=127.0.0.1 master=true
新引擎库
# mongod_audit_wiredtiger.conf dbpath=/hdd3/mongodb_wiredtiger logpath=/var/log/mongodb/mongod_audit_wiredTiger.log logappend=true port = 27030 bind_ip=127.0.0.1 storageEngine=wiredTiger slave=true source=127.0.0.1:27017
/etc/init.d/mongod_audit_wiredTiger
#!/bin/sh # # init.d script with LSB support. # # Copyright (c) 2007 Javier Fernandez-Sanguino <jfs@debian.org> # # This is free software; you may redistribute it and/or modify # it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2, # or (at your option) any later version. # # This is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License with # the Debian operating system, in /usr/share/common-licenses/GPL; if # not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA # ### BEGIN INIT INFO # Provides: mongod_audit_wiretiger # Required-Start: $network $local_fs $remote_fs # Required-Stop: $network $local_fs $remote_fs # Should-Start: $named # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: An object/document-oriented database # Description: MongoDB is a high-performance, open source, schema-free # document-oriented data store that's easy to deploy, manage # and use. It's network accessible, written in C++ and offers # the following features: # # * Collection oriented storage - easy storage of object- # style data # * Full index support, including on inner objects # * Query profiling # * Replication and fail-over support # * Efficient storage of binary data including large # objects (e.g. videos) # * Automatic partitioning for cloud-level scalability # # High performance, scalability, and reasonable depth of # functionality are the goals for the project. ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/mongod DESC=database_audit NAME=mongod_audit_wiredtiger # Defaults. Can be overridden by the /etc/default/$NAME # Other configuration options are located in $CONF file. See here for more: # http://dochub.mongodb.org/core/configurationoptions CONF=/etc/mongod_audit_wiredtiger.conf PIDFILE=/var/run/$NAME.pid ENABLE_MONGOD=yes # Include mongodb defaults if available if [ -f /etc/default/$NAME ] ; then . /etc/default/$NAME fi # Handle NUMA access to CPUs (SERVER-3574) # This verifies the existence of numactl as well as testing that the command works NUMACTL_ARGS="--interleave=all" if which numactl >/dev/null 2>/dev/null && numactl $NUMACTL_ARGS ls / >/dev/null 2>/dev/null then NUMACTL="`which numactl` -- $NUMACTL_ARGS" DAEMON_OPTS=${DAEMON_OPTS:-"--config $CONF"} else NUMACTL="" DAEMON_OPTS="-- "${DAEMON_OPTS:-"--config $CONF"} fi if test ! -x $DAEMON; then echo "Could not find $DAEMON" exit 0 fi if test "x$ENABLE_MONGOD" != "xyes"; then exit 0 fi . /lib/lsb/init-functions STARTTIME=1 DIETIME=10 # Time to wait for the server to die, in seconds # If this value is set too low you might not # let some servers to die gracefully and # 'restart' will not work DAEMONUSER=${DAEMONUSER:-mongodb} set -e running_pid() { # Check if a given process pid's cmdline matches a given name pid=$1 name=$2 [ -z "$pid" ] && return 1 [ ! -d /proc/$pid ] && return 1 cmd=`cat /proc/$pid/cmdline | tr "