- 浏览: 272110 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (298)
- 工作感悟 (6)
- java基础 (23)
- 计算机硬件知识 (1)
- 计算机网络知识 (2)
- Struts (3)
- Srping (4)
- hibernate (0)
- ibatis (0)
- webservice (4)
- Thread (22)
- maven (5)
- ubuntu/linux/centos/redhat (46)
- SSO (1)
- ESB (0)
- 工作流 (0)
- oracle (15)
- 云计算 (1)
- hadoop (1)
- nosql (0)
- mysql (3)
- sqlserver (0)
- jquery (0)
- 分布式 (3)
- 集群 (0)
- 设计模式 (2)
- EJB (0)
- map (0)
- cache (5)
- Niginx+varnish+squid+Ats (14)
- Apache (0)
- 工作/职业规划 (0)
- Scala & Groovy (1)
- English (4)
- 数据结构/算法 (6)
- 开发工具 (5)
- 测试 (2)
- Exception (0)
- 定时器 (3)
- j2ee (2)
- 部署 (1)
- Openssl (1)
- 操作系统 (3)
- kvm (13)
- libvirt (5)
- PostgreSql (5)
- 虚拟化 (3)
- 概念理解 (1)
- virt-manager (1)
- RESTful (3)
- 其它 (4)
- ssh2 (14)
- windows (1)
- 房产 (2)
- svn (1)
- 手机 (1)
- ant (1)
- flume (2)
- sqoop (1)
- fastdfs (5)
- log4j (1)
- SPDY (1)
- mongodb (2)
- MQ (2)
- Mina (1)
- dubbo (4)
- PMP (1)
- Webshpere (2)
- jvm (1)
- Btrace (1)
- zookeeper (7)
- UML (1)
- spring cloud (6)
- spring boot (5)
- storm (0)
- 软件管理 (1)
- elasticsearch (1)
- 协议 (2)
- docker (1)
- 性能 (2)
- 安全 (1)
- 代码规范 (1)
- mqtt (1)
- lombok (1)
- 车联网 (1)
- kafka (1)
最新评论
一 Master和Slave的配置方法
1. 主机器(master)
master: 172.16.101.251
mongodb home: /usr/local/server/mongodb/
data file: /usr/local/server/mongodb/data/
log file: /usr/local/server/mongodb/logs
2. 从机器(slave)
master: 172.16.101.244
mongodb home: /usr/local/server/mongodb/
data file: /usr/local/server/mongodb/data/
log file: /usr/local/server/mongodb/logs
注意:这里,最好是用scp命令把主机器的mongodb的所有目录和文件远程拷贝
到从机器上去, 之前不要去启动,主机器,否则启动从的时候会报错(在
日志文件中可以看到错误:mongodb ERROR: Client::~Client _context should be null but is not; client:replslave)
这样的话, 只需要把数据文件data目录下的所有文件删除,重新启动即可
3. 启动master
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs
--master --oplogSize 64 --logappend --port=27017 --fork
4. 启动slave
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs
--slave --source 172.16.101.251 --only test --slavedelay 10
--logappend --port=27017 --fork
5. 如果需要互为主从的话可以用如下命令(这个我已经测试成功了,并且在主和从都能插入,无论在哪边
插入, 在另外一边都能查看到新的记录)
5.1. 启动master
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs
--master --slave --source 172.16.101.244
--logappend --port=27017 --fork
5.2. 启动slave
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs
--master --slave --source 172.16.101.251 --only test --slavedelay 10
--logappend --port=27017 --fork
6. 测试
在主机器上添加数据
cd /usr/local/server/mongodb/
./bin/mongo
db.foo.save({"id":123456,"name":'liuyuanshijie'});
成功的话可以在从服务器看到数据:
cd /usr/local/server/mongodb/
./bin/mongo
db.foo.find({"id":123})
二 Replica Pairs的配置方法
1. 主机器(master)
master: 172.16.101.251
mongodb home: /usr/local/server/mongodb/
data file: /usr/local/server/mongodb/data/
log file: /usr/local/server/mongodb/logs
2. 从机器(slave)
master: 172.16.101.244
mongodb home: /usr/local/server/mongodb/
data file: /usr/local/server/mongodb/data/
log file: /usr/local/server/mongodb/logs
注意:这里,最好是用scp命令把主机器的mongodb的所有目录和文件远程拷贝
到从机器上去, 之前不要去启动,主机器,否则启动从的时候会报错(在
日志文件中可以看到错误:mongodb ERROR: Client::~Client _context should be null but is not; client:replslave)
这样的话, 只需要把数据文件data目录下的所有文件删除,重新启动即可
3. 启动master
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs\
--pairwith 172.16.101.244 --arbiter <arbiterserver> --logappend --port=27017 --fork
4. 启动slave
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs\
--pairwith 172.16.101.251 --arbiter <arbiterserver> --logappend --port=27017 --fork
注意:--arbiter <arbiterserver>这个参数如果是在同一个路由器下或者同一个主机下的虚拟主机可以不要
5. 查看状态, 在251上
$ ./mongo
> db.$cmd.findOne({ismaster:1});
{ "ismaster" : 0.0 , "remote" : "192.168.58.1:30001" , "ok" : 1.0 }
6. 设置权限 在251上
$ ./mongo 172.101.251/admin
> use local
> db.addUser('repl', <replpassword>);
按ctrl+c退出,然后登陆从服务器
$ ./mongo 172.101.244/admin
> use local
> db.addUser('repl', <replpassword>);
两次的账户和密码必需一致
7. 查看状态 在251上
> db.$cmd.findOne({replacepeer:1});
{
"info" : "adjust local.sources hostname; db restart now required" ,
"ok" : 1.0
}
8. 重启mongodb
db.shutdownServer();
9. 设置从,可以在两个分别都设置,但最好在从上
db.getMongo().setSlaveOk()
10. 测试, 在主上插入数据,然后可以在从上用db.find()查看结果
注意: 这种方式的配置,为互为主从, mongodb自己判断谁是主,谁是从,而且我测试的时候
只能在主一端插入和修改文档,在从一端的话,报错no master
这个问题还有待研究, 知道答案的童鞋可以告诉我们啊,谢谢!
三 参数解释
参数解释: --dbpath 数据库路径(数据文件)
--logpath 日志文件路径
--master 指定为主机器
--slave 指定为从机器
--source 指定主机器的IP地址
--pologSize 命令行参数(与--master一同使用)配置用于存储给从节点可用的更新信息占用的磁盘空间(M为单位),如果不指定这个参数,默认大小为当前可用磁盘空间的5%(64位机器最小值为1G,32位机器为50M)。
--logappend 日志文件末尾添加
--port 启用端口号
--fork 在后台运行
--only 指定只复制哪一个数据库
--slavedelay 指从复制检测的时间间隔
--auth 是否需要验证权限登录(用户名和密码)
-h [ --help ] show this usage information
--version show version information
-f [ --config ] arg configuration file specifying additional options
--port arg specify port number
--bind_ip arg local ip address to bind listener - all local ips
bound by default
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
--dbpath arg (=/data/db/) directory for datafiles 指定数据存放目录
--quiet quieter output 静默模式
--logpath arg file to send all output to instead of stdout 指定日志存放目录
--logappend appnd to logpath instead of over-writing 指定日志是以追加还是以覆盖的方式写入日志文件
--fork fork server process 以创建子进程的方式运行
--cpu periodically show cpu and iowait utilization 周期性的显示cpu和io的使用情况
--noauth run without security 无认证模式运行
--auth run with security 认证模式运行
--objcheck inspect client data for validity on receipt 检查客户端输入数据的有效性检查
--quota enable db quota management 开始数据库配额的管理
--quotaFiles arg number of files allower per db, requires --quota 规定每个数据库允许的文件数
--appsrvpath arg root directory for the babble app server
--nocursors diagnostic/debugging option 调试诊断选项
--nohints ignore query hints 忽略查询命中率
--nohttpinterface disable http interface 关闭http接口,默认是28017
--noscripting disable scripting engine 关闭脚本引擎
--noprealloc disable data file preallocation 关闭数据库文件大小预分配
--smallfiles use a smaller default file size 使用较小的默认文件大小
--nssize arg (=16) .ns file size (in MB) for new databases 新数据库ns文件的默认大小
--diaglog arg 0=off 1=W 2=R 3=both 7=W+some reads 提供的方式,是只读,只写,还是读写都行,还是主要写+部分的读模式
--sysinfo print some diagnostic system information 打印系统诊断信息
--upgrade upgrade db if needed 如果需要就更新数据库
--repair run repair on all dbs 修复所有的数据库
--notablescan do not allow table scans 不运行表扫描
--syncdelay arg (=60) seconds between disk syncs (0 for never) 系统同步刷新磁盘的时间,默认是60s
Replication options:
--master master mode 主复制模式
--slave slave mode 从复制模式
--source arg when slave: specify master as <server:port> 当为从时,指定主的地址和端口
--only arg when slave: specify a single database to replicate 当为从时,指定需要从主复制的单一库
--pairwith arg address of server to pair with
--arbiter arg address of arbiter server 仲裁服务器,在主主中和pair中用到
--autoresync automatically resync if slave data is stale 自动同步从的数据
--oplogSize arg size limit (in MB) for op log 指定操作日志的大小
--opIdMem arg size limit (in bytes) for in memory storage of op ids指定存储操作日志的内存大小
Sharding options:
--configsvr declare this is a config db of a cluster 指定shard中的配置服务器
--shardsvr declare this is a shard db of a cluster 指定shard服务器
1. 主机器(master)
master: 172.16.101.251
mongodb home: /usr/local/server/mongodb/
data file: /usr/local/server/mongodb/data/
log file: /usr/local/server/mongodb/logs
2. 从机器(slave)
master: 172.16.101.244
mongodb home: /usr/local/server/mongodb/
data file: /usr/local/server/mongodb/data/
log file: /usr/local/server/mongodb/logs
注意:这里,最好是用scp命令把主机器的mongodb的所有目录和文件远程拷贝
到从机器上去, 之前不要去启动,主机器,否则启动从的时候会报错(在
日志文件中可以看到错误:mongodb ERROR: Client::~Client _context should be null but is not; client:replslave)
这样的话, 只需要把数据文件data目录下的所有文件删除,重新启动即可
3. 启动master
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs
--master --oplogSize 64 --logappend --port=27017 --fork
4. 启动slave
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs
--slave --source 172.16.101.251 --only test --slavedelay 10
--logappend --port=27017 --fork
5. 如果需要互为主从的话可以用如下命令(这个我已经测试成功了,并且在主和从都能插入,无论在哪边
插入, 在另外一边都能查看到新的记录)
5.1. 启动master
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs
--master --slave --source 172.16.101.244
--logappend --port=27017 --fork
5.2. 启动slave
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs
--master --slave --source 172.16.101.251 --only test --slavedelay 10
--logappend --port=27017 --fork
6. 测试
在主机器上添加数据
cd /usr/local/server/mongodb/
./bin/mongo
db.foo.save({"id":123456,"name":'liuyuanshijie'});
成功的话可以在从服务器看到数据:
cd /usr/local/server/mongodb/
./bin/mongo
db.foo.find({"id":123})
二 Replica Pairs的配置方法
1. 主机器(master)
master: 172.16.101.251
mongodb home: /usr/local/server/mongodb/
data file: /usr/local/server/mongodb/data/
log file: /usr/local/server/mongodb/logs
2. 从机器(slave)
master: 172.16.101.244
mongodb home: /usr/local/server/mongodb/
data file: /usr/local/server/mongodb/data/
log file: /usr/local/server/mongodb/logs
注意:这里,最好是用scp命令把主机器的mongodb的所有目录和文件远程拷贝
到从机器上去, 之前不要去启动,主机器,否则启动从的时候会报错(在
日志文件中可以看到错误:mongodb ERROR: Client::~Client _context should be null but is not; client:replslave)
这样的话, 只需要把数据文件data目录下的所有文件删除,重新启动即可
3. 启动master
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs\
--pairwith 172.16.101.244 --arbiter <arbiterserver> --logappend --port=27017 --fork
4. 启动slave
cd /usr/local/server/mongodb/
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs\
--pairwith 172.16.101.251 --arbiter <arbiterserver> --logappend --port=27017 --fork
注意:--arbiter <arbiterserver>这个参数如果是在同一个路由器下或者同一个主机下的虚拟主机可以不要
5. 查看状态, 在251上
$ ./mongo
> db.$cmd.findOne({ismaster:1});
{ "ismaster" : 0.0 , "remote" : "192.168.58.1:30001" , "ok" : 1.0 }
6. 设置权限 在251上
$ ./mongo 172.101.251/admin
> use local
> db.addUser('repl', <replpassword>);
按ctrl+c退出,然后登陆从服务器
$ ./mongo 172.101.244/admin
> use local
> db.addUser('repl', <replpassword>);
两次的账户和密码必需一致
7. 查看状态 在251上
> db.$cmd.findOne({replacepeer:1});
{
"info" : "adjust local.sources hostname; db restart now required" ,
"ok" : 1.0
}
8. 重启mongodb
db.shutdownServer();
9. 设置从,可以在两个分别都设置,但最好在从上
db.getMongo().setSlaveOk()
10. 测试, 在主上插入数据,然后可以在从上用db.find()查看结果
注意: 这种方式的配置,为互为主从, mongodb自己判断谁是主,谁是从,而且我测试的时候
只能在主一端插入和修改文档,在从一端的话,报错no master
这个问题还有待研究, 知道答案的童鞋可以告诉我们啊,谢谢!
三 参数解释
参数解释: --dbpath 数据库路径(数据文件)
--logpath 日志文件路径
--master 指定为主机器
--slave 指定为从机器
--source 指定主机器的IP地址
--pologSize 命令行参数(与--master一同使用)配置用于存储给从节点可用的更新信息占用的磁盘空间(M为单位),如果不指定这个参数,默认大小为当前可用磁盘空间的5%(64位机器最小值为1G,32位机器为50M)。
--logappend 日志文件末尾添加
--port 启用端口号
--fork 在后台运行
--only 指定只复制哪一个数据库
--slavedelay 指从复制检测的时间间隔
--auth 是否需要验证权限登录(用户名和密码)
-h [ --help ] show this usage information
--version show version information
-f [ --config ] arg configuration file specifying additional options
--port arg specify port number
--bind_ip arg local ip address to bind listener - all local ips
bound by default
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
--dbpath arg (=/data/db/) directory for datafiles 指定数据存放目录
--quiet quieter output 静默模式
--logpath arg file to send all output to instead of stdout 指定日志存放目录
--logappend appnd to logpath instead of over-writing 指定日志是以追加还是以覆盖的方式写入日志文件
--fork fork server process 以创建子进程的方式运行
--cpu periodically show cpu and iowait utilization 周期性的显示cpu和io的使用情况
--noauth run without security 无认证模式运行
--auth run with security 认证模式运行
--objcheck inspect client data for validity on receipt 检查客户端输入数据的有效性检查
--quota enable db quota management 开始数据库配额的管理
--quotaFiles arg number of files allower per db, requires --quota 规定每个数据库允许的文件数
--appsrvpath arg root directory for the babble app server
--nocursors diagnostic/debugging option 调试诊断选项
--nohints ignore query hints 忽略查询命中率
--nohttpinterface disable http interface 关闭http接口,默认是28017
--noscripting disable scripting engine 关闭脚本引擎
--noprealloc disable data file preallocation 关闭数据库文件大小预分配
--smallfiles use a smaller default file size 使用较小的默认文件大小
--nssize arg (=16) .ns file size (in MB) for new databases 新数据库ns文件的默认大小
--diaglog arg 0=off 1=W 2=R 3=both 7=W+some reads 提供的方式,是只读,只写,还是读写都行,还是主要写+部分的读模式
--sysinfo print some diagnostic system information 打印系统诊断信息
--upgrade upgrade db if needed 如果需要就更新数据库
--repair run repair on all dbs 修复所有的数据库
--notablescan do not allow table scans 不运行表扫描
--syncdelay arg (=60) seconds between disk syncs (0 for never) 系统同步刷新磁盘的时间,默认是60s
Replication options:
--master master mode 主复制模式
--slave slave mode 从复制模式
--source arg when slave: specify master as <server:port> 当为从时,指定主的地址和端口
--only arg when slave: specify a single database to replicate 当为从时,指定需要从主复制的单一库
--pairwith arg address of server to pair with
--arbiter arg address of arbiter server 仲裁服务器,在主主中和pair中用到
--autoresync automatically resync if slave data is stale 自动同步从的数据
--oplogSize arg size limit (in MB) for op log 指定操作日志的大小
--opIdMem arg size limit (in bytes) for in memory storage of op ids指定存储操作日志的内存大小
Sharding options:
--configsvr declare this is a config db of a cluster 指定shard中的配置服务器
--shardsvr declare this is a shard db of a cluster 指定shard服务器
相关推荐
### MongoDB Linux 主从配置安装手册 #### 版本说明 - **操作系统**: Red Hat Enterprise Linux 6 (64位) - **MongoDB版本**: 3.0.3 #### 步骤一:下载与...希望这些步骤能帮助您更好地理解和应用MongoDB主从配置。
mongodb在Linux下安装配置,集群搭建,分片持久化等,MongoDB安装和配置_for_Linux.doc
详解mongoDB主从复制搭建详细过程 实验目的搭建mongoDB主从复制 主 192.168.0.4 从 192.168.0.7 mongodb的安装 1: 下载mongodb www.mongodb.org 下载最新的stable版 查看自己服务器 适合哪个种方式下载(wget 不...
本案例基于 Linux 环境进行 MongoDB 主从备份的配置。具体步骤如下: 1. **创建备份数据库文件夹** 在 MongoDB 的 `db` 文件夹下新建一个名为 `slave1` 的文件夹,用于存放从节点的备份数据。 ```bash mkdir ...
总之,部署MongoDB在Linux环境中的主要步骤包括下载和安装软件、配置数据库、创建数据和日志目录、启动服务以及设置主从复制。在生产环境中,确保正确配置和监控MongoDB的运行状态至关重要,以确保数据的安全性和...
在本文中,我们将深入探讨 MongoDB 的安装配置过程,主从复制机制,以及备份与恢复策略。 ### 安装配置 安装 MongoDB 的步骤如下: 1. **下载 MongoDB**:首先,你需要从 MongoDB 官方网站或者通过 `wget` 命令...
- `--master` 和 `--slave`:用于配置主从复制。 - `--port`:设定MongoDB监听的端口。 - `--fork`:让MongoDB在后台运行。 - `--auth`:启用身份验证。 - `--logappend`:日志追加模式,而不是覆盖。 - 其他...
本文将详细介绍如何在 Linux 系统上安装和配置 MongoDB,并提供一些基本的操作指南。 #### 二、环境准备 1. **Linux 版本**: - 使用的 Linux 版本为 2.6.32-573.26.1.el6.x86_64。 - 确保系统已更新至最新状态。...
本手册将深入探讨Linux环境下数据库的配置与管理,以帮助你更好地理解和掌握相关知识。 一、Linux数据库选择 在Linux上,常见的数据库系统有MySQL、PostgreSQL、MongoDB、Oracle等。MySQL是应用最广泛的开源关系型...
- **Repl Set (副本集):** 主从配置,主要用于数据的备份。 - **Chunks (数据块):** 分布式存储时,数据会被分成多个chunks存储在不同的shard上。 **3. 搭建步骤** - **下载MongoDB:** `wget ...
Master-Slave架构是一种简单的主从复制模型,其中一台或多台从服务器(slaves)会复制主服务器(master)的数据。在这种架构中,所有写操作都在主服务器上完成,而从服务器主要用于读操作或作为备份。 **搭建步骤:** 1...
#### 二、Linux下MongoDB的安装与配置 **安装步骤:** 1. **Yum方式安装**: - 添加官方Yum仓库。 - 使用Yum安装MongoDB服务。 2. **手动安装**: - 下载MongoDB的Linux发行版。 - 解压缩并移动至安装目录。 ...
2. **Replica Set**:主从配置(master-slave),需要注意的是,在MongoDB中,写操作只能在主节点上进行,从节点仅作为备份。 3. **Chunks**:每个副本集下面分为多个chunks,根据规则存储在不同的chunks中。所有...
通过在Linux环境下安装MongoDB,可以快速搭建一个基本的单实例环境。安装时,需要创建数据存储的文件夹,下载安装包,解压后执行启动命令,启动一个单节点的MongoDB服务。此外,MongoDB还提供了一个Web界面,方便...
- 在Windows/Linux/MacOS上安装MongoDB的方法。 - 启动与停止MongoDB服务的基本命令。 **第2讲:MongoDB基本概念** - 文档、集合与数据库的基本概念。 - 数据模型设计原则。 - 常见的数据类型及使用场景。 **第3讲...
本文将详细介绍如何在 Linux 系统上安装并配置 MongoDB 集群。 #### 二、准备工作 1. **系统环境**:假设您已经具备了运行 Linux 的服务器环境。 2. **软件包**:确保已经下载了 MongoDB 的安装包,并且解压到了...
11.3 主从配置信息 11.4 管理维护复制集 11.4.1 读写分离 11.4.2 故障转移 11.4.3 增减节点 11.5 工作原理 11.5.1 主从操作日志oplog 11.5.2 同步 11.5.3 复制状态和本地数据库 11.5.4 ...
本《Linux数据库配置手册》旨在提供详尽的指南,帮助读者掌握如何在Linux环境下配置和管理数据库系统。以下是一些关键的知识点,涵盖了从基础概念到高级技巧。 1. **Linux基础知识**:了解Linux操作系统的基本架构...
3. 配置文件:MongoDB的配置文件通常为`mongod.conf`,在此文件中可以设置端口、数据存储目录、日志路径等参数。 二、复制集的创建 1. 初始化复制集:至少需要三个节点,包括一个主节点(Primary)和两个从节点...