云服务器内容精选

  • 最大连接数取值多少合适 MySQL RDS for MySQL允许客户端同时连接的数量除了受制于参数max_connections外,还受操作系统对单进程允许打开最大文件数的限制。例如,当操作系统控制每个进程的最大打开文件数为100时,即使设置参数max_connections为200也不会起作用。 查看操作系统对单进程打开最大文件数的限制(默认为1024)。 ulimit -n 查看参数open_files_limit的值(open_files_limit是在RDS for MySQL启动过程中从操作系统读取的单进程打开最大文件数的值)。 show variables like 'open_files_limit'; 取值建议 RDS 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 在实际业务中,最大连接数并不是设置的越大越好,建立的连接数越多,对应的资源开销也就越多。 PostgreSQL 根据业务的复杂度,合理配置“max_connections”。具体参考管理维护规范。
  • 修改最大连接数 MySQL 连接数支持在线修改,具体方法请参考修改实例参数。 支持命令查看RDS for MySQL的最大连接数。 show global variables like 'max_connections'; PostgreSQL 连接数支持在线修改,具体方法请参考修改实例参数。 支持命令查看RDS for PostgreSQL的最大连接数。 show max_connections; 如果您需要通过命令修改连接数,请提交工单处理。
  • JDBC Connector 如果使用mysql jdbc connector来连接Doris,可以使用jdbc的自动重试机制: private static String URL = "jdbc:mysql:loadbalance://" + "cloudtable-2e68-ya-frontend-2-1-M07K7np5.mycloudtable.com:9030,cloudtable-2e68-ya-frontend-1-1-y5R8YNiy.mycloudtable.com:9030,cloudtable-2e68-ya-frontend-3-1-fGg7P4tA.mycloudtable.com:9030/demo?" + "loadBalanceConnectionGroup=first&ha.enableJMX=true"; 样例代码: public class Test { private static String URL = "jdbc:mysql:loadbalance://" + "FE1:9030,FE2:9030,FE3:9030/demo?" + "loadBalanceConnectionGroup=first&ha.enableJMX=true"; static Connection getNewConnection() throws SQLException, ClassNotFoundException { Class.forName("com.mysql.cj.jdbc.Driver"); // 认证用的密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量 String password = System.getenv("USER_PASSWORD"); return DriverManager.getConnection(URL, "admin", password); } public static void main(String[] args) throws Exception { Connection c = getNewConnection(); while (true) { try { String query = "your sqlString"; c.setAutoCommit(false); Statement s = c.createStatement(); ResultSet resultSet = s.executeQuery(query); System.out.println("begin print"); while(resultSet.next()) { int id = resultSet.getInt(1); System.out.println("id is: "+id); } System.out.println("end print"); Thread.sleep(Math.round(100 * Math.random())); } catch (Exception e) { e.printStackTrace(); } } } }
  • enable_connect_standby 参数说明:设置CN连接DN备机。该参数仅8.3.0及以上集群版本支持。 参数类型:USERSET 取值范围:布尔型 on表示CN连接备机。 off表示CN连接DN主机。 默认值:off 不建议在日常业务中使用此参数,仅适用于运维操作,更不建议使用gs_guc工具进行全局设置。否则可能会导致数据不一致,结果集错误等问题。 已创建临时表的session打开此参数后将造成DN上的临时表数据丢失,后续无法进行临时表相关操作。
  • comm_cn_dn_logic_conn 参数说明:CN和DN间逻辑连接特性开关,重启集群生效。 参数类型:POSTMASTER 取值范围:布尔型 on/true表示CN和DN之间连接为逻辑连接,使用libcomm组件。 off/false表示CN和DN之间连接为物理连接,使用libpq组件。 如果CN设置comm_cn_dn_logic_conn为off,DN设置comm_cn_dn_logic_conn为on会导致集群不能正常通信,因此必须对该参数做CN和DN全局相同的配置,重启集群生效。 默认值:off
  • max_stream_pool 参数说明:设置stream线程池能够容纳stream线程的最大个数。该参数8.1.2及以上版本支持。 参数类型:SUSET 取值范围:整型,-1~INT_MAX,-1和0表示关闭stream线程池。 默认值: 新安装集群默认值计算公式为:max_stream_pool=MIN(max_connections, max_process_memory/16/5MB, 1024) 旧集群升级到及以上新集群版本的默认值计算公式为:max_stream_pool=MIN(max_connections, max_process_memory/16/5MB, 1024,旧集群值),升级时也强制应用新装集群的设置值,但旧值小时取旧值。 支持实时减少线程池中stream线程的个数;若增大该参数值,stream线程的个数由业务驱动向上增长。 通常情况下不建议调整该参数值,因为stream线程池有自动清理功能。 如果stream空闲线程过多造成内存占用,可以调小此值以节约内存。
  • comm_client_bind 参数说明:通信库客户端发起连接时是否使用bind绑定指定IP。 参数类型:USERSET 取值范围:布尔型 on表示绑定指定IP。 off表示不绑定指定IP。 如果集群某一节点存在多个IP处于同一通信网段时,需设置为on。此时将绑定本地listen_addresses指定的IP发起通信,随机端口号不能重复使用,集群并发数量会受到可用随机端口号数量的限制。 默认值:off
  • client_connection_check_interval 参数说明:客户端连接状态检测时间间隔。该参数仅8.2.0及以上集群版本支持。 参数类型:USERSET 取值范围:整型,0 ~ INT_MAX,单位为毫秒。0表示不检测客户端连接状态。 默认值:10000 通过gsql/jdbc/odbc等客户端直连CN执行长查询,在长查询执行期间: CN每隔client_connection_check_interval时间检测一次客户端连接状态,若检测到客户端与CN的连接已经断开,则服务端主动终止长查询的执行,释放相关资源,避免集群资源浪费。 DN每隔client_connection_check_interval时间检测一次CN与DN的连接状态,若检测到CN与DN的连接已经断开,则DN主动终止长查询的执行,释放相关资源,避免集群资源浪费。
  • enable_stateless_pooler_reuse 参数说明:pooler复用切换开关,重启集群生效。 参数类型:POSTMASTER 取值范围:布尔型 on/true表示使用pooler复用模式。 off/false表示关闭pooler复用模式。 CN和DN需要同步设置。如果CN设置enable_stateless_pooler_reuse为off,DN设置enable_stateless_pooler_reuse为on会导致集群不能正常通信,因此必须对该参数做CN和DN全局相同的配置,重启集群生效。 默认值:off
  • 非SSL方式 使用非SSL方式连接,请务必关闭SSL连接,否则会出现报错。如何关闭SSL连接,请参见开启和关闭SSL连接。 打开Robo 3T工具,在连接信息页面,单击“Create”。 图8 连接信息 在弹出的“Connection Settings”窗口,设置新建连接的参数。 在“Connection”页签,“Name”填写自定义的新建连接的名称,“Address”填写集群实例绑定的弹性IP和实例的数据库端口。 图9 Connection 在“Authentication”页签,“Database”填写admin,“User Name”填写rwuser,“Password”填写您创建集群实例时设置的管理员密码。 图10 Authentication 在“TLS”页签,勾选“Use TLS protocol”,“Authentication Method”选择“Self-signed Certificate”。 图11 SSL 设置完成后,单击“Save”。 在连接信息页面,单击“Connect”,开始连接单节点实例。 图12 单节点连接信息 成功连接单节点实例,工具界面显示如图13所示。 图13 单节点连接成功
  • SSL方式 使用SSL方式连接,请务必开启SSL连接,否则会报错。关于如何开启SSL连接,请参见开启和关闭SSL连接。 打开Robo 3T工具,在连接信息页面,单击“Create”。 图2 连接信息 在弹出的“Connection Settings”窗口,设置新建连接的参数。 在“Connection”页签,“Name”填写自定义的新建连接的名称,“Address”填写集群实例绑定的弹性IP和实例的数据库端口。 图3 Connection 在“Authentication”页签,“Database”填写admin,“User Name”填写rwuser,“Password”填写您创建集群实例时设置的管理员密码。 图4 Authentication 在“TLS”页签,勾选“Use TLS protocol”,“Authentication Method”选择“Self-signed Certificate”。 图5 SSL 设置完成后,单击“Save”。 在连接信息页面,单击“Connect”,开始连接单节点实例。 图6 单节点连接信息 成功连接单节点实例,工具界面显示如图7所示。 图7 单节点连接成功
  • 前提条件 绑定弹性公网IP并设置安全组规则。 对目标副本集实例绑定弹性公网IP。 关于如何绑定弹性公网IP,请参见绑定弹性公网IP。 获取本地设备的IP地址。 设置安全组规则。 将1.b中获取的IP地址及目标实例的端口加入安全组允许访问的范围中。 关于如何设置安全组规则,请参见设置安全组规则。 使用ping命令连通1.a中绑定的弹性公网IP,确保本地设备可以访问该弹性公网IP。 安装Robo 3T工具。 详细操作请参见如何安装Robo 3T工具。
  • 非SSL方式 使用非SSL方式连接,请务必关闭SSL连接,否则会出现报错。如何关闭,请参见开启和关闭SSL连接。 打开Robo 3T工具,在连接信息页面,单击“Create”。 图8 连接信息 在弹出的“Connection Settings”窗口,设置新建连接的参数。 在“Connection”页签,“Name”填写自定义的新建连接的名称,“Address”填写集群实例绑定的弹性IP和实例的数据库端口。 图9 Connection 在“Authentication”页签,“Database”填写admin,“User Name”填写rwuser,“Password”填写您创建集群实例时设置的管理员密码。 图10 Authentication 设置完成后,单击“Save”。 在连接信息页面,单击“Connect”,开始连接副本集实例。 图11 副本集连接信息 成功连接副本集实例,工具界面显示如图12所示。 图12 副本集连接成功
  • SSL方式 使用SSL方式连接,请务必开启SSL连接,否则会报错。关于如何开启SSL连接,请参见开启和关闭SSL连接。 打开Robo 3T工具,在连接信息页面,单击“Create”。 图2 连接信息 在弹出的“Connection Settings”窗口,设置新建连接的参数。 在“Connection”页签,“Name”填写自定义的新建连接的名称,“Address”填写集群实例绑定的弹性IP和实例的数据库端口。 图3 Connection 在“Authentication”页签,“Database”填写admin,“User Name”填写rwuser,“Password”填写您创建集群实例时设置的管理员密码。 图4 Authentication 在“TLS”页签,勾选“Use TLS protocol”,“Authentication Method”选择“Self-signed Certificate”。 图5 SSL 设置完成后,单击“Save”。 在连接信息页面,单击“Connect”,开始连接副本集实例。 图6 集群连接信息 成功连接副本集实例,工具界面显示如图7所示。 图7 副本集连接成功
  • 创建LakeFormation数据连接 创建LakeFormation数据连接的功能,需要联系技术支持申请开通白名单。 登录 MRS 控制台,在导航栏选择“数据连接”。 单击“新建数据连接 ”。 参考表1配置相关参数,单击“确定”完成创建。 表1 配置LakeFormation数据连接 参数 示例 说明 类型 LakeFormation 选择“LakeFormation”,当前仅MRS 3.3.0-LTS及之后版本支持连接该类型。 名称 mrs_LakeFormation 数据连接的名称。 LakeFormation实例 - 选择LakeFormation实例名称。 该实例需要先在LakeFormation实例创建后在此处引用,具体请参考创建LakeFormation实例。单击“查看LakeFormation实例”查看已创建的实例。 虚拟私有云 - 需要与待对接的MRS集群在同一虚拟私有云。 子网 - 选择子网名称。 VPC终端节点 - 选择VPC终端节点,或单击“创建对应LakeFormation实例的VPC终端节点”进行创建。 选择VPC终端节点后,产生的费用将由VPCEP服务收取。 LakeFormation委托 现有委托 选择“现有委托”,并选择创建对接LakeFormation权限的委托创建的委托,例如“visit_lakeformation_agency”。 图3 新建LakeFormation数据连接 创建完成后,在“数据连接”页面记录已创建数据连接的ID。