Home Database Mysql Tutorial MongoDB 副本集自动复制 Replica Set

MongoDB 副本集自动复制 Replica Set

Jun 07, 2016 pm 04:47 PM
mongodb

MongoDB部署实验系列文章,MongoDB做为NoSQL数据库,最近几年持续升温,越来越多的企业都开始尝试用MongoDB代替原有Database做一

MongoDB部署实验系列文章,MongoDB做为NoSQL数据库,最近几年持续升温,越来越多的企业都开始尝试用MongoDB代替原有Database做一些事情。MongoDB也在集群,分片,复制上也有相当不错的的表现。我通过将做各种MongoDB的部署实验进行介绍。

第二篇 MongoDB 副本集自动复制 Replica Set,分为7个部分
 1.初始化文件目录
 2.启动副本集 Replica Set
 3.模拟 PRIMARY失败,SECONDARY自动切换
 4.修复失败节点
 5.恢复失败节点,补充到SECONDARY
 6.删除一个Replica Set节点
 7.新增加一个Replica Set节点


 
系统环境介绍:
 
Ubuntu 12.04. LTS 64bit Server 
 
初始化文件目录
 
~ pwd
 /home/conan/dbs
 
~ mkdir node1 node2 node3
 ~ ls -l
 drwxrwxr-x 2 conan conan 4096 May 31 14:21 node1
 drwxrwxr-x 2 conan conan 4096 May 31 14:21 node2
 drwxrwxr-x 2 conan conan 4096 May 31 14:21 node3
 

 
 
启动副本集 Replica Set
 
启动node1,node2,node3
 
mongod --dbpath /home/conan/dbs/node1 --port 10001 --replSet blort --nojournal --fork --logpath /home/conan/dbs/node1.log
 mongod --dbpath /home/conan/dbs/node2 --port 10002 --replSet blort --nojournal --fork --logpath /home/conan/dbs/node2.log
 mongod --dbpath /home/conan/dbs/node3 --port 10003 --replSet blort --nojournal --fork --logpath /home/conan/dbs/node3.log
 

副本集初始化
 
~ mongo localhost:10001
 MongoDB shell version: 2.4.3
 connecting to: localhost:10001/test
 > rs.initiate({_id:"blort",members:[
 {_id:1,host:"localhost:10001"},
 {_id:2,host:"localhost:10002"},
 {_id:3,host:"localhost:10003"},
 ]})
 {
 "info" : "Config now saved locally. Should come online in about a minute.",
 "ok" : 1
 }
 
查看日志信息:node1变选为PRIMARY,node2,node3分别是2个SECONDARY
 
Fri May 31 14:26:44.728 [conn2] ******
 Fri May 31 14:26:44.728 [conn2] replSet info saving a newer config version to local.system.replset
 Fri May 31 14:26:44.741 [conn2] replSet saveConfigLocally done
 Fri May 31 14:26:44.741 [conn2] replSet replSetInitiate config now saved locally. Should come online in about a minute.
 Fri May 31 14:26:44.741 [conn2] command admin.$cmd command: { replSetInitiate: { _id: "blort", members: [ { _id: 1.0, host: "localhost:10001" }, { _id: 2.0, host: "localhost:10002" }, { _id: 3.0, host: "localhost:10003" } ] } } ntoreturn:1 keyUpdates:0 locks(micros) W:646741 reslen:112 652ms
 Fri May 31 14:26:53.682 [rsStart] replSet I am localhost:10001
 Fri May 31 14:26:53.682 [rsStart] replSet STARTUP2
 Fri May 31 14:26:53.683 [rsHealthPoll] replSet member localhost:10002 is up
 Fri May 31 14:26:53.684 [rsHealthPoll] replSet member localhost:10003 is up
 Fri May 31 14:26:54.285 [initandlisten] connection accepted from 127.0.0.1:46469 #3 (3 connections now open)
 Fri May 31 14:26:54.683 [rsSync] replSet SECONDARY
 

用mongo客户端查看设置
 node1连接
 
