Home Database Mysql Tutorial mongoDB的两个特性:主从复制、副本集

mongoDB的两个特性:主从复制、副本集

Jun 07, 2016 pm 03:54 PM
mongodb one copy copy characteristic

一、主从复制 1.主从复制是一个简单的数据库同步备份的集群技术. 1.1在数据库集群中要明确的知道谁是主服务器,主服务器只有一台. 1.2从服务器要知道自己的数据源也就是对于的主服务是谁. 1.3--master用来确定主服务器,--slave 和 –source 来控制从服务器 1.

一、主从复制

1.主从复制是一个简单的数据库同步备份的集群技术.

\

1.1在数据库集群中要明确的知道谁是主服务器,主服务器只有一台.

1.2从服务器要知道自己的数据源也就是对于的主服务是谁.

1.3--master用来确定主服务器,--slave 和 –source 来控制从服务器

1.主从复制集群案例

\

2.主从复制的其他设置项

--only 从节点->指定复制某个数据库,默认是复制全部数据库

--slavedelay 从节点->设置主数据库同步数据的延迟(单位是秒)

--fastsync 从节点->以主数据库的节点快照为节点启动从数据库

--autoresync 从节点->如果不同步则从新同步数据库

--oplogSize 主节点->设置oplog的大小(主节点操作记录存储到local的oplog中)

3.利用shell动态添加和删除从节点

不难看出从节点中关于主节点的信息全部存到local的sources的集合中

我们只要对集合进行操作就可以动态操作主从关系

挂接主节点:操作之前只留下从数据库服务

db.sources.insert({“host”:”127.0.0.1:8888”})

删除已经挂接的主节点:操作之前只留下从数据库服务

db.sources.remove({“host”:”127.0.0.1:8888”})

二、副本集概念

\

1.1第一张图表明A是活跃的B和C是用于备份的

1.2第二张图当A出现了故障,这时候集群根据权重算法推选出B为活跃的数据库

1.3第三张图当A恢复后他自动又会变为备份数据库

\

2.初始化副本集

use admin

db.runCommand({"replSetInitiate":

{

"_id":'child',

"members":[{

"_id":1,

"host":"127.0.0.1:1111"

},{

"_id":2,

"host":"127.0.0.1:2222"

},{

"_id":3,

"host":"127.0.0.1:3333"

}]

}

})

2.查看副本集状态

rs.status()

3.节点和初始化高级参数

standard 常规节点:参与投票有可能成为活跃节点

passive 副本节点:参与投票,但是不能成为活跃节点

arbiter 仲裁节点:只是参与投票不复制节点也不能成为活跃节点

4.高级参数

Priority 0到1000之间 ,0代表是副本节点 ,1到1000是常规节点

arbiterOnly : true 仲裁节点

用法

members":[{

"_id":1,

"host":"127.0.0.1:1111“,

arbiterOnly : true

}]”

5.优先级相同时候仲裁组建的规则

对于优先级相同的时候会根据时间,比如:A是活跃节点,B、C为副本集的时候,

当A宕机的时候,mongo会选择B、C中更新时间最近的为活跃节点。

6.读写分离操作à扩展读

6.1一般情况下作为副本的节点是不能进行数据库读操作的

但是在读取密集型的系统中读写分离是十分必要的

6.2设置读写分离

slaveOkay : true

很遗憾他在shell中无法掩饰,这个特性是被写到mongoDB的

驱动程序中的,在java和node等其他语言中可以完成

7.Oplog

他是被存储在本地数据库local中的,他的每一个文档保证这一个节点操作

如果想故障恢复可以更彻底oplog可已经尽量设置大一些用来保存更多的操作

信息

改变oplog大小

主库 --master --oplogSize size

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

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
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)

Hot Topics

Java Tutorial
1671
14
PHP Tutorial
1276
29
C# Tutorial
1256
24
Use Composer to solve the dilemma of recommendation systems: andres-montanez/recommendations-bundle Use Composer to solve the dilemma of recommendation systems: andres-montanez/recommendations-bundle Apr 18, 2025 am 11:48 AM

