成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

MongoDB學(xué)習(xí)札記第六篇之主從復(fù)制

guyan0319 / 2852人閱讀

摘要:系列文章請(qǐng)看環(huán)境準(zhǔn)備主從復(fù)制是中最常見的復(fù)制方式。本次試驗(yàn)中,我們采用一個(gè)主節(jié)點(diǎn),一個(gè)從節(jié)點(diǎn)。重啟一下即可正常運(yùn)行。執(zhí)行完這條語(yǔ)句之后既可以正常操作了。具體怎么創(chuàng)建用戶參考學(xué)習(xí)札記第二篇之安全參考權(quán)威指南官網(wǎng)手冊(cè)

  

mongo系列文章請(qǐng)看http://www.codefrom.com/p/mongodb


環(huán)境準(zhǔn)備:

  

ubuntu12.0.4
mongodb3.0.3

主從復(fù)制是MongoDB中最常見的復(fù)制方式。這種方式非常靈活,可用于備份,故障恢復(fù),讀擴(kuò)展 等。
本次試驗(yàn)中,我們采用一個(gè)主節(jié)點(diǎn),一個(gè)從節(jié)點(diǎn)。
首先先創(chuàng)建master和slave的目錄

lwb@ubuntu:~$ mkdir -p ~/mongoData/master
lwb@ubuntu:~$ mkdir -p ~/mongoData/slave

創(chuàng)建之后,啟動(dòng)master

lwb@ubuntu:~$ mongod --master --dbpath ~/mongoData/master/ --port 10000

然后再啟動(dòng)slave

lwb@ubuntu:~$ mongod --dbpath  ~/mongoData/slave/ --port 10001 --slave --source localhost:10000

接著,連接到master的機(jī)器,

lwb@ubuntu:~$ mongo --host localhost --port 10000

往test數(shù)據(jù)庫(kù)的users集合里面插入兩條數(shù)據(jù):

> db.users.find()
{ "_id" : ObjectId("55763d98db85929bb8addedf"), "username" : "lwb" }
{ "_id" : ObjectId("55764a694b24187a7a3c6693"), "username" : "mongodb master-slave" }

在master操作完成之后,在連接slave的mongod

lwb@ubuntu:~$ mongo --host localhost --port 10001
MongoDB shell version: 3.0.3
connecting to: localhost:10001/test
Server has startup warnings:
2015-06-08T19:02:31.866-0700 I CONTROL  [initandlisten]
2015-06-08T19:02:31.866-0700 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/   mm/transparent_hugepage/defrag is "always".
2015-06-08T19:02:31.866-0700 I CONTROL  [initandlisten] **        We suggest set   ting it to "never"
2015-06-08T19:02:31.866-0700 I CONTROL  [initandlisten]
>
> show dbs
2015-06-08T19:09:17.770-0700 E QUERY    Error: listDatabases failed:{ "note" : "   from execCommand", "ok" : 0, "errmsg" : "not master" }
    at Error ()
    at Mongo.getDBs (src/mongo/shell/mongo.js:47:15)
    at shellHelper.show (src/mongo/shell/utils.js:630:33)
    at shellHelper (src/mongo/shell/utils.js:524:36)
    at (shellhelp2):1:1 at src/mongo/shell/mongo.js:47
>
> rs.slaveOk()
> 
> show dbs
local  0.078GB
test   0.078GB
>
> use test
switched to db test
> show collections
system.indexes
users
>
> db.users.find()
{ "_id" : ObjectId("55763d98db85929bb8addedf"), "username" : "lwb" }
{ "_id" : ObjectId("55764a694b24187a7a3c6693"), "username" : "mongodb master-slave" }

我遇到的問(wèn)題及解決方法
問(wèn)題一:

  

我的主從復(fù)制實(shí)驗(yàn)分為兩次進(jìn)行,剛開始我配置的master的端口是 10000 ,salve的端口是10001 ; 后因?yàn)殡娔X內(nèi)存使用率暴漲,90+% 。 所以關(guān)掉電腦重啟。問(wèn)題就出現(xiàn)在這里,重啟之后,我指定master端口的時(shí)候指定為 27000 , 指定slave端口為 27001 所以就出現(xiàn)了如下問(wèn)題:terminating mongod after 30 seconds

