服务器架构之性能扩展-第十章(11)

  

第十章  mongodb数据库管理

9.4.1数据库导入导出

./mongoexport –d test(数据库) -c cl(集合) -o /tmp/cl.out  //导出记录,导出的记录和查询结果相同

./mongoimport –d test –c c1 /tmp/cl.out  //导入记录

9.4.2           mongodb的备份恢复

./mongodump –d test –o /tmp/    //备份数据,如果不指定路径,则文件默认会在bin目录下建立dump目录存放备份,json后缀。

./mongorestore –d test /tmp/test/  //恢复备份

9.4.3           mongodb的安全和认证

mongodb默认很多用户,只有开启认证才需要指定用户。

./mongod –auth –dbpath=/usr/local/mongodb/data  --logpath=/usr/local/mongodb/dblog &

>Use admin

>db.addUser(“root”,”123”);   //添加用户

>use test

>db.addUser(“user1”,”123”);

>db.auth(“user1”,”123”);   必须授权才能使用test

 

9.5                 mongodb架构设计

9.5.1 mongodb集群(主从)

主从集群的方式是最基本的mongod集群方式,在最新版本中已经不是太推荐了。

测试:我们在同一台计算机上实现mongod的主从

./mongod –master –dbpath=/usr/local/mongodb/data1 –logpath=/usr/local/mongodb/dblog1 –fork –port 20001  //启动主的

 

 

./mongod –slave –source 127.0.0.1:20001 –dbpath=/usr/local/mongodb/data2 –logpath=/usr/local/mongodb/dblog2 –fork –port 20002   //从服务器启动

 

主服务器做增删,从服务器会自动跟进,从服务器插入不了数据,因为不是主,如增删可以用20001端口,查询可以使用20002端口。

9.5.2           mongodb集群(副本集)

mongodb1.6以上的版本中,使用了自动切换和自动修复的副本集功能。他的主节点不固定,是更灵活的集群。

测试:同一台计算机上实现副本集

Mkdir –p /usr/local/mongodb/data1

Mkdir –p /usr/local/mongodb/data1

Touch /usr/local/mongodb/log/dblog1

Touch /usr/local/mongodb/log/dblog2

创建key,用于私钥路径。

Mkdir /usr/local/mongodb/key

Ech 123456 > key1

Ech 123456 > key2

Chmod 600 /usr/local/mongodb/key/*

./mongod –replSet rs1 –keyFile /data/key/key1 –port 20001 –dbpath=/usr/local/mongodb/data1 –logpath=/usr/local/mongodb/log/dblog1 –fork //启动副本集

启动不了,就要看日志文件,发现密码短了

./mongo –port 20001 //启动字符界面

增加config_rs1规则然后,rs.initiate(config_rs1);初始化

 

 

 

根据priority进行分配主从,优先级越高,则为主,这时打开另一个终端,会发现一个为primary另个为secondary,并且从数据自动。当然从服务器需要执行“rs.slaveOK();”开启从数据库。

 

Rs.status();  //查看主从服务器状态,可以看到主从和当前主机状态

副本集集群方式之所以比主从改进的地方就是自动切换的功能。如副本集中有一个数据出现问题,都可以自动实现功能切换。

9.6                 php操纵mongodb

php操纵数据首先要安装mongodbphp扩展,可以在http://pecl.php.net/package/mongo中下载。

Wget http://pecl.php.net/get/mongo-1.2.6.tgz

Cd zxf mongo-1.2.6.tgz

Cd mongo-1.2.6

/usr/local/php5/bin/phpize  //加载模块

./configure –with-php-config=/usr/local/php5/bin/php-config –enable-mongo

Make && make install

Vi /etc/php.ini

Extension=mongo.so  //增加mongo扩展

/usr/local/apache/bin/apachectl restart

<?php

$conn=new Mongo("mongodb://user1:123@localhost:27017/test")

$db=$conn->test; >

 

 

 

 

你可能感兴趣的:(mongodb,服务器架构)