84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
目前有一些工具可以很方便的升级线上的数据库的结构,比如ruby写的rails以及php的doctrine都有migration,不知道mongodb有没有很方便升级库结构的方法。
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
MongoDB升级数据库还是相对比较方便的,如非特殊版本更新,基本上都不用停服务。
1.如果你的数据结构有变化,MongoDB的Schema-free机制使你可以不用迁移
2.如果你想使用新版本中的新功能,那确实得迁移数据了,一种比较通常的做法是通过其Replication机制。可以看一下官方的相应版本的release notes,通常会写升级时是否可以用Replication的方式,不能用的话可能是因为本次新版本在Replicastion协议上本来就有改动。那可能就得停服务来做迁移了。
3.停服务迁移前,也可以先通过mongodump和mongorestore迁移当前数据,然后停服务再迁移增量数据,通常也不会停太长时间服务。
没有,只能靠你自己在程序里做约定。
这也是这类面向文档的数据库的最大问题,开发的时候不得不小心翼翼,因为我们只能在客户端维护了一份数据库结构,万一有某个开发者多插入或者少插入了些什么字段,服务端都是可以接受的。
更苦恼的是有时候客户端不是唯一的,因此我们就要在不同的客户端上维护同一份数据结构,这为数据结构的升级带来了很大的不方便。面向文档的设计本来是要解放对数据结构的依赖,但是却没有解决没有数据结构约定后带来的随意性。
MongoDB升级数据库还是相对比较方便的,如非特殊版本更新,基本上都不用停服务。
1.如果你的数据结构有变化,MongoDB的Schema-free机制使你可以不用迁移
2.如果你想使用新版本中的新功能,那确实得迁移数据了,一种比较通常的做法是通过其Replication机制。可以看一下官方的相应版本的release notes,通常会写升级时是否可以用Replication的方式,不能用的话可能是因为本次新版本在Replicastion协议上本来就有改动。那可能就得停服务来做迁移了。
3.停服务迁移前,也可以先通过mongodump和mongorestore迁移当前数据,然后停服务再迁移增量数据,通常也不会停太长时间服务。
没有,只能靠你自己在程序里做约定。
这也是这类面向文档的数据库的最大问题,开发的时候不得不小心翼翼,因为我们只能在客户端维护了一份数据库结构,万一有某个开发者多插入或者少插入了些什么字段,服务端都是可以接受的。
更苦恼的是有时候客户端不是唯一的,因此我们就要在不同的客户端上维护同一份数据结构,这为数据结构的升级带来了很大的不方便。面向文档的设计本来是要解放对数据结构的依赖,但是却没有解决没有数据结构约定后带来的随意性。