- 计算
- 网络
- 存储与CDN
-
数据库
-
云数据库 RDS MySQL
- 产品概述
- 产品定价
- 快速入门
- 操作手册
- 案例实践
- API文档
-
常见问题
- 如何访问MySQL实例?
- MySQL实例的安全性如何?
- 如何向MySQL实例中导入数据?
- 如何向MySQL实例中导出数据?
- 如何创建新用户并授予权限?
- QPS是如何统计的?
- 什么是内存溢出?
- 默认的最大连接数是多少?
- 如何查看数据库运行状态?
- 如何查看MySQL实例的SlowLog?
- 如何修改MySQL实例的配置参数?
- 如何安装和卸载插件?
- 如何使用MySQL-Proxy使MySQL实例可以通过外网访问?
- 何查看MySQL实例的各项监控指标?
- 是否可以查看云数据库运行状态?
- 默认的配置是针对哪种存储引擎优化的?
- 如何在云主机上搭建云数据库从库并进行主从同步呢?
- 如何正确设置字符集?
- 如何查询MySQL实例的客户端和服务器端版本
- 相关协议
- 云数据库 RDS PostgreSQL
- 云数据库 Redis
- 云数据库 MongoDB
- 分布式数据库 InDDB
- 云数据库 Memcache
-
云数据库 RDS MySQL
- 安全
- 人工智能
-
大数据
- ES服务 Elasticsearch
- 数据仓库 DW
- 托管Hadoop
- 管理和监控
-
API
-
对象存储OSS
- 创建Bucket-CreateBucket
- 获取Bucket信息-DescribeBucket
- 更改Bucket属性-UpdateBucket
- 删除Bucket-DeleteBucket
- 前缀列表查询 – PrefixFileList
- 上传文件 – PutFile
- 表单上传 – PostFile
- 秒传文件-UploadHit
- 下载文件-GetFile
- 查询文件基本信息-HEADFile
- 删除文件 – DeleteFile
- 初始化分片 – InitiateMultipartUpload
- 上传分片 – UploadPart
- 完成分片 – FinishMultipartUpload
- 放弃分片 – AbortMultipartUpload
- 查看配额状态-GetUFileQuota
- 查询配额支付价格-GetUFileQuotaPrice
- 查看配额使用报表-GetUFileReport
- 获取配额信息-GetUFileQuotaInfo
- 获取已上传成功的分片列表-GetMultiUploadPart
- 更新令牌-UpdateUFileToken
- 删除令牌-DeleteUFileToken
- 获取令牌信息-DescribeUFileToken
- OSS 错误码列表
- 操作文件的Meta信息 – OpMeta
- API文档综述
-
弹性公网IP EIP
- 1、申请弹性IP-AllocateEIP
- 2、获取弹性IP信息-DescribeEIP
- 3、更新弹性IP属性-UpdateEIPAttribute
- 4、释放弹性IP-ReleaseEIP
- 5、绑定弹性IP-BindEIP
- 6、解绑弹性IP-UnBindEIP
- 7、调整弹性IP带宽-ModifyEIPBandwidth
- 8. 修改弹性IP出口权重-ModifyEIPWeight
- 9. 获取弹性IP价格-GetEIPPrice
- 10. 获取弹性IP带宽改动价格-GetEIPUpgradePrice
- 11. 获取弹性IP计费方式-GetEIPPayMode
- 12. 设置弹性IP计费方式-SetEIPPayMode
- 13. 申请内网虚拟IP-AllocateVIP
- 14. 获取内网虚拟IP信息-DescribeVIP
- 15. 释放内网虚拟IP- ReleaseVIP
- 16. 创建带宽包-CreateBandwidthPackage
- 17. 获取带宽包信息-DescribeBandwidthPackage
- 18. 删除带宽包-DeleteBandwidthPackage
- 19. 开通共享带宽-AllocateShareBandwidth
- 20. 获取共享带宽信息-DescribeShareBandwidth
- 21. 调整共享带宽-ResizeShareBandwidth
- 22. 关闭共享带宽-ReleaseShareBandwidth
- 23. 将EIP加入共享带宽-AssociateEIPWithShareBandwidth
- 24. 将EIP移出共享带宽-DisassociateEIPWithShareBandwidth
- 25. 获取带宽用量-DescribeBandwidthUsage
- 26. 更新防火墙属性-UpdateFirewallAttribute
- 27. 获取防火墙信息-DescribeFirewall
- 28. 应用防火墙-GrantFirewall
- 29. 错误码
-
云服务器ECS
- 1、获取VNC登录信息-GetUHostInstanceVncInfo
- 2、启动云服务器-StartUHostInstance
- 3、重启云服务器-RebootUHostInstance
- 4、关闭云服务器-StopUHostInstance
- 5、获取云服务器业务组列表-DescribeUHostTags
- 6、字段规范
- 7、删除云服务器-TerminateUHostInstance
- 8、重置云服务器密码-ResetUHostInstancePassword
- 9、修改云服务器业务组-ModifyUHostInstanceTag
- 10、修改云服务器名-ModifyUHostInstanceName
- 11、获取挂载磁盘的升级价格-GetAttachedDiskUpgradePrice
- 12、修改云服务器配置-ResizeUHostInstance
- 13、获取升级配置价格-GetUHostUpgradePrice
- 14、创建云服务器-CreateUHostInstance
- 15、移除硬件隔离组-LeaveIsolationGroup
- 16、创建硬件隔离组-CreateIsolationGroup
- 17、删除自制镜像-TerminateCustomImage
- 18、创建自制镜像-CreateCustomImage
- 19、导入镜像-ImportCustomImage
- 20、修改云服务器备注-ModifyUHostInstanceRemark
- 21、修改挂载的磁盘大小-ResizeAttachedDisk
- 22、模拟服务器掉电-PoweroffUHostInstance
- 23、重装系统-ReinstallUHostInstance
- 24、获取镜像列表-DescribeImage
- 25、获取云服务器价格-GetUHostInstancePrice
- 26、获取云服务器信息-DescribeUHostInstance
- 27、普通机型开启CDP-UpgradeToArkUHostInstance
-
对象存储OSS
- 用户提醒
- 服务等级协议(SLA)
- 企业上云常见问题
- 其他协议
- 云市场
- 开发者
- 账户管理
-
1、MongoDB实例功能和开源MongoDB有区别吗?
MongoDB实例和原生MongoDB完全一致。
2、MongoDB实例是否使用物理机搭建?
MongoDB实例使用物理机搭建,并采用高性能磁盘以及使用RAID1确保数据安全。
3、MongoDB的安全性如何?
访问安全性
MongoDB实例仅支持通过云主机进行内网登陆且按账户进行隔离,因此仅有同一账户的云主机能够对MongoDB实例进行登录。
MongoDB实例是强制鉴权的,只能通过认证的。
数据安全性
所有的MongoDB实例的数据文件所存放的硬盘都进行了RAID1保护。
MongoDB实例每天都会进行数据备份,同时也提供了手工备份功能,以便用户能够在特定时间点主动对数据进行备份。
MongoDB实例(Master)支持创建从库(搭建在与主库不同的物理机上),从库与主库自动进行数据同步,提供数据灾备的能力。
4、如何备份与恢复?
MongoDB实例支持手动备份,用户可以保存某些关键时间点的重要数据备份,当前手工备份的允许保留个数为3个,如果超过3个,会自动删除最早的手动备份。创建手动备份时,用户只需要输入备份名称,后台会立刻开始进行备份工作。
备份可以下载至本地或云主机。
如果要恢复MongoDB实例,建议用户先将备份文件下载至本地,由专业人员确认无误后导入MongoDB实例中,以规避数据风险。
5、MongoDB实例类型有哪些?
满足高可用和水平扩展的要求,支持单点、副本集、分片集群的多种架构演进。
所有的数据节点都是内置副本集的,即使单点也是一个副本集,所以副本集按类型划分可以细分为单点副本集和多点副本集,其中单点副本集只包含一个primary,多点副本集包含一个primary和若干个secondary或者arbiter。
6、怎么查看MongoDB的统计信息?
MongoDB实例管理页可以查看统计信息。
7、MongoDB集群包括哪些组件?
集群按规模可以划分为两种:
副本集:一个primary+若干个secondary+若干个arbiter,副本集提供高可用特性。
分片集群:具有分片功能的多副本集的分布式架构,支持scale-out特性,其中每个分片指的就是副本集,集群包括一个或多个分片(数据存储),一个或三个configsvr(集群元数据管理),和一个或多个Mongos(路由)。
8、配置文件有哪些?
提供两个默认配置文件,分别是shardsvr默认配置文件和configsvr默认配置文件,它们用于创建不同类型的实例,其中:
shardsvr配置文件:支持单点副本集、多点副本集、sharding的分片服务器实例。
configsvr配置文件:支持sharding的配置服务器实例。
用户可以从默认配置文件修改配置参数,另存为自定义的配置文件,供这些实例使用。
9、如何创建shardsvr或者configsvr?
⑴、在MongoDB实例管理页面,点击创建MongoDB实例按钮:
⑵、在弹出的选择页面中,根据需求选择配置和实例数量,对于configsvr建议以3台为单位申请,这样可以保证分片集群配置服务器有一定的高可用性。对于shardsvr,建议使用一主一从一仲裁的副本集,机型大小可根据业务需要选择。
⑷、填写MongoDB实例信息,根据需要选择configsvr或者shardsvr的配置文件。configsvr和shardsvr的默认端口均采用27017。所有的configsvr都采用统一的管理员密码,shardsvr不作要求。
⑸、确认各项选择以及所付金额,支付订单。创建成功后,列表会显示刚创建的MongoDB实例信息。此时,MongoDB实例已经提供MongoDB分片与副本集的集群规模。
注意:在MongoDB创建过程中,列表中属性列统一显示为slave。刷新页面获取MongoDB实例的真实属性。
10、如何创建secondary和arbiter?
⑴、进入控制台MongoDB实例管理页,选中primary节点,在右边的弹框中选中“创建节点”按钮进行创建。
⑵、在“创建节点”的弹框中选择节点类型secondary或arbiter。创建完成后,新增节点将按指定的角色加入到primary节点的副本集中。同个副本集的所有节点共享相同的管理员账号和密码。
11、如何使用鉴权?
从数据安全性和可维护等角度,MongoDB实例是强制鉴权的,所有实例均采用keyfile认证,等效于auth=true。MongoDB实例的管理员账号和密码是申请时所填写的管理员用户名和密码。
MongoDB实例统一使用keyfile:
ymSs/7YgMlxlMMTR9K3B6eKyopWD98MX1KIuySyI8Kk1Coqw1sYZp2Nh4nN5yrul+0J21pIpNOz
XU3Mbbl2zihF/qMEkofAWJPeORzZd2VR0c2rwHG4xxuxNRFOK3BSTTSIyAgMfnBVTPwC671E18S
Ji3r/RohfGxy8NveipsZCqTTRDVcGXKqFf4i3vBRLXil+it1oxPb63ayjYJ7Uz1piVQQRtHlD+K
zUEaTzhl/CW9Da8xhq1Lm2bxNUWov/ltDfJSyke+a+a1OlbpGTYwD5WeYINbGYYbJMpC1P6ELCQ
2kD1c/Dyae7WNLcDO3ICJSOvGigKIGo3om5M8CeiUJ/xHA67RkJak2idSlXOopIEdjjAxtFRPWa
F8jEoMgtOSty2OQMBpBYDYcwgRRFL8+fQQvHd1c6sQoXUoN1JbBqhtNxpvlm05keinIP9Al+EeI
A1itZjUBcjC5zZgAAPHbXe803TosCupq/jS2W6K8MBEOUg+42u4r8g4Sp2LKdbqqdza1PlBHFQm
ExSz2pAN61DwZPKjMlBArlCpa5Kk/44DzOc9Lc3bW51AdieG5xFad6d9qS0LLFFeG4tB5HcbUCC
KWkVdUM5ocCb0TTRfJ2KNTRaJUTfKq4WLCe1zrIeHCvQIbKVJLgyo/3HHgse331daqVRm+rAAPW
wgXVKbo/+XfYkS28ftDMOA6spIN1Vsba+UGdLjGFiq40xLSCA5z0RvB88oYouuyw16VAQuv1JzU
k4tzZ9f5Snr1MlyI5rrjO6DZeDT3WYOK9TGRDshWHuVjDCtvDTYPjACy0Jy4Uhikze+pz9gAUbm
JNUeU14CZb5EA1/mkICjpbIJigG1lduERa1g5OFv3cS4UIyh8V/zE11rjVdLva0Fq58w713kO6t
40xG2QWbpTX/D5VWVH7j0Uq4QX3xSUPvCzIrcGXV0whPRM93BGCgEZVIkdOfDv2+VGDMDmL3mWy
J8/ysjaN1VOnf
12、如何访问MongoDB实例?
申请MongoDB实例后会获取一个IP和Port。
命令行操作:
mongo --host $ip --port $port --authenticationDatabase $db --username$admin --password $admin_passwd例如::
mongo --host 10.4.12.80 --port 27017 --authenticationDatabase admin --username root --password root 或者:
mongo $ip:$port/$db -u $admin -p $admin_passwd 或者:
mongo 10.4.12.80:27017/admin -u root -p root API操作:
用户可以使用开源的MongoDB API库来连接MongoDB,出于安全性考虑,MongoDB仅能在内网进行访问。
13、如何访问业务MongoDB?
因为在MongoDB安全机制作用下,刚开始用户是无法直连业务db的,否则一直提示无权限,这时需要通过以下步骤:
⑴、登录到admin库。
⑵、切换到业务db,如game。
⑶、使用createUser(2.6版本及更新版本支持)或者 addUser(2.4版本支持)新增用户。
⑷、使用mongo客户端连接到业务库,如:
mongo 10.4.12.80:27017/game -u root -p root 14、如何搭建分片集群?
目前,浪潮云支持shardsvr、configsvr和mongos,可以在控制台页面申请。
15、如何访问shardsvr?如何访问configsvr?如何连接集群?
访问shardsvr/configsvr、连接集群的方式与连接mongodb实例的方式一致:
mongo $mongos-ip:$mongos-port/admin -u $admin -p $admin_password 注意:这里使用的管理员和密码是configsvr统一采用的管理员和密码。如:
mongo 10.4.4.50:27017/admin -u root -p root 16、如何开启分片?
如何迁移数据到MongoDB?
可以通过以下方法迁移数据到MongoDB,包括:
⑴、使用mongodump和mongorestore工具导出源数据,再导入到副 本集的primary或者分片集群的mongos;
⑵、如果源db是部署在ECS上,可以在内网通过副本集的复制机制同步数据到浪潮云的MongoDB;
MongoDB的内存是如何管理?
MongoDB使用mmap管理内存,内存使用率经常是100%,也有时候经过备份 操作(自动备份和手动备份),内存也会立即升到100%,通常情况下无需担心。内存上升后,通常情况下是不会主动释 放的。
如果是平时的工作载荷,内存使用出现瓶颈,建议是在线升级内存。
MongoDB的磁盘是如何管理?
MongoDB采用预分配机制分配大文件用于存放数据,drop、remove、 compact等操作是不会释放磁盘空间的,但是可以使预分配的空间重用。如果磁盘使用率过高,这时候需要注意 是否会100%。如果磁盘空间使用率接近100%,建议采用以下方法克服:
⑴、升级磁盘;
⑵、创建secondary,通过复制方式将数据从primary同步到 secondary,这时候secondary的存储空间往往会较小一些,然后执行一次主从切换;
⑶、修复db,执行db.repairDatabase,这会阻塞住整个实例的读写服务,不建议使用;
17、如何管理和查看慢查询?
在业务库执行db.setProfilingLevel()启动和关闭慢查询;
执行db.getProfilingStatus()查看慢查询设置状态。
执行db.system.profile.find() 查看收集到的慢查询,有助于查询优化的工作。
怎么查到MongoDB的统计信息?
统计可以在 MongoDB管理页面看到,包括CPU使用率、内存使用、内存使用率、连接数、各类QPS指标等。
如何使用mongostat监控?
mongostat是官方提供的一种监控工具,使用方法是:
mongostat -h $ip --port $port --authenticationDatabase admin -u $admin -p$admin_password --discover如:
mongostat -h 10.4.4.50 --port 27017 --authenticationDatabase admin -u root-p root --discover如何查看副本集属性信息与同步状态?
使用客户端mongo连接到primary节点,执行命令rs.status()查 看副本集属性,其中“set”字段是副本集的id。
执行命令rs.printReplicationInfo() 查看oplog的使用情况。
使用客户端mongo连接到 secondary节点,执行命令rs.printSlaveReplicationInfo()查看与primary节点的同 步状态,可以看到是否落后primary。
18、如何使用API创建Mongos?
如果InServer自建mongos比较麻烦,也可以通过API调用来创建mongos,具体方法可以参见 CreateInDBRouteInstance。
如何实现跨机房热迁移MongoDB?
要求是将 MongoDB从X机房热迁移至Y机房,基本原理是将Y机房的MongoDB实例加入到X机房MongoDB的副本集中,通过复制的方式迁移数据,同步完成后,提升Y机房的MongoDB实例为primary节点。
为保证迁 移过程不会出现单点故障或者无法选举primary等导致不可用,要求X机房的MongoDB副本集是多点的,节点数维持奇数个,在热迁移完成之前,不能停机。确保应用层链接db并非使用固定ip,而是驱动。MongoDB官网可以查看如何连接副本集,利用高可用特性。过 程包括:
在Y机房创建一个primary节点;
在Y机房的primary节点创建若干个从节点或者仲裁节点;
联系我们提供协助,将Y机房的所有db实例加入到X机房的副本集;
观察Y机房db的同步状态;
如果完成后,则可以对副本集重置,提升Y机房的某个节点为新primary节点;
登陆到Y机房的新primary节点重置副本集,逐台remove X机房的db实例;
按需要,完成迁移后,可以在控制台删除X机房的db实例;
19、如何修改local库的大小?
一旦DB申请成功后,不再支持修改oplogSize的大小,只支持申请DB之前修改。
如果是普通的sharding server,我们UDB的默认local库大小是5G。如果您需要设置成指定的大小,可以在新建MongoDB时前,先新建一个自定义配置文件,修改oplogSize大小来设置,并使用该自定义配置文件来创建DB。
如果写操作比较频繁,建议根据申请的磁盘容量适当调大oplogSize的大小。
如果是config server,系统会默认生成一个大概几十M的local库,即使申请DB阶段设置local库大小也无效。
20、mongoDB-3.2备份文件解压
linux环境:
mongoDB-3.2的备份文件为.tgz格式,解压时执行如下命令:
gunzip -c xxxxxxxxxx.tgz > xxxxxxx.mongoarchive 手动恢复的命令如下:
mongorestore -h <host> -u <user> -p <pwd> --archive=xxxxxxx.mongoarchive Windows环境:
下载的mongoDB-3.2的备份文件的后缀名是.tgz,将后缀名改为mongoarchive.gz,然后再通过解压软件解压缩。
21、如何连接MongoDB云数据库?
连接副本集
如果MongoDB采用的是副本集方式,那么连接MongoDB时需要设置一个正确的连接URI,这样后续Primary节点宕机才可以成功的进行漂移,应用层无需变更连接设置,自动具有高可用。各类语言的驱动都支持URI连接。一般副本集连接的URI字符串格式如下,包括账户、密码和副本集各个节点的IP和端口。
URI: mongodb://user:password@ip1:port1,ip2:port2,… 假如URI的内容如下:
mongodb://clouder:edFO09SkdU@10.9.57.241:27017,10.9.40.112:27017,10.9.35.45
:27017/test
那么正确的连接方式是:
client=MongoClient('mongodb://clouder:edFO09SkdU@10.9.57.241:27017,10.9.40.112:27017,10.9.35.45:27017/test')MongoDB只支持在Primary节点上进行写操作,不过读操作可以有以下几种,客户可以根据自身业务需求选择合适的读取策略。
primary:默认设置,所有的读操作都在Primary节点
primaryPreferred:优先读取Primary节点,Primary不可用的话读取Secondary节点
secondary:所有的读操作都读取Secondary节点
secondaryPreferred:优先读取Secondary,Secondary不可用的情况下读取Primary
nearest:读取网络延迟最低的节点
举个例子,假如需要实现读写分离,即优先读取Secondary节点,连接超时为500ms,那么URI配置如下:
mongodb://clouder:edFO09SkdU@10.9.57.241:27017,10.9.40.112:27017,10.9.35.45
:27017/test?connectTimeoutMS=500&readPreference=secondaryPreferred
连接分片集群
连接到分片集群的方式和连接到普通MongoDB实例的方式完全相同,不过当存在多个mongos实例的情况下,即使URI里写全了mongos实例的IP也无法自动做到mongos本身的高可用和负载均衡,通常这个可以通过搭建HaProxy或者LVS的方式实现。 假设存在三个mongos节点,分别为IP1,IP2,IP3,而HaProxy的代理IP为IP4,采用简单的roundrobin轮询策略,则连接URI举例如下:
mongodb://clouder:edFO09SkdU@IP4:27017/test?connectTimeoutMS=500&readPreference=secondaryPreferred