差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
it:database:mongodbreplication [2021-12-21 22:09] – [实际执行] goldentianyait:database:mongodbreplication [2022-08-12 05:20] (当前版本) – [MongoDB 副本集] goldentianya
行 6: 行 6:
 单版本的数据库连接通常为 <color #ff7f27>''%%mongodb://localhost:20271%%''</color>,而多副本的连接可以是 <color #ff7f27>''%%mongodb://localhost:20271,localhost:20272,localhost:20273?replicaSet=myRepl 单版本的数据库连接通常为 <color #ff7f27>''%%mongodb://localhost:20271%%''</color>,而多副本的连接可以是 <color #ff7f27>''%%mongodb://localhost:20271,localhost:20272,localhost:20273?replicaSet=myRepl
 %%''</color> %%''</color>
 +
 +  mongodb://user:password@serverwin,serverfin:33720/?replicaSet=stockdb&readPreference=nearest&wtimeoutMS=20000
  
 创建三个目录用来安装不同的MongoDB 创建三个目录用来安装不同的MongoDB
行 29: 行 31:
 第一个副本还没有用户的时候可以用管理员 <color #ff7f27>''%%> use admin%%''</color> 切换到管理员。 第一个副本还没有用户的时候可以用管理员 <color #ff7f27>''%%> use admin%%''</color> 切换到管理员。
  
-允许在副本集中读取数据 <color #ff7f27>''%%rs.slaveOK()%%''</color>+允许在副本集中读取数据 <color #ff7f27>''%%rs.secondaryOk()%%''</color>
  
 ====== 实际执行 ====== ====== 实际执行 ======
行 35: 行 37:
 准备三个服务器: 准备三个服务器:
   * 主服务器:88.153.172.7:33720 (局域网内地址是 192.168.0.157)   * 主服务器:88.153.172.7:33720 (局域网内地址是 192.168.0.157)
-  * 副本集:143.47.185.127:33720 (finsever+  * 副本集:141.144.205.48:33720  (serverfin
-  * 仲裁集:217.160.61.19:33720  (serverionos)+  * 仲裁集:143.47.185.127:33720  (serveroracle)
  
 编辑 /etc/hosts 文件,让所有的机器互相知道。否则会一直卡住联不通 编辑 /etc/hosts 文件,让所有的机器互相知道。否则会一直卡住联不通
行 45: 行 47:
 </code> </code>
  
-第一步:修改 /etc/mongod.conf (暂时取消认证)+第一步:修改 <color #ff7f27>''%%/etc/mongod.conf%%''</color> (暂时取消认证)
 <code> <code>
 replication: replication:
行 76: 行 78:
 security: security:
   authorization: enabled   authorization: enabled
-  clusterAuthMode: keyFile 
   keyFile: /home/mongo/rs0.key   keyFile: /home/mongo/rs0.key
 </code> </code>
行 90: 行 91:
 </code> </code>
  
-**注意事项** +:!: <color #ed1c24>注意事项</color>
- +
-当副本集的数据量比较大的时候,我们添加新的节点的时候,如果使用初始化同步的话,会给主节点造成比较大的压力。我们有以下选择: +
- +
-  * 暂停当前副本集中的一个次节点,然后将 次节点的数据(data)复制到要新添加的节点的数据目录。然后再将两个节点启动。(建议先测试) +
- +
-如果要复制数据文件,请确保您的副本包含local数据库的内容。 +
- +
-  * 指定同步节点 rs.syncFrom(hostportstr),指定同步节点为次节点,默认的是同步节点 是主节点。+
  
-是该设置重新启动节点,或者同步指定的新节点的连接被关闭了,是会失效的。(建议先测试)+  * CPU还算好,服务器的内存不能太小。至少要4G以上。否则只适合作为「仲裁」。 
 +  * 必须要单数子集。一主两副,或者一主一副一仲裁。 
 +  * security 和 replSet 可以未接入 replication 前就开启的。 
 +  * keyfile 需设成 chmod 600 ,否则无法启动 mongod 服务 
 +  * 各个主机必须互相认识(设置 /etc/hosts) 
 +  * 如果长时间停留在状态 <color #ed1c24>TARTUP</color>,说明PRIMARY已经认出了副本集,但副本集电脑没有认出主集,或者自己名字需要修改 /etc/hosts 文件。服务器名指向自己的时候可以设为 127.0.0.1
  
 添加仲裁节点时要修改写策略 (查看官网说明((a>[[https://docs.mongodb.com/manual/reference/command/setDefaultRWConcern/#setdefaultrwconcern|官网说明]])) 中的 **Example** ) 添加仲裁节点时要修改写策略 (查看官网说明((a>[[https://docs.mongodb.com/manual/reference/command/setDefaultRWConcern/#setdefaultrwconcern|官网说明]])) 中的 **Example** )
行 117: 行 115:
 </WRAP> </WRAP>
  
-Oracle Cloud 的1核1G内存实例作为副节点会经常宕机。原因是内存不足,一次更新就会占用掉1G的内存。因此微小实例只能用作「仲裁」角色。+Oracle Cloud 的1核1G内存实例作为副节点会经常宕机。原因是内存不足,一次更新就会占用掉1G的内存。因此微小实例只能用作「仲裁」角色。而仲裁角色也非常重要,否则无论副集还是主集宕机,都会导致数据库不能用
  
  
it/database/mongodbreplication.1640124562.txt.gz · 最后更改: 2021-12-21 22:09 由 goldentianya
回到顶部
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0