2015-06-08T18:11:37.981-0700 I NETWORK  [initandlisten] waiting for connections on port 27001
2015-06-08T18:11:38.975-0700 I REPL     [replslave] repl: --source localhost:27000 != localhost:10000 from local.sources collection
2015-06-08T18:11:38.976-0700 I REPL     [replslave] repl: for instructions on changing this slave"s source, see: 2015-06-08T18:11:38.976-0700 I REPL     [replslave] http://dochub.mongodb.org/co re/masterslave
2015-06-08T18:11:38.976-0700 I REPL     [replslave] repl: terminating mongod after 30 seconds
2015-06-08T18:12:08.976-0700 I CONTROL  [replslave] dbexit:  rc: 3

解決方法:
如果仔細(xì)觀察日志的同學(xué)應(yīng)該會(huì)發(fā)現(xiàn):

2015-06-08T18:11:38.975-0700 I REPL     [replslave] repl: --source localhost:27000 != localhost:10000 from local.sources collection

所以,在一開始的時(shí)候我們已經(jīng)為slave指定了master的host和port,這個(gè)會(huì)插入到local.sources 這個(gè)集合的。所以,把master端口改成10000就可以了。

問(wèn)題二

  

主從啟動(dòng)之后,連接slave可以成功連上,但是在slave中執(zhí)行 show dbs 的時(shí)候就報(bào)錯(cuò)了:

QUERY    Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" }

解決方法:

在報(bào)錯(cuò)的slave機(jī)器上執(zhí)行 rs.slaveOk()方法即可。

