MongoDB ########### `MongoDB `_ 是一款高性能、开源的 NoSQL 文档数据库。 在新浪云上,你可以很方便的创建和管理 MongoDB 集群。目前 MongoDB 集群采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据。其中 Primary 和 Secondary 节点提供服务,当 Primay 节点出现故障,系统自动选举新的 Primary 节点。 同时我们还提供了在线扩容、自动备份、监控等功能来帮助你更好地管理集群。 创建 ======= 进入云应用控制台的任一应用管理页面,点击左侧栏的『数据库与缓存/MongoDB』,进入 MongoDB 的管理页面,点击上方的『创建 MongoDB』,如下图所示: .. image:: /images/mongodb-create.png 创建实例需要设置以下参数: - 名称:最大长度不超过 32 个字符,限英文、数字、下划线,横线。 - 配置:目前提供 4 种配置的 MongoDB 实例。 创建成功后,点击实例管理,即可进入信息页面,在信息页面中,可以查看连接实例需要的URI,以及用户名密码等信息。 .. image:: /images/mongodb-info.png 数据导入 ========= 如果你想将自己现有 MongoDB 实例里的数据导入到新浪云线上的 MongoDB 实例里,可以按以下步骤操作: 使用 mongodump 导出数据: .. code-block:: console $ mongodump --host=MongoDB 地址 --username= 用户名 --password= 密码 导出成功后,会在当前目录生成一个 *dump* 目录,所有的数据都会被导出到 *dump* 目录中。 通过 :doc:`/sae/services/cloudbridge` 连接到新浪云的云端网络。执行以下命令将数据导入到线上 MongoDB 实例里。 .. code-block:: console $ mongorestore --host=MongoDB 地址 --username= 用户名 --password= 密码 --dir=dump .. note:: `mongodump `_ 和 `mongorestore `_ 是 MongoDB 的命令行导入 / 导出工具。 Windows环境下数据导入 ====================== 连接VPN ------------------- MongoDB的服务端默认只能从新浪云的内网访问,您在本地使用mongorestore程序导入本地的数据前,必须要通过新浪云提供的CloudBridge连接到新浪云的内网,如何使用请参考:http://www.sinacloud.com/doc/sae/php/cloudbridge.html 下载Git for Windows ----------------------- 在Windows环境下推荐使用Git for Windows程序运行命令行,并推荐1.9.15版本,下载地址: https://github.com/msysgit/msysgit/releases/download/Git-1.9.5-preview20150319/Git-1.9.5-preview20150319.exe 。 下载MongoDB Windows版本 ------------------------ 安装完成Git for Windows后从MongoDB官方下载Windows版本 https://www.mongodb.com/download-center#community,选择“community”下载Windows分类的msi程序安装。 示例中,MongoDB被安装到了 ``D:\Program Files\MongoDB\Server\3.6\bin`` 目录,如图所示: .. image:: /images/mongodb/mongodb_bin_dir.png .. note:: 如果您安装了程序到其他的路径,以下的路径请自行更换为您安装的路径。 找到mongorestore命令 --------------------- 在安装的路径下可以看到mongorestore.exe的程序,这个程序就是用于导入数据的程序,如图所示: .. image:: /images/mongodb/mongo_restore_intro.png 执行数据导入命令 --------------------- 在 ``D:\Program Files\MongoDB\Server\3.6\bin`` 目录下点击鼠标右键,选择“Git bash”进入命令行: .. image:: /images/mongodb/git-bash.png 执行命令: .. code-block:: console mongorestore --host xxxxxxx.mongodb.sae.sina.com.cn:10101,yyyyyyyy.mongodb.sae.sina.com.cn:10101 --username root --password YCg7L3GoB7bXXXXXXXXXXXXXXXXXXXXRLMqHO3CguDg47 /D/6code/mongodb/ .. note:: 以上的host、username等等信息请替换成您的MongoDB的链接信息,管理后台可以查询。 .. list-table:: :header-rows: 1 :widths: 45 45 :stub-columns: 1 - * * 说明 - * --host * 数据库的连接信息,新浪云为replicaset模式,多个主机端口间请用英文逗号分割,参考示例 - * --username * 数据库用户名,在新浪云都是root - * --password * 数据库密码,在管理平台可以查询 - * /D/6code/mongodb/ * 本地的数据目录,表示D盘下的6code文件夹下的mongodb文件夹。 - * --db * 本例子中没有指定,如果指定了表示将数据导入到某个特定的库中。 导入完成 ---------------- 从命令行中可以看到导入已经完成,如图所示: .. image:: /images/mongodb/importsuccess.png 从RockMongo中也可以查询到刚刚导入的数据: .. image:: /images/mongodb/import-success-mongoadmin.png 管理 ======== 你可以通过 :doc:`/sae/services/cloudbridge` 连接到新浪云的云端网络。然后使用 `MongoDB Admin UIs `_ 这里列出的任意管理工具来管理 MongoDB。 也可以通过新浪云提供的 Web 客户端进行管理,在对应实例后面的操作栏中选择『管理』即可。 删除 ======== 进入 MongoDB 的管理页面,在对应实例后面的操作栏中选择『删除』即可。 扩容 ======= 你可以在线扩大或者缩小 MongoDB 实例的内存容量,进入 MongoDB 的管理页面,在对应实例后面的操作栏中选择『修改』即可,扩容期间 MongoDB 会重启,可能会造成短时间的服务不可用。 高可用 ========= `MongoDB 复制集(Replica Set) `_ 通过存储多份数据副本来保证数据的高可靠,通过自动的主备切换机制来保证服务的高可用。但需要注意的是,连接副本集需要使用特殊的连接字符串,否则服务高可用将不复存在。 因此,连接时需要使用形如 `mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]` 的连接字符串,该字符串可以在服务详情页查询到。