~ mongo localhost:10001
 MongoDB shell version: 2.4.3
 connecting to: localhost:10001/test
 blort:PRIMARY> rs.status()
 {
 "set" : "blort",
 "date" : ISODate("2013-05-31T06:34:12Z"),
 "myState" : 1,
 "members" : [
 {
 "_id" : 1,
 "name" : "localhost:10001",
 "health" : 1,
 "state" : 1,
 "stateStr" : "PRIMARY",
 "uptime" : 659,
 "optime" : {
 "t" : 1369981604,
 "i" : 1
 },
 "optimeDate" : ISODate("2013-05-31T06:26:44Z"),
 "self" : true
 },
 {
 "_id" : 2,
 "name" : "localhost:10002",
 "health" : 1,
 "state" : 2,
 "stateStr" : "SECONDARY",
 "uptime" : 439,
 "optime" : {
 "t" : 1369981604,
 "i" : 1
 },
 "optimeDate" : ISODate("2013-05-31T06:26:44Z"),
 "lastHeartbeat" : ISODate("2013-05-31T06:34:11Z"),
 "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
 "pingMs" : 0,
 "syncingTo" : "localhost:10001"
 },
 {
 "_id" : 3,
 "name" : "localhost:10003",
 "health" : 1,
 "state" : 2,
 "stateStr" : "SECONDARY",
 "uptime" : 439,
 "optime" : {
 "t" : 1369981604,
 "i" : 1
 },
 "optimeDate" : ISODate("2013-05-31T06:26:44Z"),
 "lastHeartbeat" : ISODate("2013-05-31T06:34:11Z"),
 "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
 "pingMs" : 0,
 "syncingTo" : "localhost:10001"
 }
 ],
 "ok" : 1
 }
 

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Which version is generally used for mongodb? Which version is generally used for mongodb? Apr 07, 2024 pm 05:48 PM

It is recommended to use the latest version of MongoDB (currently 5.0) as it provides the latest features and improvements. When selecting a version, you need to consider functional requirements, compatibility, stability, and community support. For example, the latest version has features such as transactions and aggregation pipeline optimization. Make sure the version is compatible with the application. For production environments, choose the long-term support version. The latest version has more active community support.

The difference between nodejs and vuejs The difference between nodejs and vuejs Apr 21, 2024 am 04:17 AM

Node.js is a server-side JavaScript runtime, while Vue.js is a client-side JavaScript framework for creating interactive user interfaces. Node.js is used for server-side development, such as back-end service API development and data processing, while Vue.js is used for client-side development, such as single-page applications and responsive user interfaces.

Experience sharing on implementing real-time recommendation system using MongoDB Experience sharing on implementing real-time recommendation system using MongoDB Nov 03, 2023 pm 04:37 PM

With the development of the Internet, people's lives are becoming more and more digital, and the demand for personalization is becoming stronger and stronger. In this era of information explosion, users are often faced with massive amounts of information and have no choice, so the importance of real-time recommendation systems has become increasingly prominent. This article will share the experience of using MongoDB to implement a real-time recommendation system, hoping to provide some inspiration and help to developers. 1. Introduction to MongoDB MongoDB is an open source NoSQL database known for its high performance, easy scalability and flexible data model. Compared to biography

Where is the database created by mongodb? Where is the database created by mongodb? Apr 07, 2024 pm 05:39 PM

The data of the MongoDB database is stored in the specified data directory, which can be located in the local file system, network file system or cloud storage. The specific location is as follows: Local file system: The default path is Linux/macOS:/data/db, Windows: C:\data\db. Network file system: The path depends on the file system. Cloud Storage: The path is determined by the cloud storage provider.

What are the advantages of mongodb database What are the advantages of mongodb database Apr 07, 2024 pm 05:21 PM

The MongoDB database is known for its flexibility, scalability, and high performance. Its advantages include: a document data model that allows data to be stored in a flexible and unstructured way. Horizontal scalability to multiple servers via sharding. Query flexibility, supporting complex queries and aggregation operations. Data replication and fault tolerance ensure data redundancy and high availability. JSON support for easy integration with front-end applications. High performance for fast response even when processing large amounts of data. Open source, customizable and free to use.

What does mongodb mean? What does mongodb mean? Apr 07, 2024 pm 05:57 PM

MongoDB is a document-oriented, distributed database system used to store and manage large amounts of structured and unstructured data. Its core concepts include document storage and distribution, and its main features include dynamic schema, indexing, aggregation, map-reduce and replication. It is widely used in content management systems, e-commerce platforms, social media websites, IoT applications, and mobile application development.

How to open mongodb How to open mongodb Apr 07, 2024 pm 06:15 PM

On Linux/macOS: Create the data directory and start the "mongod" service. On Windows: Create the data directory and start the MongoDB service from Service Manager. In Docker: Run the "docker run" command. On other platforms: Please consult the MongoDB documentation. Verification method: Run the "mongo" command to connect and view the server version.

Where are the mongodb database files? Where are the mongodb database files? Apr 07, 2024 pm 05:42 PM

The MongoDB database file is located in the MongoDB data directory, which is /data/db by default, which contains .bson (document data), ns (collection information), journal (write operation records), wiredTiger (data when using the WiredTiger storage engine ) and config (database configuration information) and other files.

See all articles