MongoDB的java,_主从复制节点的动态整合

从这一点上,我们主要讨论mondb部署技术。

我们知道,SQL Server可以读写分离,热备份和集群部署,而mondb可以做到这一点,我们不希望使用的数据库在实际应用中的一个单点部署,如果数据库停机或破坏,是可怕的。

一:主从复制

1:先看一下模型图。


2:从上面的图形中我们可以分析这种架构的优点如下:

数据备份。

数据恢复。

读写分离。

3:让我们一个一个练习。

在实际应用中,我们肯定是一个多服务器部署。限于我们自己的懒惰虚拟机,它是在机器上进行的。

第一步:我们把mondb文件夹在D盘和E盘,把它放在多个服务器。

第二步:开始在D盘的mondb,并指定数据库作为主数据库。事实上,命令很简单:> mondb --独立= 'xxx --硕士,

端口或默认值27017。


第三步是在以同样的方式开始mondb E盘,指定的数据库是一个从属的数据库,并且命令也很简单。当然,我们需要改变一个端口,例如,8888。

源表示主数据库的地址。

>蒙德——mdbquot = XXXX端口= 8888 = 127.0.0.1:27017奴隶--来源--


第四步:从图片上的红色区域,我们发现了这样一句话:应用1操作,它发生的时间为10s,即下级数据库为10s。

同步数据同步到主数据库,并同步的基础是找到主数据库的oplog日志,和sync_pulloplog可以在图中红色区域发现。

下一步我们要做的是测试,我们惊讶地发现数据已经更新和刷新。


4:如果我想添加一个下属的数据库,但是我不想指定在启动,但后来指定,然后可以mondb吗答案当然是正确的。

我们的主数据库或从属数据库有一组称为本地的,主要用于存储内部复制信息。

好吧,让我们试试看。我会复制一份在F盘的mondb运行程序,和CMD窗口要好得多,人们不要搞砸了。


看上面的日志。如果没有主数据库也没关系。我们会找到良心,以后再给他补助。哈哈,让我们打开另一个CMD窗口。

在源,添加一个主机地址,然后数据被同步到127.0.0.1:5555依赖数据库…


5:读写分离

此方法在更大的体系结构中实现。在mondb,很简单。默认情况下,从属数据库不支持数据读取,但这并不重要。

在驱动程序,我们提供了一个数据库,称为slaveokay让我们读来减轻主数据库的性能压力下属数据库。

二:副本集

这也是牛X的主要集群,但有两个点与上面的簇不同。

群集没有特定的主数据库。

如果主数据库是下行的,则集群会选择一个从属数据库作为主数据库,上面有自动故障恢复功能,非常牛X。

好吧,我们现在就试试看。首先,关闭所有的CMD窗口,并清除db下的所有文件。

第一步:因为我们要构建集群,所以必须得到一个集群名。在这里,我们把公司的名字和replset shopex,这让服务器知道有下shopex其他数据库。

在这里,在D盘的mondb程序打开,和端口2222。指定的端口3333的另一个数据库服务器集群下shopex。


第二步:既然上面说3333是另一个数据库服务器,不要急,现在开放,这里的E盘mondb程序打开。


第三步:好的,看看上面的原木红色区域。看来我们还没有完成。是的,日志信息告诉我们初始化副本集。既然日志是这么说的,那我就。

通过这种方式,您可以轻松地连接到任何服务器,但一定要进入管理集合。


第四步:成功后,我们要看谁能成为主要的数据库服务器,你可以看到端口2222已经成为主要的数据库服务器。


第五步:我们知道有SQL Server中的仲裁服务器,所以也有mondb。与SQL Server一样,仲裁只参与投票。我们到了。

的F盘mondb作为仲裁服务器,然后在shopex集群任何服务器端口被指定,这里指定的是2222。


然后我们使用rs.addarb()添加管理员组。


加入后,我们用rs.status()到集群中看到服务器的状态。我们可以清楚地看到谁是主人、奴隶或仲裁人。


这是否意味着集群有自动故障恢复那我们可以试试看。在2222个端口上,CMD服务器用Ctrl + C来删除服务器,我们立即找到它。

在3333端口,从服务器上,并可以再次使用rs.status()看集群中的服务器状态。


以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。