> rs.slaveOk()
> show dbs
local  0.078GB
test   0.078GB
> use test
switched to db test
> show collections
system.indexes
users
> db.users.find()
{ "_id" : ObjectId("55763d98db85929bb8addedf"), "username" : "lwb" }
{ "_id" : ObjectId("55764a694b24187a7a3c6693"), "username" : "mongodb master-sla

具體slaveOk方法是什么意思?
rs.slaveOk()

  

Provides a shorthand for the following operation:

db.getMongo().setSlaveOk()
This allows the current connection to allow read operations to run on secondary members. See the readPref() method for more fine-grained control over read preference in the mongo shell.

Master-Slave安全
這個(gè)主從安全在 MongoDB官網(wǎng)說(shuō)的很清楚。不能和普通的mongod權(quán)限驗(yàn)證那樣。這里除了需要加入 —auth 還需要加入 —keyFile 的驗(yàn)證。

首先,我們生成我們的keyFile,根據(jù)官網(wǎng)提供的說(shuō)明,這個(gè)keyfile是可以任意內(nèi)容的,只要保證所有集群中的機(jī)器都擁有同樣的文件即可。在linux環(huán)境下,我們通過(guò)

openssl rand -base64 741 > /usr/localhsot/mongodb/mongo-keyfile

這條命令來(lái)生成我們的keyFile。 生成之后就可以在啟動(dòng)mongod的時(shí)候指定了。

首先先啟動(dòng) master

root@ubuntu:/usr/local/mongodb# mongod --master --dbpath ~/mongoData/master/ --port 10000 --auth --keyFile /usr/local/mongodb/mongo-keyfile

這里在啟動(dòng)的時(shí)候可能會(huì)遇到一些問(wèn)題,我是在ubuntu環(huán)境下,所以經(jīng)常操作要sudo,很繁瑣。因此,讓當(dāng)前用戶獲得root權(quán)限是很有必要的。

  

在命令行模式執(zhí)行 vi etc/passwd
我的用戶名是 lwb ,所以將lwb所在的行改成
lwb:x:0:0:Ubuntu12.04,,,:/home/lwb:/bin/bash
原來(lái)的值是(將1000 改成 0 即可): lwb:x:1000:1000:Ubuntu12.04,,,:/home/lwb:/bin/bash
修改完成之后重啟登錄就可以讓當(dāng)前用戶獲得root權(quán)限了。

回到正題,在生成mongo-keyfile后,并指定keyFile參數(shù)來(lái)啟動(dòng)mongod的時(shí)候,可能還會(huì)遇到另一個(gè)問(wèn)題:

root@ubuntu:~# mongod --master --dbpath ~/mongoData/master/ --port 10000 --auth --keyFile /usr/local/mongodb/mongo-keyfile
2015-06-08T21:34:43.864-0700 I ACCESS   permissions on /usr/local/mongodb/mongo-keyfile are too open

這個(gè)錯(cuò)誤的意思是說(shuō) mongo-keyfile權(quán)限太大了,降低一下這個(gè)文件的權(quán)限。

root@ubuntu:/usr/local/mongodb# chmod 400 mongo-keyfile
root@ubuntu:/usr/local/mongodb# ll
total 84
drwxr-xr-x  4 root root  4096 Jun  8 21:34 ./
drwxr-xr-x 11 root root  4096 Jun  8 16:49 ../
-rw-r--r--  1 root root 34520 Jun  6 07:24 GNU-AGPL-3.0
-rw-r--r--  1 root root  1359 Jun  6 07:24 README
-rw-r--r--  1 root root 22660 Jun  6 07:24 THIRD-PARTY-NOTICES
drwxr-xr-x  2 root root  4096 Jun  6 07:24 bin/
drwxr-xr-x  3 root root  4096 Jun  7 13:02 data/
-r--------  1 root root  1004 Jun  8 21:34 mongo-keyfile

重啟一下mongod即可正常運(yùn)行。

接著啟動(dòng)slave

mongod --slave --dbpath ~/mongoData/slave/ --port 10001 --source localhost:10000 --auth --keyFile /usr/local/mongodb/mongo-keyfile

一切都順利的進(jìn)行著。
使用創(chuàng)建的用戶操作master里面的數(shù)據(jù)庫(kù)以及集合都是正常的。但是使用同樣的用戶操作slave的時(shí)候就有不正常了。還是提示

QUERY    Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" }

這個(gè)錯(cuò)誤上面已經(jīng)提到了。解決方法也是一樣的。 rs.slaveOk() 執(zhí)行完這條語(yǔ)句之后既可以正常操作了。

可以發(fā)現(xiàn),用keyFile的方式啟動(dòng)mongod服務(wù)器其實(shí)和平常啟動(dòng)沒什么區(qū)別,唯一的區(qū)別就是在啟動(dòng)參數(shù)中指定了 --keyFile keyfile 而已。

具體怎么創(chuàng)建用戶參考: MongoDB學(xué)習(xí)札記第二篇之mongodb安全

Sincerely!
參考

MongoDB權(quán)威指南

MongoDB官網(wǎng)Manual手冊(cè)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/18750.html

相關(guān)文章

  • MongoDB學(xué)習(xí)札記第四篇之Query

    摘要:系列專題查詢條件首先往數(shù)據(jù)庫(kù)集合里面插入幾條數(shù)據(jù)。指定了之后,顯示具體的條數(shù),上文中,表示,顯示條文檔。其中,表示要排序的字段,的可取值為。要對(duì)集合進(jìn)行排序。其中按照升序,按照降序。發(fā)現(xiàn)逆序排序了。至此,說(shuō)明我們的實(shí)驗(yàn)成功了。 系列專題http://www.codefrom.com/p/mongodb 查詢條件 首先往數(shù)據(jù)庫(kù)集合里面插入幾條數(shù)據(jù)。 測(cè)試數(shù)據(jù): > db.u...

    RebeccaZhong 評(píng)論0 收藏0
  • Android Material Design系列之CoordinatorLayout等

    摘要:原圖加載毛玻璃的效果比較快,你的這個(gè)打開白屏好幾秒。這就是系列第六篇之系列之,等。這個(gè)系列的講解和實(shí)例都會(huì)整理在一個(gè)里,的地址去吧,我會(huì)慢慢完善的。 這篇文章其實(shí)我一直在想,是寫還是不寫,因?yàn)殛P(guān)于講 CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout,Toolbar,TabLayout 等這些控件的使用,以前寫過(guò)一篇,那就是《通...

    Little_XM 評(píng)論0 收藏0
  • mongodb學(xué)習(xí)筆記

    摘要:我們常說(shuō)的分表分庫(kù)分區(qū)等概念都屬于分片的實(shí)際體現(xiàn)。傳統(tǒng)分片做法是手工分表分庫(kù)。自動(dòng)分片技術(shù)是根據(jù)指定的片鍵自動(dòng)拆分?jǐn)?shù)據(jù)并維護(hù)數(shù)據(jù)請(qǐng)求路由的過(guò)程。 1.mongodb特性 1)mongo是一個(gè)面向文檔的數(shù)據(jù)庫(kù),它集合了nosql和sql數(shù)據(jù)庫(kù)兩方面的特性。 2)所有實(shí)體都是在首次使用時(shí)創(chuàng)建。 3)沒有嚴(yán)格的事務(wù)特性,但是它保證任何一次數(shù)據(jù)變更都是原子性的。 4)也沒有固定的數(shù)據(jù)模型 5)...

    王晗 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<