MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
*面向集合存储,易存储对象类型的数据。
*模式自由。
*支持动态查询。
*支持完全索引,包含内部对象。
*支持查询。
*支持复制和故障恢复。
*使用高效的二进制数据存储,包括大型对象(如视频等)。
*自动处理碎片,以支持云计算层次的扩展性。
*支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
*文件存储格式为BSON(一种JSON的扩展)。
*可通过网络访问。----------------以上内容摘自好搜百科
一、下载keepalived和mongodb源码包(第十五为一键安装脚本)
http://yunpan.cn/cLnMGSt7v2X4s 访问密码 956a
二、安装keepalived
[root@mongodb1 ~]yum -y install gcc openssl-devel popt popt-devel libnl libnl-devel kernel-devel #所需依赖包 [root@mongodb1~]# tar -zxvf keepalived-1.2.7.tar.gz [root@mongodb1~]# cd keepalived-1.2.7.tar.gz [root@mongodb1keepalived-1.2.7]# ./configure #安装三部曲 [root@mongodb1keepalived-1.2.7]# make [root@mongodb1keepalived-1.2.7]# make install
三、拷贝配置文件和启动脚本
[root@mongodb1~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ [root@mongodb1~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig [root@mongodb1~]# mkdir /etc/keepalived [root@mongodb1~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ [root@mongodb1~]# cp /usr/local/sbin/keepalived /usr/sbin/
四、添加开机启动
[root@mongodb1~]#chkconfig --add keepalived #添加服务 [root@mongodb1~]#chkconfig keepalived on #开机启动
五、配置文件
[root@mongodb1~]#cat /etc/keepalived/keepalived.conf !Configuration File for keepalived vrrp_instance MG_1 { state MASTER #mongodb2为BACKUP interface eth0 virtual_router_id 55 priority 100 #优先级,备份为90 advert_int 1 #nopreempt #不抢占资源 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.10 #虚拟IP } } #从服务器以下可以不设置 virtual_server 192.168.0.10 27017 { delay_loop 6 lb_algo rr persistence_timeout 5 protocol TCP real_server 192.168.0.100 27017 { notify_down /root/mongodb.sh TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 27017 } } }
五(一)
、cat mongodb.sh #!/bin/bash service keepalived stop
六、[root@mongodb1 ~]# service keepalived start 正在启动 keepalived:
[确定]
七、以上配置,在从服务器上除了配置文件的微小差别,其它内容完全相同!
八、命令ip a可查看虚拟IP,成功则显示虚拟IP。
九、安装mongodb
[root@mongodb1 ~]# tar -zxvf mongodb-linux-x86_64-2.4.9.tgz -C /usr/local/ [root@mongodb1 local]# mv mongodb-linux-x86_64-2.4.9/ mongodb [root@mongodb1 local]# cd mongodb/ [root@mongodb1 mongodb]# mkdir db [root@mongodb1 mongodb]# mkdir logs [root@mongodb1 mongodb]# cd bin [root@mongodb1 bin]# cat mongodb.conf dbpath=/usr/local/mongodb/db #数据库目录 logpath=/usr/local/mongodb/logs/mongodb.log #日志 port=27017 #端口 fork=true nohttpinterface=true master=true #主服务器 auth=true
#开启用户验证
十、从服务器配置文件
[root@mongodb2 bin]# cat mongodb.conf dbpath=/usr/local/mongodb/db logpath=/usr/local/mongodb/logs/mongodb.log port=27017 fork=true nohttpinterface=true slave=true #从服务器 source=192.168.0.100:27017 #从主服务器复制 autoresync=true #自动同步 auth=true
十一、启动mongodb(两台都启动)---命令路径可添加在bashrc中,如果不会,请百度,百度不到,请找你老大。
[root@mongodb1 bin]/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf
十二、报错信息:当查看从服务器mongodb日志时显示以下信息,如果你在配置过程当中没有认证用户,主从搭建成功,请忽略报错,如果是其他报错,请百度。
十三、几经波折,找到原因,对两台进行用户认证。
[root@mongodb1 bin]/usr/local/mongodb/bin/mongo #进入数据库
>use local
>db.addUser('reql','reql')
当用户认证之后,从服务器连上主服务器,显示OK,但在OK后显示errmsg:unauthorized,此为未授权
十四、经分析,普通用户认证权限小,所以再进行管理员账户认证。(只在主服务器上认证)注意:在配置文件中的auth=true请注释掉,并重启mongodb
[root@mongodb1 bin]/usr/local/mongodb/bin/mongo #进入数据库 >use admin >db.addUser('tank','test') >db.auth('tank','test') #数据库认证,必须做
十五、一键安装脚本
#####################Master keepalived+Mongodb###################!/bin/bash# master serverread -p "please enter real server IP: " RIPread -p "please enter virtual server IP: " VIP#####################Keepalived####################yum -y install gcc openssl-devel popt popt-devel libnl libnl-devel kernel-develtar -zxvf keepalived-1.2.7.tar.gz cd keepalived-1.2.7./configuremake && make installcp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfigmkdir /etc/keepalivedcp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/cp /usr/local/sbin/keepalived /usr/sbin/chkconfig --add keepalivedchkconfig keepalived on ###################keepalived.conf##################cat </etc/keepalived/keepalived.conf! Configuration File for keepalivedvrrp_instance MG_1 {state MASTER #mongodb2为BACKUPinterface eth0virtual_router_id 55priority 100 #优先级,备份为90advert_int 1authentication {auth_type PASS auth_pass 1111 } virtual_ipaddress {$VIP #虚拟IP }}virtual_server $VIP 27017 {delay_loop 6lb_algo rrpersistence_timeout 5protocol TCPreal_server $RIP 27017 {notify_down /root/mongodb.shTCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 27017}}}EOF/etc/init.d/keepalived start##################Mongodb#############################cdtar -zxvf mongodb-linux-x86_64-2.4.9.tgz -C /usr/local/cd /usr/localmv mongodb-linux-x86_64-2.4.9 mongodbcd mongodb/mkdir dbmkdir logscd bincat < /usr/local/mongodb/bin/mongodb.confdbpath=/usr/local/mongodb/db #数据库目录logpath=/usr/local/mongodb/logs/mongodb.log #日志port=27017 #端口fork=truenohttpinterface=truemaster=true #主服务器auth=true #开启用户验证EOFecho 'PATH=/usr/local/mongodb/bin:$PATH' >> /etc/bashrcsource /etc/bashrc/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf##################slave keepalive+mongodb###################!/bin/bash# slave serverread -p "please enter the master server: " SIPread -p "please enter virtual server IP: " VIP#####################Keepalived####################yum -y install gcc openssl-devel popt popt-devel libnl libnl-devel kernel-develtar -zxvf keepalived-1.2.7.tar.gz cd keepalived-1.2.7./configuremake && make installcp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfigmkdir /etc/keepalivedcp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/cp /usr/local/sbin/keepalived /usr/sbin/chkconfig --add keepalivedchkconfig keepalived on ###################keepalived.conf##################cat < /etc/keepalived/keepalived.conf! Configuration File for keepalivedvrrp_instance MG_1 {state BACKUP #mongodb2为BACKUPinterface eth0virtual_router_id 55priority 90 #优先级,备份为90advert_int 1authentication {auth_type PASS auth_pass 1111 } virtual_ipaddress {$VIP #虚拟IP }}EOF/etc/init.d/keepalived startcdtar -zxvf mongodb-linux-x86_64-2.4.9.tgz -C /usr/local/cd /usr/localmv mongodb-linux-x86_64-2.4.9/ mongodbcd mongodb/mkdir dbmkdir logscd bincat < /usr/local/mongodb/bin/mongodb.confdbpath=/usr/local/mongodb/dblogpath=/usr/local/mongodb/logs/mongodb.logport=27017fork=truenohttpinterface=trueslave=true #从服务器source=${SIP}:27017 #从主服务器复制autoresync=true #自动同步auth=trueEOFecho 'PATH=/usr/local/mongodb/bin:$PATH' >> /etc/bashrcsource /etc/bashrc/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf