楼主: hwayw

话题讨论:MongoDB数据存储可靠性如何

[复制链接]
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
21#
发表于 2012-3-10 09:35 | 只看该作者
我们公司客户管理系统在用nosql ,比较适合于资讯和日志类数据库

使用道具 举报

回复
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
22#
发表于 2012-3-10 09:37 | 只看该作者


mongoDB部署对硬件有哪些要求?
# --- mongodb hardware spec checklist ---

1. servers
[ ] 千兆内网网卡
[ ] 两台(等同配置) server 给每对master/slave shard - 即初始化时候就会有两台主机

[ ] 独立任务主机(可以是虚拟主机,但是不能运行其它的任务 )
[ ] 根据索引大小配置的内存 - 原则上越多越好
[ ] 双核高速CPU (不必要更多核,因为mongodb也用不上)
[ ] 最好有一台多核的低内存server上跑mongos调度程序,如果资源不足
可以将 mongos运行在每个需要调用mongodb的前端server上
但是不支持将mongos运行在mongodb 数据server上(因为mongos比较消耗cpu资源)
[ ] 最好server有独立的挂载盘(>100G)提供给mongodb存放数据以隔离io操作


2. system level
[ ] 64-bit linux
[ ] 禁止文件系统更新读取次数统计 (xfs可省略)
mount -o remount,noatime /data
/etc/fstab
[ ] mongodb 使用大的文件保存数据,并且会preallocates这些文件。所以建议使用ext4/xfs这样的filesystem
[ ] 不要使用large vm page
cat /proc/meminfo | grep Huge
[ ] 为了避免Sharded cluster和replica sets之间出现socket error, 降低确省的
TCP keepalive time 从7200 seconds到300s在所有的mongodb/mongos服务器
cat /proc/sys/net/ipv4/tcp_keepalive_time
echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time
[ ] 调整ulimit 从确省的1024到比较合理的数值
echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time
[ ] 调整ulimit 从确省的1024到比较合理的数值
- check ulimit
ulimit -a
- 设置系统全局的ulimit
/etc/security/limits.conf
* soft nofile 12000
* hard nofile 16000
/etc/ssh/sshd_config
UsePAM yes

- 如果使用centos时候调整
/etc/sysconfig/mongod
NFILES=65535
- 或者可以直接在启动mongod时候加入设置调整
ulimit -n 20000; mongod --maxConns 10000

[ ] 如果/data必须和系统盘放在一起,考虑停止 syslog的sync
/etc/syslog.conf
*.info;mail.none;authpriv.none;cron.none -/var/log/messages

[ ] numa问题 for 多核server, 加入启动参数
numactl --interleave=all /path/to/mongod

使用道具 举报

回复
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
23#
发表于 2012-3-10 09:39 | 只看该作者
4、当MongoDB数据出现问题时,是否可以执行Kill -9?


这和 MongoDB 的存储方式有关,MongoDB 使用 mmap 的方式进行数据文件管理,也就是说写操作基本是在内存中进行的,写操作会被阶段性地flush到磁盘,而不是立刻写到磁盘的(默认是60秒,由 syncdelay 设定)。而在数据未开始flush前(比如在离上一次flush 59 秒时),我们如果执行 Kill -9 操作,则在这59秒内的写操作将全部丢失。但庆幸的是我们只是丢了这59秒内的这一部分数据。

而如果在我们进行flush 操作的时候执行Kill -9操作,则会造成数据文件错乱,一部分是新数据一部分是旧数据,那我们的所有数据可能就都不能恢复了。

使用道具 举报

回复
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
24#
发表于 2012-3-10 09:42 | 只看该作者
不太稳定,特别是auto-sharding目前还有很多问题。
不支持SQL,这意味着你很多通过SQL接口的工具不再适用
持久化,MongoDB单机可靠性不太好,宕机可能丢失一段时间的数据

使用道具 举报

回复
论坛徽章:
78
ITPUB15周年纪念
日期:2020-08-28 17:23:53双鱼座
日期:2016-03-19 19:38:31秀才
日期:2016-02-18 09:31:52秀才
日期:2016-01-25 15:02:04双子座
日期:2016-01-19 20:35:54秀才
日期:2016-01-13 12:14:26秀才
日期:2015-12-25 15:31:10秀才
日期:2015-12-18 09:28:57秀才
日期:2015-12-14 14:56:09秀才
日期:2015-12-14 14:51:16
25#
发表于 2012-3-10 12:39 | 只看该作者
NOSQL几乎没几个是为了提升一致性和持久性而设计的。哪壶不开提哪壶嘛,呵呵。

使用道具 举报

回复
论坛徽章:
0
26#
发表于 2012-3-10 17:40 | 只看该作者
各有各的优势,nosql的出现是由于用户的需求与技术的进步。取代RDBMS是不可能的。虽然在一些场景下RDBMS没有优势,但是RDBMS也是会发展的。最终的结果是各自运用在适合的场景下,共同发展。

使用道具 举报

回复
论坛徽章:
11
鲜花蛋
日期:2011-09-03 18:52:38鲜花蛋
日期:2011-11-09 10:10:12茶鸡蛋
日期:2011-11-19 22:46:41茶鸡蛋
日期:2011-12-14 15:16:572012新春纪念徽章
日期:2012-01-04 11:57:56奥运会纪念徽章:赛艇
日期:2012-09-26 21:40:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:002013年新春福章
日期:2013-02-25 14:51:24
27#
发表于 2012-3-10 21:45 | 只看该作者
buptdream 发表于 2012-3-10 09:39
4、当MongoDB数据出现问题时,是否可以执行Kill -9?

你庆幸只丢了59秒的数据?  真牛

使用道具 举报

回复
论坛徽章:
0
28#
发表于 2012-3-10 23:21 | 只看该作者
dla001 发表于 2012-3-9 12:05
关系型末日? 末日会有的,但不是一两年就能末日的。
与其担心,不如抓紧时间,找一个自己喜欢的学习学习 ...

学习ing……

使用道具 举报

回复
论坛徽章:
11
2011新春纪念徽章
日期:2011-02-18 11:42:49阿斯顿马丁
日期:2013-10-31 16:33:252013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00奥运会纪念徽章:足球
日期:2012-08-19 15:57:15蛋疼蛋
日期:2012-02-22 22:32:12茶鸡蛋
日期:2012-02-14 23:20:502012新春纪念徽章
日期:2012-01-04 11:57:56复活蛋
日期:2011-12-28 11:00:35茶鸡蛋
日期:2011-12-07 17:10:33
29#
发表于 2012-3-11 10:56 | 只看该作者
nosql只是关系数据库的一个补充,nosql性能优越,但不要忘了,他们大都不支持事务的。

使用道具 举报

回复
论坛徽章:
8
衰神
日期:2012-07-12 13:12:53复活蛋
日期:2013-01-07 16:43:36奥运会纪念徽章:网球
日期:2012-10-31 15:59:04奥运会纪念徽章:现代五项
日期:2012-09-27 11:19:38金牌徽章
日期:2012-11-28 16:51:08蓝锆石
日期:2012-12-24 13:09:46紫水晶
日期:2012-12-30 22:20:452013年新春福章
日期:2013-02-26 13:39:26
30#
发表于 2012-3-11 19:04 | 只看该作者
芒果。。。我也只闻其名,没用过

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表