When developing an e-commerce website, I encountered a difficult problem: how to provide users with personalized product recommendations. Initially, I tried some simple recommendation algorithms, but the results were not ideal, and user satisfaction was also affected. In order to improve the accuracy and efficiency of the recommendation system, I decided to adopt a more professional solution. Finally, I installed andres-montanez/recommendations-bundle through Composer, which not only solved my problem, but also greatly improved the performance of the recommendation system. You can learn composer through the following address:

Navicat's method to view MongoDB database password Navicat's method to view MongoDB database password Apr 08, 2025 pm 09:39 PM

It is impossible to view MongoDB password directly through Navicat because it is stored as hash values. How to retrieve lost passwords: 1. Reset passwords; 2. Check configuration files (may contain hash values); 3. Check codes (may hardcode passwords).

How to choose a database for GitLab on CentOS How to choose a database for GitLab on CentOS Apr 14, 2025 pm 04:48 PM

GitLab Database Deployment Guide on CentOS System Selecting the right database is a key step in successfully deploying GitLab. GitLab is compatible with a variety of databases, including MySQL, PostgreSQL, and MongoDB. This article will explain in detail how to select and configure these databases. Database selection recommendation MySQL: a widely used relational database management system (RDBMS), with stable performance and suitable for most GitLab deployment scenarios. PostgreSQL: Powerful open source RDBMS, supports complex queries and advanced features, suitable for handling large data sets. MongoDB: Popular NoSQL database, good at handling sea

What is the CentOS MongoDB backup strategy? What is the CentOS MongoDB backup strategy? Apr 14, 2025 pm 04:51 PM

Detailed explanation of MongoDB efficient backup strategy under CentOS system This article will introduce in detail the various strategies for implementing MongoDB backup on CentOS system to ensure data security and business continuity. We will cover manual backups, timed backups, automated script backups, and backup methods in Docker container environments, and provide best practices for backup file management. Manual backup: Use the mongodump command to perform manual full backup, for example: mongodump-hlocalhost:27017-u username-p password-d database name-o/backup directory This command will export the data and metadata of the specified database to the specified backup directory.

MongoDB and relational database: a comprehensive comparison MongoDB and relational database: a comprehensive comparison Apr 08, 2025 pm 06:30 PM

MongoDB and relational database: In-depth comparison This article will explore in-depth the differences between NoSQL database MongoDB and traditional relational databases (such as MySQL and SQLServer). Relational databases use table structures of rows and columns to organize data, while MongoDB uses flexible document-oriented models to better suit the needs of modern applications. Mainly differentiates data structures: Relational databases use predefined schema tables to store data, and relationships between tables are established through primary keys and foreign keys; MongoDB uses JSON-like BSON documents to store them in a collection, and each document structure can be independently changed to achieve pattern-free design. Architectural design: Relational databases need to pre-defined fixed schema; MongoDB supports

How to set up users in mongodb How to set up users in mongodb Apr 12, 2025 am 08:51 AM

To set up a MongoDB user, follow these steps: 1. Connect to the server and create an administrator user. 2. Create a database to grant users access. 3. Use the createUser command to create a user and specify their role and database access rights. 4. Use the getUsers command to check the created user. 5. Optionally set other permissions or grant users permissions to a specific collection.

How to encrypt data in Debian MongoDB How to encrypt data in Debian MongoDB Apr 12, 2025 pm 08:03 PM

Encrypting MongoDB database on a Debian system requires following the following steps: Step 1: Install MongoDB First, make sure your Debian system has MongoDB installed. If not, please refer to the official MongoDB document for installation: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/Step 2: Generate the encryption key file Create a file containing the encryption key and set the correct permissions: ddif=/dev/urandomof=/etc/mongodb-keyfilebs=512

What are the tools to connect to mongodb What are the tools to connect to mongodb Apr 12, 2025 am 06:51 AM

The main tools for connecting to MongoDB are: 1. MongoDB Shell, suitable for quickly viewing data and performing simple operations; 2. Programming language drivers (such as PyMongo, MongoDB Java Driver, MongoDB Node.js Driver), suitable for application development, but you need to master the usage methods; 3. GUI tools (such as Robo 3T, Compass) provide a graphical interface for beginners and quick data viewing. When selecting tools, you need to consider application scenarios and technology stacks, and pay attention to connection string configuration, permission management and performance optimization, such as using connection pools and indexes.

See all articles