CDB相关常见问题

目录

1. CDB适用于哪些业务场景?

MySQL适用的地方都可以使用CDB。相比于自行搭建MySQL,使用CDB更加方便和可靠。
CDB完全兼容MySQL协议,同时提供master-slave热备和定时冷备服务,此外支持实例无缝升级,可最大程度减少开发者在部署、监控、扩容和故障恢复等方面的投入,使开发者可以集中精力进行产品开发和运营。

2. 使用CDB前要做什么准备?

开发者需要考虑:
(1) 你的应用是否适合使用DB?比如数据量小、访问量高、key-value存储的场景就应该考虑使用CMEM内存级持久化存储服务。
(2) 考虑一下你的数据库设计是否合理?比如有明显访问热点或者数据量过大的表,则应该考虑拆分成多个表。

3、CDB连接超时怎么办?

用户业务程序连接CDB时,在连接中需要配置超时重试

4. CDB对数据量有什么限制?

详见:使用CDB的限制#1. 数据量限制

5. 使用CDB的注意事项?

详见:使用CDB的限制#7. 操作限制

6. 如何登录CDB?

开发人员通过IP/Port的方式就可以完全控制和管理MySQL实例,无需登录到服务器进行操作。
可通过命令行或者CDB管理台登录CDB,详见:CDB使用说明#2. CDB登录

7. 是否可以自助修改MySQL实例的配置?

MySQL实例的配置由CDB统一管理,并支持部分参数的自助修改,详细请参考下面的问题#20.如何修改CDB配置参数?

8. CDB如何对MySQL进行管理?

开发者不需要对MySQL进行日常管理,日常的维护和调整由CDB运维系统完成。
当MySQL出现异常时,运维系统会及时发现并通知运维人员处理,开发者不需要做任何变更操作。

9. CDB中运行的MySQL版本是多少?

CDB中使用的MySQL版本为5.1.54。

10. CDB执行任务是否有缓冲?

问题描述:

在很短的时间,送入了N条SQL语句给CDB执行,此时CDB会逐条执行,还是卡死?如果会卡死,那么同时的连接并发数限制是多少?

问题解答:

CDB提供的MySQL实例与平时我们自己安装的MySQL实例是一样的。并发执行的语句是否会卡死跟系统资源和SQL语句本身有关。
如果连接数max_connections到达极限值,那么该实例基本上已经无法正常提供服务,一般是由以下原因造成的:
(1)业务程序bug导致的空连接过多;
(2)前端过来的访问远远超出实例的处理能力;
(3)某个连接执行了太久地占用了MySQL的独占资源,导致大量的访问请求被阻塞。

11. CDB连接故障诊断及解决方案

当使用CDB出现连接故障时,首先确认你的CDB实例的IP、端口、用户、密码,然后在你的应用机器上通过命令行登录CDB:

mysql -h IP -P 端口号 -u root -p CDB密码

下面是出现的问题类型及解决方案:
(1) ERROR 1045(28000):Access denied for user...
当出现“Access denied for user ‘xxx’@‘x.x.x.x’(using password:YES)”的提示语时,表明密码不正确。
请确认你输入的CDB密码是否正确,如果重复输入正确信息后仍然报该错,则请通过企业QQ联系技术支持。

(2) ERROR 1040(00000):Too many connections
当出现“ERROR 1040(00000):Too many connections”的提示语时,表明CDB实例当前最大连接数超过了限制(CDB实例的最大连接数限制详见这里)。
请检查程序,适当减少数据库的连接数。如果减少连接数后仍然报该错,则请通过企业QQ联系技术支持。

(3) ERROR 2003 (HY000): Can't connect to MySQL server...
当出现“ERROR 2003 (HY000): Can't connect to MySQL server on 'x.x.x.x' (111)”的提示语时,表明CDB地址不能连通,请确认你输入的CDB的IP、端口信息是否正确。如果重复输入正确信息后仍然报该错,则请通过企业QQ联系技术支持。

12.CDB后面是否是实体机?

CDB后面是实体机。

13.CDB会帮我做分库分表吗?

因为分库分表的标准和业务逻辑相关,所以CDB不会帮业务做分库分表。

14.CDB的默认字符集编码能修改么?

可以修改。
默认字符集说明以及修改方法详见:使用CDB的限制#6. 字符集说明


15.如何查看CDB慢查询日志?

