国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MongoDB > 正文

mongodb 常見問題處理方法收集

2020-10-29 18:47:20
字體:
來源:轉載
供稿:網友

1 非正常關閉服務或關機后 mongod服務無法正常啟動

在使用中發現mongodb 的服務很容易因為非正常關閉而啟動不了,不過解決也很容易
刪除data目錄下的 *.lock文件,再運行下 /mongodb_binpath/mongod -repair -f config文件路徑 再啟動即可
也可以在/etc/init.d/mongod 服務啟動的文件中加入 啟動前刪除該文件 如下:

start() {rm -f /usr/mongodb/data/master/mongod.lock/usr/mongodb/bin/mongod --config /usr/mongodb/config/master.conf}

2、server-side JavaScript execution is disabled

完整信息:JavaScript execution failed: group command failed: { "ok" : 0, "errmsg" : "server-side JavaScript execution is disabled" }
解決方法:mongod.conf 這個配置文件里 noscripting:false 如果true 就是禁止

3、 Decimal轉換成BsonValue值異常

BsonValue 暫不支持 Decimal類型,轉換前強制轉換類型,

if (type==typeof(Decimal)){return Convert.ToDouble(value);}

如果用MongoDB,最好不要用decimal類型,否則在序列化的時候也有問題,可用double

4、MONGO Replica 頻繁插入大數據的問題

MONGO Replica 頻繁插入大數據的問題,當在復制集中頻繁插入大數據時有可能出現 “error RS102 too stale to catch up"出現這個錯誤的原因是SECONDARY即副節點的復制速度跟不上了,當需要批量頻繁向副本集中寫入數據時最好先移除副本節點,待插入完后重新同步。

5 Mongo集群沒有primary但有secondary時連接不上且不能讀數據

#mongodb默認是從主節點讀寫數據的,副本節點上不允許讀,需要設置副本節點可以讀。
shell
1 repset:SECONDARY> db.getMongo().setSlaveOk(); #要在primary上執行
2 rs.slaveOk()
其他客戶端
從secondary 讀數據
如果應用程序沒有設置相應的ReadReference也可能不能進行讀取操作

MongoClientSettings set = new MongoClientSettings();
List<MongoServerAddress> servers = new List<MongoServerAddress>();
servers.Add(new MongoServerAddress("192.168.129.129", 37017));
servers.Add(new MongoServerAddress("192.168.129.129", 37018));
servers.Add(new MongoServerAddress("192.168.129.129", 37019));
set.Servers = servers;

//設置副本集名稱
set.ReplicaSetName = "rs0";
//設置超時時間為3秒
set.ConnectTimeout = new TimeSpan(0, 0, 0, 3, 0);

MongoClient client = new MongoClient(set);
MongoServer server = client.GetServer();
MongoDatabase db = server.GetDatabase("test");
MongoCollection coll = db.GetCollection("test");

注:設置驅動的ReadReference也可以通過MongoDB連接字符串配置:mongodb://example1.com,example2.com,example3.com/?readPreference=secondary。通過連接字符串指定的read preference是針對整個連接。

set.ReadPreference = new ReadPreference(ReadPreferenceMode.PrimaryPreferred);
將ReadPreferenceMode設置成Secondary或SecondaryPreferred

下面是其他網友的補充:

一、
1. addshard 遇到的錯誤 db.runCommand({addshard:”172.16.5.104:20000″}) { “ok” : 0, “errmsg” : “can't use localhost as a shard since all shards need to communicate. either use all shards and configdbs in localhost or all in actual IPs host: 172.16.5.104:20000 isLocalHost:0″ } 遇到這樣的錯誤是由于某些服務啟動在 localhost 地址。 經過檢查發現 route 啟動時,讀取 config 服務是讀取的 localhost 地址: ./mongos

主站蜘蛛池模板: 夏津县| 年辖:市辖区| 车致| 浠水县| 巫溪县| 麟游县| 台东市| 宽城| 乌拉特中旗| 黄大仙区| 汉寿县| 荣昌县| 梓潼县| 奈曼旗| 杂多县| 普安县| 马山县| 镇平县| 阿鲁科尔沁旗| 盐城市| 朝阳市| 鄯善县| 泸溪县| 交口县| 韶关市| 邯郸县| 韶山市| 镇远县| 西林县| 镇巴县| 广西| 淮安市| 连云港市| 奉新县| 手机| 溆浦县| 成安县| 北辰区| 绍兴市| 宿州市| 绍兴市|