0. mongod的安装
不说了,基本上是yum安装
贴一个3.0的repo
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
1. 配置replSet名字
也是so easy
vim /etc/mongod.conf
replication:
replSetName: myreplset
2. 设置replica set信息
mongo
rs.initiate()
rs.conf()
rs.add("mongodb1.example.net")
rs.add("mongodb2.example.net")
设置完了以后会自动在从上生效。
3. 查看状态
rs.status()
4 .mongo副本集备份.
挂了不要紧,但是没备份就蛋疼了.
做起来其实就是在primary上面做备份. 但是主备会切换,所以我用python判断了一下.
from pymongo import MongoClient
import subprocess
import os
import datetime
import sys
def get_primary(hosts):
for h in hosts:
c = MongoClient(h)
if c.is_primary:
return h
sys.exit(-1)
def do_backup(host):
os.chdir('/data/mongo_backup/')
today = datetime.datetime.today().strftime('%d-%m-%y')
cmd1 = 'mongodump -h %s' % host
cmd2 = 'tar czf mongod-%s.tar.gz dump' % today
subprocess.call(cmd1.split())
subprocess.call(cmd2.split())
print 'backup is ok'
def main():
hosts = ['10.117.xx.xx', '10.117.xx.xx', '10.117.xx.xx']
master = get_primary(hosts)
do_backup(master)
if __name__ == '__main__':
main()
5.mongod特性
存的是文档型的数据,类似json. 我认为最方便的特性是天生自带HA,一台挂了没事. 还是一个是sharding,分片,水平扩展很方便.。我们数据量不是很大,二进制文件的量在70G 左右,所以只做了副本集,相信这也是绝大多数中小公司遇到的情况。