天天看點

伺服器架構之性能擴充-第十章(11)

./mongoexport –d test(資料庫) -c cl(集合) -o /tmp/cl.out  //導出記錄,導出的記錄和查詢結果相同

<a href="http://blog.51cto.com/attachment/201209/003538643.png" target="_blank"></a>

./mongoimport –d test –c c1 /tmp/cl.out  //導入記錄

<a href="http://blog.51cto.com/attachment/201209/003620412.png" target="_blank"></a>

./mongodump –d test –o /tmp/    //備份資料,如果不指定路徑,則檔案預設會在bin目錄下建立dump目錄存放備份,json字尾。

<a href="http://blog.51cto.com/attachment/201209/003635764.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201209/003649775.png" target="_blank"></a>

./mongorestore –d test /tmp/test/  //恢複備份

<a href="http://blog.51cto.com/attachment/201209/003700905.png" target="_blank"></a>

mongodb預設很多使用者,隻有開啟認證才需要指定使用者。

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

<a href="http://blog.51cto.com/attachment/201209/003710343.png" target="_blank"></a>

&gt;Use admin

&gt;db.addUser(“root”,”123”);   //添加使用者

<a href="http://blog.51cto.com/attachment/201209/003724912.png" target="_blank"></a>

&gt;use test

&gt;db.addUser(“user1”,”123”);

&gt;db.auth(“user1”,”123”);   必須授權才能使用test

<a href="http://blog.51cto.com/attachment/201209/003745323.png" target="_blank"></a>

主從叢集的方式是最基本的mongod叢集方式,在最新版本中已經不是太推薦了。

測試:我們在同一台計算機上實作mongod的主從

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

<a href="http://blog.51cto.com/attachment/201209/003800433.png" target="_blank"></a>

./mongod –slave –source 127.0.0.1:20001 –dbpath=/usr/local/mongodb/data2 –logpath=/usr/local/mongodb/dblog2 –fork –port 20002   //從伺服器啟動

<a href="http://blog.51cto.com/attachment/201209/003817615.png" target="_blank"></a>

主伺服器做增删,從伺服器會自動跟進,從伺服器插入不了資料,因為不是主,如增删可以用20001端口,查詢可以使用20002端口。

<a href="http://blog.51cto.com/attachment/201209/003830770.png" target="_blank"></a>

mongodb在1.6以上的版本中,使用了自動切換和自動修複的副本集功能。他的主節點不固定,是更靈活的叢集。

測試:同一台計算機上實作副本集

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” &gt; key1

Ech “123456” &gt; 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 //啟動副本集

<a href="http://blog.51cto.com/attachment/201209/003843338.png" target="_blank"></a>

啟動不了,就要看日志檔案,發現密碼短了

<a href="http://blog.51cto.com/attachment/201209/003858270.png" target="_blank"></a>

./mongo –port 20001 //啟動字元界面

增加config_rs1規則然後,rs.initiate(config_rs1);初始化

<a href="http://blog.51cto.com/attachment/201209/003930968.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201209/004626961.png" target="_blank"></a>

根據priority進行配置設定主從,優先級越高,則為主,這時打開另一個終端,會發現一個為primary另個為secondary,并且從資料自動。當然從伺服器需要執行“rs.slaveOK();”開啟從資料庫。

<a href="http://blog.51cto.com/attachment/201209/004716458.png" target="_blank"></a>

Rs.status();  //檢視主從伺服器狀态,可以看到主從和目前主機狀态

<a href="http://blog.51cto.com/attachment/201209/004641791.png" target="_blank"></a>

副本集叢集方式之是以比主從改進的地方就是自動切換的功能。如副本集中有一個資料出現問題,都可以自動實作功能切換。

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 &amp;&amp; make install

Vi /etc/php.ini

Extension=mongo.so  //增加mongo擴充

/usr/local/apache/bin/apachectl restart

<a href="http://blog.51cto.com/attachment/201209/004734887.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201209/004748484.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201209/004803705.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201209/004822403.png" target="_blank"></a>

&lt;?php

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

$db=$conn-&gt;test; &gt;

本文轉自zsaisai 51CTO部落格,原文連結:http://blog.51cto.com/3402313/989253