MongoDB¶
MongoDB 是一款高性能、开源的 NoSQL 文档数据库。
在新浪云上,你可以很方便的创建和管理 MongoDB 集群。目前 MongoDB 集群采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据。其中 Primary 和 Secondary 节点提供服务,当 Primay 节点出现故障,系统自动选举新的 Primary 节点。 同时我们还提供了在线扩容、自动备份、监控等功能来帮助你更好地管理集群。
创建¶
进入云应用控制台的任一应用管理页面,点击左侧栏的『数据库与缓存/MongoDB』,进入 MongoDB 的管理页面,点击上方的『创建 MongoDB』,如下图所示:
创建实例需要设置以下参数:
- 名称:最大长度不超过 32 个字符,限英文、数字、下划线,横线。
- 配置:目前提供 4 种配置的 MongoDB 实例。
创建成功后,点击实例管理,即可进入信息页面,在信息页面中,可以查看连接实例需要的URI,以及用户名密码等信息。
数据导入¶
如果你想将自己现有 MongoDB 实例里的数据导入到新浪云线上的 MongoDB 实例里,可以按以下步骤操作:
使用 mongodump 导出数据:
$ mongodump --host=MongoDB 地址 --username= 用户名 --password= 密码
导出成功后,会在当前目录生成一个 dump 目录,所有的数据都会被导出到 dump 目录中。
通过 VPN 隧道 连接到新浪云的云端网络。执行以下命令将数据导入到线上 MongoDB 实例里。
$ mongorestore --host=MongoDB 地址 --username= 用户名 --password= 密码 --dir=dump
注解
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
目录,如图所示:
注解
如果您安装了程序到其他的路径,以下的路径请自行更换为您安装的路径。
找到mongorestore命令¶
在安装的路径下可以看到mongorestore.exe的程序,这个程序就是用于导入数据的程序,如图所示:
执行数据导入命令¶
在 D:\Program Files\MongoDB\Server\3.6\bin
目录下点击鼠标右键,选择“Git bash”进入命令行:
执行命令:
mongorestore --host xxxxxxx.mongodb.sae.sina.com.cn:10101,yyyyyyyy.mongodb.sae.sina.com.cn:10101 --username root --password YCg7L3GoB7bXXXXXXXXXXXXXXXXXXXXRLMqHO3CguDg47 /D/6code/mongodb/
注解
以上的host、username等等信息请替换成您的MongoDB的链接信息,管理后台可以查询。
说明 | |
---|---|
–host | 数据库的连接信息,新浪云为replicaset模式,多个主机端口间请用英文逗号分割,参考示例 |
–username | 数据库用户名,在新浪云都是root |
–password | 数据库密码,在管理平台可以查询 |
/D/6code/mongodb/ | 本地的数据目录,表示D盘下的6code文件夹下的mongodb文件夹。 |
–db | 本例子中没有指定,如果指定了表示将数据导入到某个特定的库中。 |
管理¶
你可以通过 VPN 隧道 连接到新浪云的云端网络。然后使用 MongoDB Admin UIs 这里列出的任意管理工具来管理 MongoDB。
也可以通过新浪云提供的 Web 客户端进行管理,在对应实例后面的操作栏中选择『管理』即可。
删除¶
进入 MongoDB 的管理页面,在对应实例后面的操作栏中选择『删除』即可。
扩容¶
你可以在线扩大或者缩小 MongoDB 实例的内存容量,进入 MongoDB 的管理页面,在对应实例后面的操作栏中选择『修改』即可,扩容期间 MongoDB 会重启,可能会造成短时间的服务不可用。
高可用¶
MongoDB 复制集(Replica Set) 通过存储多份数据副本来保证数据的高可靠,通过自动的主备切换机制来保证服务的高可用。但需要注意的是,连接副本集需要使用特殊的连接字符串,否则服务高可用将不复存在。
因此,连接时需要使用形如 mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]] 的连接字符串,该字符串可以在服务详情页查询到。
使用示例¶
警告
由于 PHP 5.3 版本较老,暂时不支持 MongoDB,如果需要使用 MongoDB,请将应用切换到 PHP 5.6 版本。
PHP 5.6 运行环境默认安装了 PHP MongoDB 可以通过该扩展来访问 MongoDB 。 PHP MongoDB 是 MongoDB 的底层驱动库,实际使用中,建议结合 mongo-php-library 进行操作。
使用 composer 安装 mongodb/mongodb 库。如果当前系统中没有 composer,可以参考 使用 Composer 管理依赖库 安装。
$ composer require "mongodb/mongodb=^1.0.0"
composer 执行完后会在应用目录下生成一个 vendor 目录,将 vendor 目录添加入代码仓库中。然后你就可以通过以下方式在应用中连接 MongoDB 了。
<?php
require 'vendor/autoload.php'; // include Composer goodies
$client = new MongoDB\Client(MONGODB_URI);
更多的操作,可以参考 官方文档 。