Shared Server 的高可用特性

简介: PolarDB for PostgreSQL 提供了更多企业级数据库的特性。本实验将体验其 Shared Server 的高可用特性。

Shared Server 的高可用特性

1. 资源创建

开始实验之前,您需要先创建相关实验资源。

登录成功后,搜索并进入 PolarDB 的控制台:

  1. 在实验室页面,单击创建资源。
  2. (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。

说明:资源创建过程需要3~8分钟。


2. 创建用户并登录到 DMS

首先打开桌面的 Chrome 浏览器,使用左侧给出的子用户名称和子用户密码登录。

登录成功后,搜索并进入 PolarDB 的控制台:

进入控制台以后,点击全局概览,可以看到正在运行中的 PolarDB for PostgreSQL 实例。

点击这个实例查看详情:

实例详情如下:

对于一个新实例来说,我们需要创建一个新的用户才可以使用 PolarDB 实例。点击创建用户,创建一个名为 polardb 的高权限用户。

另外,如果需要使用自己的客户端来连接阿里云上的 PolarDB 实例,还需要配置客户端的 IP 地址白名单。只有在这个白名单中的 IP 地址才可以连接到 PolarDB 上。那么这里我们可以直接使用阿里云数据库的 DMS(数据管理服务),从网页上直接连接到数据库。这样就会使用 DMS 的内部 IP 地址来连接数据库,是不需要配置 IP 白名单的。

点击登录数据库,进入到 DMS 控制台。

输入刚才创建的数据库账号的用户名和密码:

成功登录 DMS 以后,点击左侧的 SQL 窗口,选择连接默认数据库 postgres :


3. 参数学习

shared server为保证系统性能和兼容特性,提供了众多参数来适配不同的场景。

实验版本的shared server功能默认关闭,由于开启参数需要使用后台超级管理员权限(后续会逐步放开权限)并配合实例的重启,

受限于演示环境的权限限制不能开启直接演示,本次实验着重让大家了解下相关的系统参数,对于并发连接时的backend的共享效果直接在后一页通过截图展示(最后一页不用实践)。

  1. shared server使用的核心参数

1.1 polar_enable_shared_server:控制shared server功能开启,当前默认关闭

1.2 polar_ss_shared_memory_size控制shared server使用全局共享内存的上限, 默认1MB

-单位kB, 为0时表示关闭Shared Server

-单个空白session要占用共享内存2k,一个查询的prepare plancache占用0.6k。 plancache的内存占用是大头,如果单个session有较多prepare plancache, 多个session时很容易oom。

show polar_ss_shared_memory_size;
show polar_enable_shared_server;

1.3 polar_enable_shm_aset:参数控制是否开启全局共享内存,当前默认关闭(需要超级管理员用户配置,实验环境暂不支持)

show polar_enable_shm_aset;

具体配置方式如下

注意:下面代码不需要实验

alter system set polar_enable_shm_aset = on;

alter system set polar_ss_shared_memory_size = '1MB';

alter system set polar_enable_shared_server = 1;

select pg_reload_conf();

  1. 与shared server相关的参数众多,为了可以在少量并发场景下可以察到backend共享,可以对如下参数进行调整,从而达到降低shared server开启阀值的目的。

2.1 polar_ss_dispatcher_count:控制dispatcher最大个数, 默认2,最大为cpu核数

2.2 polar_ss_client_threshold_for_shared:控制超过多少个连接后, 新连接才会使用SS。 默认100

show polar_ss_dispatcher_count;
show polar_ss_client_threshold_for_shared;
  1. 除此之外还有很多策略参数,这里简单举两例,剩余参数搭建可以关注后续官网发布。

polar_ss_client_schedule_policy:控制client选择dispatcher的策略, 默认load-balancing, 支持round-robin, random

polar_ss_session_schedule_policy:控制session选择backend的策略, 默认fifo, 支持random, disposable, dedicated

show polar_ss_client_schedule_policy;
show polar_ss_session_schedule_policy;


4. backend共享验证

由于实验环境的限制,对backend共享的场景直接通过截图展示:

其中pg_backend_pid表示session id,polar_session_backend_pid表示使用的backend id

图一和图二分别可以观测到:

  1. 同一个seesion不同的事务内可以使用不同的backend;
  2. 不同的session可以使用同一个backend id;

图一:

图二:

实验链接:https://developer.aliyun.com/adc/scenario/12384f08c88048acadcc756851664259

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
相关文章
如何用vcftools从VCF文件中提取某条染色体信息
如何用vcftools从VCF文件中提取某条染色体信息
|
8月前
|
SQL 人工智能 弹性计算
阿里云快速部署OpenClaw,9.9元定制AI助理,快速拥有OpenClaw超级助理!
阿里云推出OpenClaw一键部署方案,新用户首月仅9.9元!零代码、10分钟极速搭建,即可拥有可执行任务、有记忆、高定制的本地优先AI智能体。支持文件管理、邮件处理、代码编写等实操,兼容通义千问等大模型,安全稳定、普惠易用。
711 6
|
8月前
|
JSON API 开发者
实战指南:使用API高效获取纳斯达克股票数据
本文为开发者提供纳斯达克股票数据API实战指南:支持实时行情、历史K线(1分钟至日线)、公司基本面及IPO日历等全维度数据;仅需`countryId=5`即可接入,统一JSON返回,附Python示例与WebSocket低延迟方案。(239字)
|
4月前
|
人工智能 自然语言处理 安全
龙虾AI企业数字员工平台推荐:2026年主流智能体深度评测与选型指南
本文系统评测国内主流“龙虾AI”企业数字员工平台(基于OpenClaw框架,支持AI直接操控电脑),从任务执行、部署灵活度、安全可控性等5维度评分,覆盖AionClaw、通智AI等7款产品,助力企业按场景精准选型。(239字)
|
11月前
|
机器学习/深度学习 搜索推荐 算法
广告系统:广告引擎如何做到在 0.1s 内返回广告信息?
广告系统是互联网核心营收支柱,支撑Google、Facebook等公司超80%收入。其本质是高并发、低延迟的实时检索系统,需在0.1秒内完成百万级广告匹配。本文详解广告引擎架构:通过标签过滤、树形分片优化索引;引入向量检索实现智能匹配;采用非精准打分预筛+深度学习精排的混合排序策略;并在离线索引构建时前置过滤无效广告,压缩检索空间。结合业务特点,从索引、召回到排序全方位提升性能,保障高效精准投放。
|
人工智能 搜索推荐 机器人
从物流到汽车:阿里云智能联络中心如何在高频外呼场景中跑出结果?
阿里云智能联络中心2.0通过“通信智能引擎+通信智能体”双模式,将语音通信、大模型与业务流程深度融合。已在物流(日均80万通外呼,提升末端履约体验)和汽车(500万通外呼,促5万+试驾、5000+订单)落地,实现高并发稳定触达、拟人化交互与线索高效转化,让智能外呼真正融入生产链路。
486 0
|
6月前
|
数据采集 数据可视化 数据挖掘
均线选股策略研究:基于 Python 数据分析实现
均线选股策略研究:基于 Python 数据分析实现
|
8月前
|
人工智能 前端开发 JavaScript
JeecgBoot低代码平台 Qiankun 微前端集成指南:主应用配置全流程
当 JeecgBoot低代码项目发展到一定规模,单体前端的弊端开始显现:模块耦合严重、构建时间激增、团队协作困难。微前端架构允许将不同业务模块拆分为独立的子应用,各自开发、独立部署,通过 Qiankun 框架在运行时动态组合。 本文聚焦于如何将 JeecgBoot-Vue3 配置为 Qiankun 微前端的主应用(基座),接管路由分发和子应用生命周期管理。 在 JeecgBoot低代码主应用项目中安装 Qiankun:
378 3
|
关系型数据库 分布式数据库 PolarDB
PolarDB开源数据库进阶课1 搭建共享存储集群
在笔记本上构建PolarDB RAC环境,本文介绍了一种适用于Windows、macOS和Linux的方法:通过将宿主机上的文件模拟为块设备,并在多个Docker容器中使用loop设备共享该文件。此方法解决了macOS不支持直接挂载块设备的问题。
736 2
|
10月前
|
安全 API 数据处理
纳斯达克股票数据API对接指南
本指南介绍如何通过API对接纳斯达克股票数据,涵盖实时行情、历史K线、公司基本面等,支持RESTful与WebSocket,提供免费测试密钥,助力快速集成美国股市数据。