云服务器内容精选

  • 场景排查 弹性云服务器能否ping通华为云关系型数据库实例。 如果ping不通,可以查看弹性云服务器和华为云关系型数据库实例是否处于同一个虚拟私有云内,是否使用同一个安全组。 内网连接方式下,弹性云服务器与云数据库RDS实例必须处于同一虚拟私有云内,且只能通过弹性云服务器连接。公网连接方式下,该弹性云服务器可以与目标实例不在同一个虚拟私有云内。 检查连接IP和端口号是否正确。 注意IP和端口号之间使用“逗号”隔开。 检查华为云关系型数据库服务的运行状态是否异常。 查看用户名密码是否正确,尝试重置密码。 尝试重启华为云关系型数据库实例,检查是否改善。
  • 问题分析 主要从以下几个方面考虑: 排除数据库实例异常 例如:数据库系统故障,实例状态异常,实例或表被锁定。 (常见)使用正确的客户端连接方式 内网连接需要 GaussDB 与E CS 实例必须在同一区域、VPC。 公网连接需要购买或使用已有EIP,并对GaussDB实例绑定该EIP 。 排除连接命令错误 例如:连接地址错误、端口参数配置错误、用户名和密码错误。 (常见)排除网络不通 内网访问 确认ECS与GaussDB是否在同一个区域,VPC。 检查安全组规则。 安全组外访问安全组内的GaussDB实例时,需要为安全组添加相应的入方向规则。 在ECS上测试是否可以正常连接到GaussDB实例地址的端口。 公网访问 检查安全组规则。 安全组外访问安全组内的GaussDB实例时,需要为安全组添加相应的入方向规则。 检查网络ACL规则。 相同区域主机进行ping测试。 (常见)排除实例的磁盘满的情况 当实例处于“磁盘空间满”状态时,影响数据的正常读写操作。 连接失败的常见报错 包含连接失败的常见报错,以及相应的解决方法。
  • 检查原因 基本原因可能有以下几种: 集群状态是否正常。 连接命令是否正确,用户名、密码、IP地址或端口无误。 安装客户端的操作系统类型、版本是否正确。 安装客户端的操作是否正确。 如果是在公有云环境无法连接,还需要检查以下可能导致异常的原因: 弹性云服务器是否与集群在相同可用分区、虚拟私有云、子网和安全组。 安全组的出入规则是否正确。 如果是在互联网环境无法连接,还需要检查以下可能导致异常的原因: 用户网络是否与互联网可以正常连通。 用户网络防火墙策略是否限制了访问。 用户网络是否需要通过代理才能访问互联网。
  • MySQL为源 以具有创建数据库权限的用户登录 GaussDB数据库 。 执行以下命令,创建兼容MySQL模式GaussDB数据库。 主备版B兼容: create database databasename dbcompatibility = 'B'; 主备版M兼容: create database databasename dbcompatibility = 'M'; 分布式: create database databasename dbcompatibility = 'MySQL'; 执行以下命令,查看是否创建成功。 select * from pg_database where datname = 'databasename'; 主备版B兼容:若datcompatibility兼容性一列为B,则MySQL兼容数据库创建成功。 主备版M兼容:若datcompatibility兼容性一列为M,则M兼容数据库创建成功。 分布式:若datcompatibility兼容性一列为MySQL,则MySQL兼容数据库创建成功。
  • PostgreSQL为源 以具有创建数据库权限的用户登录GaussDB数据库。 执行以下命令,创建兼容PostgreSQL模式GaussDB数据库。 主备版: create database databasename dbcompatibility = 'A'; 分布式: create database databasename dbcompatibility = 'ORA'; 执行以下命令,查看是否创建成功。 select * from pg_database where datname = 'databasename'; 主备版:若datcompatibility兼容性一列为A,则数据库创建成功。 分布式:若datcompatibility兼容性一列为ORA,则数据库创建成功。
  • SQL Server为源 以具有创建数据库权限的用户登录GaussDB数据库。 执行以下命令,创建兼容SQL Server模式GaussDB数据库。 主备版: create database databasename dbcompatibility = 'A' ; 分布式: create database databasename dbcompatibility = 'ORA'; 执行以下命令,查看是否创建成功。 select * from pg_database where datname = 'databasename'; 主备版:若datcompatibility兼容性一列为A,则数据库创建成功。 分布式:若datcompatibility兼容性一列为ORA,则数据库创建成功。
  • Oracle为源 以具有创建数据库权限的用户登录GaussDB数据库。 执行以下命令,创建兼容Oracle模式GaussDB数据库。 主备版: create database databasename dbcompatibility = 'A'; 分布式: create database databasename dbcompatibility = 'ORA'; 执行以下命令,查看是否创建成功。 select * from pg_database where datname = 'databasename'; 主备版:若datcompatibility兼容性一列为A,则Oracle兼容数据库创建成功。 分布式:若datcompatibility兼容性一列为ORA,则Oracle兼容数据库创建成功。
  • GaussDB(DWS)是否支持第三方客户端以及JDBC和ODBC驱动程序? 推荐使用GaussDB(DWS)客户端和驱动程序。与开源的PostgreSQL客户端和驱动程序相比,有两个主要的优点: 安全强化:PostgreSQL驱动程序只支持MD5认证,但GaussDB(DWS)驱动程序支持SHA256和MD5。 数据类型增强:GaussDB(DWS)驱动程序支持新的数据类型smalldatetime和tinyint。 GaussDB(DWS)支持开源PostgreSQL客户端和JDBC和ODBC驱动程序。 兼容的客户端和驱动程序版本如下: PostgreSQL的psql 9.2.4或更高版本 PostgreSQL JDBC驱动程序9.3-1103或更高版本 PSQL ODBC 09.01.0200或更高版本 使用JDBC/ODBC连接GaussDB(DWS),可参见《 数据仓库 服务开发指南》的教程:使用JDBC或ODBC开发。 建议使用官方推荐的方式连接数据库。参见连接集群方式。 其它客户端不能保证100%兼容性,需要客户自行验证。 使用其它客户端如果出现不兼容而报错,且不能替换客户端的情况,可尝试替换客户端中的libpq驱动。替换方法:参见工具下载下载并解压gsql客户端压缩包,获取gsql目录下的libpg.so,替换到客户端指定目录中。 父主题: 数据库连接
  • 最大连接数取值多少合适 GaussDB(for MySQL)标准版允许客户端同时连接的数量除了受制于参数max_connections外,还受操作系统对单进程允许打开最大文件数的限制。例如,当操作系统控制每个进程的最大打开文件数为100时,即使设置参数max_connections为200也不会起作用。 查看操作系统对单进程打开最大文件数的限制(默认为1024)。 ulimit -n 查看参数open_files_limit的值(open_files_limit是在GaussDB(for MySQL)标准版启动过程中从操作系统读取的单进程打开最大文件数的值)。 show variables like 'open_files_limit'; 取值建议 GaussDB(for MySQL)标准版的最大连接数可以自定义取值,但前提是实例的规格可以支撑该值,最大连接数与实例的内存规格息息相关,具体如下: max_connections:允许同时连接的客户端总数。如果设定值为default,表示该参数和数据库实例的内存(单位:GB)相关,计算公式如下: max_connections上限估计数值 = 节点可用内存 / 单个连接预估占用内存 节点可用内存=总内存 - Buffer Pool占用内存 - 1GB(mysqld进程/操作系统/监控程序等) 单个连接预估占用内存(single_thread_memory) = thread_stack(256KB) + binlog_cache_size(32KB) + join_buffer_size(256KB) + sort_buffer_size(256KB) + read_buffer_size(128KB) + read_rnd_buffer_size(256KB)= 大约1MB 华为云不同内存规格配置的默认max_connections值如下表所示。 表1 不同内存规格配置的默认max_connections值 内存(GB) 连接数 512 100000 384 80000 256 60000 128 30000 64 18000 32 10000 16 5000 8 2500 4 1500 2 800 在实际业务中,最大连接数并不是设置的越大越好,建立的连接数越多,对应的资源开销也就越多。
  • 如何创建并登录弹性云服务器 创建并登录弹性云服务器,请参见《弹性云服务器快速入门》中“购买弹性云服务器”和“登录弹性云服务器”。 该弹性云服务器用于连接文档数据库实例,需要与待连接的实例处于同一虚拟私有云子网内。 创建弹性云服务器时,要选择操作系统,例如Redhat6.6,并为其绑定EIP(Elastic IP,弹性公网IP)。 正确配置安全组,使得弹性云服务器可以通过文档数据库服务“基本信息”页面下节点的“内网IP”访问文档数据库实例。 父主题: 数据库连接
  • 关于max_connections max_connections:允许同时连接的客户端总数。如果设定值为default,表示该参数和数据库实例的内存(单位:GB)相关,计算公式如下: max_connections上限估计数值 = 节点可用内存 / 单个连接预估占用内存。 节点可用内存=总内存 - Buffer Pool占用内存 - 1GB(mysqld进程、操作系统、监控程序等)。 单个连接预估占用内存(single_thread_memory) = thread_stack(256KB) + binlog_cache_size(32KB) + join_buffer_size(256KB) + sort_buffer_size(256KB) + read_buffer_size(128KB) + read_rnd_buffer_size(256KB)= 大约1MB。
  • 内网如何访问GeminiDB Redis 内网可以通过负载均衡(ELB)和直连节点访问实例,有以下区别: 通过负载均衡地址连接实例(推荐):ELB底层是一个高可用集群,提供一个负载均衡地址给用户访问。会定期与后端节点探活,可有效避免后端节点单点故障。 通过节点连接实例:GeminiDB Redis节点包含代理进程,用户连接任意一个节点可访问整个集群。该访问方式可能存在单点故障,推用于测试场景。 通过内网连接GeminiDB Redis实例请参考通过内网连接GeminiDB Redis。 父主题: 数据库连接
  • 如何查看RDS for MySQL数据库的连接情况 您可以通过以下任意一种方式查看RDS for MySQL数据库的连接情况: 在RDS for MySQ L实例 上以管理员账户root执行以下命令,查看当前实例上正在运行的线程。 show full processlist; Id:线程ID标识,可通过kill id终止语句。 User:当前连接用户。 Host:显示这个连接从哪个IP的哪个端口上发出。 db:数据库名。 Command:连接状态,一般是sleep(休眠),query(查询),connect(连接)。 Time:连接持续时间,单位是秒。 State:显示当前SQL语句的状态。 Info:显示这个SQL语句。 Memory_used:当前连接的内存使用量。 Memory_used_by_query:当前Query的内存使用量。 CPU_time:显示当前连接已经建立的时间(针对最新小版本,5.6版本此列信息有实际的取值,5.7和8.0版本此列信息未采集)。 Trx_executed_time:显示当前事务的执行时间。 在实例管理页面单击“查看监控指标”,进入指标信息页面。 查看“数据库总连接数”指标,一般情况下,主备实例会占用2个连接,除此之外的连接为当前实例有用户在连接使用。 父主题: 数据库连接
  • 未开通公网访问的实例 在虚拟私有云中开通 虚拟专用网络 (Virtual Private Network,简称VPN),通过虚拟专用网络连接云数据库RDS。 将云数据库RDS与弹性云服务器创建在同一个虚拟专用网络下,通过弹性云服务器来访问云数据库RDS。 具体请参见: 通过内网连接RDS for MySQL实例 通过内网连接RDS for MariaDB实例 通过内网连接RDS for PostgreSQL实例 通过内网连接RDS for SQL Server实例
  • GeminiDB Redis自带的负载均衡地址是否能绑定公网IP?如何通过公网连接GeminiDB Redis实例? GeminiDB Redis实例自带的负载均衡地址不支持绑定公网IP,可以通过以下2种方式进行公网访问: 通过节点绑定弹性公网IP:推荐在测试场景使用,生产业务如遇单点故障,会导致业务受损。 通过购买弹性负载均衡,绑定弹性公网IP的方式连接GeminiDB Redis实例,详细内容请参考通过弹性负载均衡绑定弹性公网IP连接实例。 父主题: 数据库连接