可通过CDB数据导出工具获取慢查询日志,详见:CDB数据导出工具说明

16.开发者自己如何备份数据?

CDB实例每天会进行全量备份,开发者也可以自己通过mysqldump工具自己备份数据到CVM。

17.CDB如何统计访问次数?

CDB的访问次数根据MySQL状态变量Queries计算得来。

18.CDB占用空间与使用空间的区别?

看到的CDB占用空间会大于使用空间,这是由于统计占用空间的时候包含了binlog等日志数据。CDB是按实际使用空间计费的。

19.如何申请CDB实例slave只读权限开放/关闭?

如果需要开放/关闭slave只读,请按照模版提交申请(申请方式详见这里)。

20.连接CDB的MySQL客户端的版本有什么限制吗?

详见:使用CDB的限制#3. 连接CDB的MySQL客户端的版本限制

21.如何修改CDB配置参数?

开发者可通过命令行和phpMyAdmin,修改CDB配置参数:
1. 命令行方式
以下变量可以通过执行“set global var_name=var_value”语法运行时动态修改,10分钟左右将自动同步到本机文件,迁移或重启将保持设置后的值。其中常见的var_name包括如下变量:

变量 说明
character_set_server 服务器默认字符集
connect_timeout 连接超时
long_query_time 超过该时间的查询为慢查询
max_allowed_packet 最大包长度
max_connections 最大连接数
sql_mode 当前的服务器SQL模式
table_open_cache 所有线程打开表的个数,增大该值可以增加mysqld被请求打开的文件描述符个数
wait_timeout 非交互连接超时时间


2. phpMyAdmin
通过phpMyAdmin登录CDB后,点击上面菜单中的“变量”,在下面的变量列表中,点击需要修改的变量对应的值,对其进行修改。
faq_cdb_1.png

更多请参考CDB可以修改的配置

22. CDB的连接数有限制吗?

详见:使用CDB的限制#2. 连接数限制

23. CDB的binlog保存时间是多久?

详见:使用CDB的限制#5. CDB的binlog保存时间说明

24. CDB的慢查询时间是多久?

CDB的慢查询时间(long_query_time)的默认值是10秒,用户可以自行修改,如下:

set global long_query_time = 1;

详细请参考MySQL官方手册

25. 如何授权其他用户操作CDB?

root用户可以使用mysql的grant命令对其他用户进行授权,注意不能使用grant all进行授权
目前shutdown和file权限没有开放给root用户,因此root不能新建拥有所有权限的用户。
授权时,请参考以下命令:

grant SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, ALTER on *.* to 'myuser'@'%' identified by 'mypasswd';


26. 为什么查看CDB中的中文数据时出现乱码?

开发者将数据存储到CDB中时,请先到管理中心CDB的“管理视图”页面点击“配置”按钮,查看该实例的默认字符集,在编写程序时,将character_set_client、character_set_results、character_set_connection设置为和CDB实例相同的字符集。否则,如果存储的数据中有中文,会出现中文数据乱码的现象。
例如:CDB实例的默认字符集为utf8,在编写程序连接数据库时,需要先执行以下语句,再将中文数据存储到CDB。

SET NAMES 'utf8';

27. CDB支持的最大并发事务数是多少?

CDB使用的是MySQL5.1,支持的最大并发事务数为1024。高性能版由于PAGE大小为4K,支持的并发事务数下降为256(在下个版本中会恢复到1024)。

28. CDB提供的容量能否全部使用?

不能,因为文件系统会预留一部分空间,本身的元数据也会消耗一部分空间。我们建议使用容量不要超过总容量的90%。

29. 能否通过公网地址访问CDB?

CDB目前不提供公网的访问地址,无法直接通过公网IP进行访问。如果您需要通过公网访问,可以通过在有公网IP的CVM上搭建MySQL Proxy的方式,利用MySQL Proxy进行访问。
详细请参考MySQL Proxy官方手册

30. 如何导出CDB数据?

1,如果需要导出冷备数据,请使用CDB冷备数据提取工具导出,详见CDB冷备数据提取工具说明
2,如果需要导出实时数据,可以申请从库访问权限,通过从库mysqldump获取

以上信息是否解决您的问题?

Copyright © 1998 - 2017 Tencent. All Rights Reserved.

腾讯公司 版权所有

有问必答 返回顶部