爆款云主机低至25.83元/年
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 云聚517 · 好价翼起拼 NEW 爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 聚力AI赋能 天翼云大模型专项 大模型特惠专区·Token Plan 轻享包低至9.9元起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 企业出海解决方案 NEW 助力您的业务扬帆出海,通达全球!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
Token服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V4-Flash
  • GLM-5.1
  • Qwen3.5-122B-A10B
  • DeepSeek-V3.2(旗舰版)
  • GLM-5(正式版)
智算一体机
  • 智算一体机
智能体引擎
  • 智能体引擎
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2026智能云生态大会
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      对象存储(原生版)I型_相关内容
      • 服务版本差异一览表
        边缘重保服务产品将于2025年6月10日00时正式开始收费,本章节介绍边缘重保服务的不同商用服务版本之间的差异。 产品版本 体验版 基础护航服务 尊享护航服务 基础安全护航服务 尊享安全护航服务 重保方式 远程护航 远程护航 驻场值守 远程护航 驻场值守 服务人员 高级技术支持工程师 高级技术支持专家 资深技术支持专家 高级安全专家 资深安全专家 支持产品 CDN 加速、视频直播、全站加速、边缘安全加速平台、安全加速、Web 应用防火墙(边缘云版)、DDoS 高防(边缘云版)、智能边缘云 CDN加速、视频直播、全站加速、智能边缘云 CDN加速、视频直播、全站加速、智能边缘云 CDN 加速、视频直播、全站加速、边缘安全加速平台、安全加速、Web 应用防火墙(边缘云版)、DDoS 高防(边缘云版)、智能边缘云 CDN 加速、视频直播、全站加速、边缘安全加速平台、安全加速、Web 应用防火墙(边缘云版)、DDoS 高防(边缘云版)、智能边缘云 交付物 《重保总结》(不含优化建议) 《边缘重保服务项目实施方案》 《相关方通讯录》 《重保服务启动会会议纪要》 《风险评估表》 《重保服务每日总结》 《重保巡检记录单》 《重保应急处置记录单》 《重保定制需求处理单》 《重保总结》(含优化建议) 《第三方监测报告》(按需) 《边缘重保服务项目实施方案》 《相关方通讯录》 《重保服务启动会会议纪要》 《风险评估表》 《重保服务每日总结》 《重保巡检记录单》 《重保应急处置记录单》 《重保定制需求处理单》 《重保总结》(含优化建议) 《第三方监测报告》(按需) 《产品培训资料》(按需) 《重保服务与实施方案》 《相关方通讯录》 《重保服务启动会会议纪要》 《风险评估表》 《重保服务每日总结》 《重保巡检记录单》 《重保应急处置记录单》 《重保定制需求处理单》 《重保总结》(含优化建议) 《第三方监测报告》(按需) 《重保服务与实施方案》 《相关方通讯录》 《重保服务启动会会议纪要》 《风险评估表》 《重保服务每日总结》 《重保巡检记录单》 《重保应急处置记录单》 《重保定制需求处理单》 《重保总结》(含优化建议) 《第三方监测报告》(按需) 《产品培训资料》(按需) 说明 交付物内容会根据实际保障场景及保障需求进行调整。
        来自:
        帮助文档
        边缘重保服务
        产品介绍
        服务版本差异一览表
      • 步骤一:购买DRDS实例
        在使用DRDS前,您需要先创建DRDS实例。本文介绍如何创建DRDS实例。 注意事项 仅华东1、西南1和青岛20这三个资源池支持选择多个可用区、性能类型和企业项目。 V5.1.9.6020.2530及以后版本,创建实例时,Giserver与DBProxy合并部署,不再区分DBProxy和Giserver两种实例。 注意 当您需要使用GiServer时,只需开启GiServer服务,具体操作,请参见开启全局索引。 V5.1.9.6020.2533及以后版本,创建实例时,支持关联与DRDS实例相同网络的MySQL实例,或同步创建全局Binlog日志节点。 操作步骤 1. 进入DRDS实例订购页面。 方法一: 1. 在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 分布式关系型数据库 ,进入分布式关系型数据库产品页面。然后单击管理控制台 ,进入概览页面。 2. 在左侧导航栏,选择DRDS > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。 3. 在实例列表上方,单击创建实例 ,进入DRDS实例订购页面。 方法二: 1. 在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 分布式关系型数据库 ,进入分布式关系型数据库产品页面。然后单击立即开通,进入DRDS实例订购页面。 2. 在顶部菜单栏,选择区域和项目。 2. 根据实际情况,配置如下实例相关参数。 模块 参数 描述 基本信息 组件引擎和版本 选择DRDS实例组件引擎和版本: 引擎:DRDS 版本:1.0 基本信息 区域 实例所在区域,支持在顶部菜单栏左上角切换到其他区域。 注意 不同区域内的产品内网不互通,且购买后不能更换,请谨慎选择。 基本信息 计费模式 支持包年/包月和按需计费(部分资源池显示为按需)两种模式: 包年/包月:选购完服务配置后,需设置购买时长,系统将一次性按照购买价格对账户余额进行扣费。 按需计费:选购完服务配置后,无需设置购买时长,系统会根据消费时长对账户余额进行扣费。 注意 贵州3、北京5暂不支持按需计费。 基础配置 可用区 可选择1个或多个可用区,跨可用区部署可以提升DRDS实例的高可用性,实现跨可用区的容灾能力。 仅部分资源池支持选择多个可用区,详见注意事项。 注意 若选择2个可用区,DRDS实例的节点数量是单可用区的2倍。 实例配置 计算节点数量 DRDS实例的计算节点数量,不同实例类型支持不同的节点数量,其中,每个可用区最多支持6个节点。 请根据业务所需的计算能力,选择合适的节点数量。创建后可通过规格变更进行扩容。 说明 部分资源池不支持配置单节点规格 和节点数量 ,支持配置实例规格 ,即支持选择DRDS实例的总规格(总规格单节点规格节点数量)。不同实例类型支持不同的实例规格,详见规格。 实例配置 CPU类型 DRDS的实例节点类型,默认为X86。 注意 部分资源池支持ARM,具体以控制台显示为准。 实例配置 性能类型 节点规格支持多种类型,例如通用型 、计算增强型 、内存优化型 等类型,具体性能类型信息,请参见规格。 支持选择不同代系主机,代系越高,性能与稳定性等整体表现越好。 为了使所购买的DRDS实例能更好地满足应用需求,您需要根据业务需求,评估所需要的服务能力和规模,选择合适的性能类型。 说明 部分资源池此配置项名称为主机类型,则不支持选择节点规格,仅支持选择主机代系,请以实际页面为准。 实例配置 单节点规格 请选择单节点的CPU和内存。 实例配置 日志节点 全局Binlog的日志节点,支持: 现在创建:创建DRDS时,同时创建日志节点。此时,您需要配置日志节点数量、所在的可用区和性能规格。 注意 仅支持1个日志节点。 使用时创建 :创建DRDS实例后,如您需要使用日志节点,只需在目标实例的日志节点管理页面创建日志节点即可。 实例配置 实例名称 DRDS实例的名称。 名称不能为空,长度为4到50位的字符。 实例配置 标签 您可以为实例绑定标签,对实例进行分类管理。 最多支持添加50个标签。 企业项目 企业项目 企业项目提供了对云资源进行分组管理,不同企业项目下的资源逻辑隔离,但不影响业务关联。仅部分资源池支持选择企业项目,详见注意事项。 网络 虚拟私有云 DRDS实例所在的虚拟专用网络,可对不同业务进行网络隔离,您可以根据需求选择所需的虚拟私有云。 DRDS实例选择的虚拟私有云要与MySQL实例一致,以保证网络连通。另外,建议DRDS实例与应用程序处于同一虚拟私有云下,避免网络原因造成性能损耗。 网络 子网 通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性。子网在可用区内才会有效。 网络 安全组 安全组限制实例的安全访问规则,加强DRDS与其他服务间的安全访问。建议DRDS实例与应用程序、MySQL实例选择相同的安全组,确保三者网络访问不受限制。如果选择了不同的安全组,请注意添加安全组访问规则,开通网络访问。 关联数据库实例 数据库实例 关联与DRDS实例相同网络的MySQL实例。 在数据库实例 列表中选中目标MySQL实例后,单击绑定,即可为DRDS实例关联该MySQL实例。 购买量 购买时长 当计费模式 选择包年/包月时,才需要选择购买时长,单次最多支持购买5年。 购买量 购买数量 当计费模式 选择包年/包月时,支持批量创建实例,单次最多可批量购买5个实例。系统会自动计算对应的配置费用,购买时间越长,折扣越多。 当计费模式 选择按需时,单次只能购买1个实例。 购买量 自动续订 包年包月的实例支持自动续订。 按月购买的实例,自动续订周期为1个月。 按年购买的实例,自动续订周期为1年。 3. 在页面右侧的当前配置中,查看当前实例配置。 4. 在页面右下角阅读并勾选协议,然后单击确认订单。 5. 在订单支付详情页面,确认订单信息无误后,选择付费方式,完成支付。 6. 支付完成后,回到控制台的DRDS > 实例管理页面,查看和管理该实例。 您可以看到实例状态 为创建中 ,当实例创建成功后,实例状态 显示为运行中 。
        来自:
        帮助文档
        分布式关系型数据库
        快速入门
        步骤一:购买DRDS实例
      • 客户端不兼容SNI导致访问异常怎么办?
        本文将介绍客户端不兼容SNI导致访问异常怎么办。 SNI(Server Name Indication)是为了解决一个服务器使用多个域名和证书的问题。而对SSL/TLS协议所作的一个扩展,它允许服务器在同一个IP地址和TCP端口下支持多个证书,从而允许多个HTTPS网站使用相同的源站IP和端口。在接入Web应用防火墙(边缘云版)后,如果您出现部分客户端HTTPS访问异常问题,可能是由于有些客户端版本不支持SNI导致的。当使用不支持SNI的浏览器或客户端访问接入Web应用防火墙(边缘云版)服务的网站时,Web应用防火墙(边缘云版)防护节点不知道客户端请求的是哪个域名,所以无法正确得获取域名对应得证书来跟客户端通讯交互,此时在浏览器上就会出现“服务器证书不可信”的提示。 实际场景中,一般是只有部分旧版的PC浏览器和Android客户端不支持SNI。如果客户端不支持SNI扩展,建议通过以下方式来解决: 建议升级客户端版本,或使用新版本的浏览器访问,比如使用Chrome、Firefox等新版本的浏览器访问。 第三方程序回调的业务场景,如果第三方程序客户端不支持SNI,可建议让其直接请求访问源站IP,绕过Web应用防火墙(边缘云版)。
        来自:
        帮助文档
        Web应用防火墙(边缘云版)
        常见问题
        故障分析
        客户端不兼容SNI导致访问异常怎么办?
      • 重启后盘符发生变化怎么办?
        本节介绍了重启后盘符发生变化怎么办的问题现象、处理方法。 问题现象 Linux弹性云主机在线卸载云硬盘后重新挂载云硬盘,或在线卸载云硬盘后重启弹性云主机,可能会存在挂载前后盘符发生变化的情况。这是由于Linux系统的盘符分配机制造成的,属于正常情况。 假设云主机有/dev/vda1,/dev/vdb1,/dev/vdc1三块磁盘,在/etc/fstab中的挂载参数如下所示: cat /etc/fstab UUIDb9a07b7b93224e05ab9b14b8050bdc8a / ext4 defaults 0 1 /dev/vdb1 /data1 ext4 defaults 0 0 /dev/vdc1 /data2 ext4 defaults 0 0 卸载了原来的/dev/vdb1,则重启云主机后之前的/dev/vdc1会变成/dev/vdb1并挂载到/data1挂载点了,而/data2则无盘可以挂载。 处理方法 为了防止发生这种情况,建议使用UUID来代替代/dev/vdx设备,UUID是Linux系统为磁盘分区提供的唯一的标识字符串。 1. 执行如下命令,查询磁盘分区的UUID。 blkid 磁盘分区 以查询磁盘分区“/dev/vdb1”的UUID为例: blkid /dev/vdb1 回显类似如下信息: [root@ecstest0001 ~] blkid /dev/vdb1 /dev/vdb1: UUID"b9a07b7b93224e05ab9b14b8050cd8cc" TYPE"ext4" 表示“/dev/vdb1”的UUID。 2. 执行以下命令,使用VI编辑器打开“fstab”文件。 vi /etc/fstab 3. 按“i”,进入编辑模式。 4. 将光标移至文件末尾,按“Enter”,添加如下内容。 UUIDb9a07b7b93224e05ab9b14b8050cd8cc /mnt/sdc ext4 defaults 0 0 重复替换“/dev/vdc1”的UUID,再次执行以下命令查看磁盘挂载参数: cat /etc/fstab 回显信息如下所示: UUIDb9a07b7b93224e05ab9b14b8050bdc8a / ext4 defaults 0 1 UUIDb9a07b7b93224e05ab9b14b8050cd8cc /data1 ext4 defaults 0 0 UUIDb9a07b7b93224e05ab9b14b8050ab6bb /data2 ext4 defaults 0 0
        来自:
        帮助文档
        弹性云主机 ECS
        常见问题
        磁盘管理
        其他
        重启后盘符发生变化怎么办?
      • 模型加速
        本节介绍模型分发加速。 前置要求 请确保集群已安装 cstorcsi 插件。 要求 详细信息 插件 如何安装上述插件? 在集群列表页点击进入指定集群; 在左侧导航栏中选择“插件/插件市场”,进入插件市场列表页; 搜索指定插件,点击“安装”; 背景与挑战 在当前的模型分发方案中,所有的模型权重文件均通过天翼云ZOS(对象存储)进行统一管理。随着模型规模的不断增大(例如Qwen、DeepSeek、KIMI等大模型,文件大小往往从几十GB到几百GB不等),如何在模型部署时快速地下载权重文件,成为了关键瓶颈。传统的单线程下载方式难以充分利用网络带宽,尤其是在高带宽环境下,极易因传输效率低下而导致下载时间过长。为此,我们设计了一套多线程并发下载方案,不仅支持丰富的对象管理命令,更具备以下核心优势,使其成为模型分发场景的理想选择。 高并发机制:内置支持并发上传/下载,能够显著提升大文件和批量小文件的传输速度。 断点续传:在下载大文件(如模型权重)时,如果网络中断,无需从头开始 脚本友好:作为命令行工具,可以轻松集成到自动化的部署脚本中。
        来自:
        帮助文档
        智算套件
        用户指南
        模型管理
        模型加速
      • 开启SQL审计日志
        本章节会介绍如何开启数据库SQL审计日志。 当您开通SQL审计功能,系统会将所有的SQL操作记录下来存入日志文件,方便用户下载并查询。 RDS for MySQL默认关闭SQL审计功能,打开可能会有一定的性能影响,本章节指导您如何打开、修改或关闭SQL审计日志。 说明 主实例和只读实例都支持开启SQL审计日志。 审计日志开通后,系统会将SQL操作记录下来,生成的审计日志文件会暂存在本地,随后上传到OBS并保存在备份存储空间。如果审计日志的大小超过了备份空间容量,就会按照超出的部分进行计费。 审计日志清理周期为1小时。修改审计日志的保留天数,1个小时后开始清理过期的审计日志。 审计日志开通后,在业务高峰期可能会产生大量的审计日志,导致本地暂存较多的日志文件,有磁盘打满风险,建议同步开启磁盘自动扩容。 支持的数据库版本 仅如下版本支持SQL审计功能。 对于RDS for MySQL 5.6,支持5.6.43及其以上版本。 对于RDS for MySQL 5.7,支持5.7.23及其以上版本。 支持RDS for MySQL 8.0版本。 操作步骤 步骤1 登录管理控制台。 步骤2 单击管理控制台左上角的,选择区域和项目。 步骤3 选择“数据库 > 关系型数据库”。进入关系型数据库信息页面。 步骤4 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“基本信息”页签。 步骤5 在左侧导航栏单击“SQL审计”,单击“设置SQL审计”,在弹出框中设置SQL审计日志保留策略,单击“确定”,保存设置策略。 开启或修改SQL审计 : 单击设置为,开启SQL审计日志保留策略。 保留天数默认为7天,可设置范围为1~732天。 关闭SQL审计: 单击设置为,关闭该SQL审计。 勾选“确认关闭审计日志后,所有审计日志文件将立即删除。”复选框,表示同意删除审计日志。 注意 SQL审计关闭后,所有审计日志都会被立即删除,不可恢复,请您谨慎操作。 结束
        来自:
        帮助文档
        关系数据库MySQL版
        用户指南
        日志管理
        开启SQL审计日志
      • 准备RDA依赖资源
        本节主要介绍准备RDA依赖资源 概述 在使用RDA之前,您需要提前准备相关依赖资源,包括天翼云测试账号,账号可创建弹性云主机、虚拟私有云(Virtual Private Cloud,以下简称VPC)、子网和安全组,并配置安全组策略。 准备依赖资源 迁移源端测试账号: 天翼云目的端测试账号: 购买一台windows弹性云主机用于安装RDA软件工具; 购买一台或者多台linux弹性云主机用于对象存储迁移agent安装 说明 (RDA控制机和oms agent工具机迁移完成后均可释放) 获取天翼云测试账号AK/SK:天翼云官网控制台账号我的凭证管理访问秘钥,点击新增访问秘钥,在弹窗生成的excel表中获取对应AK/SK。
        来自:
        帮助文档
        云迁移工具RDA
        用户指南
        准备RDA依赖资源
      • 批量新增端口
        本节介绍了如何在控制台批量新增端口接入规则。 使用场景 如果您需要为多个非网站类业务提供DDoS高防(边缘云版)服务。您可以在DDoS高防(边缘云版)控制台进行批量端口转发规则新增。 注意 相同域名,无法同时进行域名接入(HTTP/HTTPS)和端口接入(TCP/UDP)。 前提条件 已开通DDoS高防(边缘云版)。 不支持80、8080、443、8443端口接入配置,关于上述接口的防护,建议您使用域名接入。 使用说明 1.登录DDoS高防(边缘云版)控制台。 2.进入【业务接入】【端口接入】页面。 3.点击右上角【新增规则】按钮。 批量新增配置说明: 方法 配置项 说明 方法一 复制配置规则到文本框 1.每行对应一条规则,多条规则进行换行。 2.每行包含四个字段,从左到右依次时协议、转发端口、源站端口、源站、字段之间以空格分隔。 3.转发端口唯一值,源站端口、源站可多个,用; 号隔开。 方法二 导入TXT文件 按照上述规则,将内容保存为TXT文件,进行导入。 4.配置完成后,点击【确认】按钮,新增规则将变成“配置中”状态。 5.进入后台自动化配置流程(正常情况15分钟以内),流程结束后会自动变成“配置完成”状态。若“配置中”状态持续时间过长,可创建工单获取支持。
        来自:
        帮助文档
        DDoS高防(边缘云版)
        用户指南
        业务接入
        端口接入
        批量新增端口
      • 清空存储桶
        本节主要介绍怎么清空存储桶。 在“存储桶列表”页,点击存储桶“操作”列的“清空存储桶”按钮,可以清空该存储桶数据。 注意 清空存储桶将永久删除存储桶中的所有文件,已删除的文件无法恢复。在执行清空存储桶过程中,可通过关闭任务方式进行终止,但是已经发送的任务无法终止。 执行清空存储桶时,添加文件到存储桶,文件可能会被删除。 为了防止在执行清空存储桶时将新文件添加到此存储桶,建议您更新存储桶策略,禁止将文件添加到存储桶。 如果存储桶包含大量文件,建议您创建生命周期规则来删除存储桶中的文件。 当点击“清空存储桶”后,弹出“清空存储桶确认”弹窗,填入存储桶名称后,才可以清空存储桶数据。 清空过程中,刷新或者关闭页面可能导致无法完全清空存储桶。
        来自:
        帮助文档
        对象存储(经典版)I型
        控制台指南
        存储桶管理
        清空存储桶
      • 产品优势
        本节为您介绍数据安全中心产品优势。 云上全场景覆盖 通过整合云上各类数据源,提供一站式数据保护和防御机制。不仅支持结构化类型数据,还支持非结构化类型数据,支持云原生和ECS自建场景。 全生命周期可视化 将数据安全全生命周期各阶段的状态整合起来,并通过可视化方式展示云上数据安全态势。 高效识别数据源 通过专家知识库和NLP的双重加权,提升识别能力,精确高效地锁定敏感数据源。 全方位敏感数据防护 根据敏感数据发现策略,精准识别数据库中的敏感数据,并结合多种预置脱敏算法和用户自定义脱敏算法,实现全方位的敏感数据防护。
        来自:
        帮助文档
        数据安全中心
        产品介绍
        产品优势
      • C++Redis客户端(hiredis)
        include include include include int main(int argc, char argv) { unsigned int j; redisContext conn; redisReply reply; if (argc err) { if (conn) { printf("Connection error: %sn", conn>errstr); redisFree(conn); } else { printf("Connection error: can't allocate redis contextn"); } exit(1); } / AUTH / reply redisCommand(conn, "AUTH %s", password); printf("AUTH: %sn", reply>str); freeReplyObject(reply); / Set / reply redisCommand(conn,"SET %s %s", "welcome", "Hello, DCS for Redis!"); printf("SET: %sn", reply>str); freeReplyObject(reply); / Get / reply redisCommand(conn,"GET welcome"); printf("GET welcome: %sn", reply>str); freeReplyObject(reply); / Disconnects and frees the context / redisFree(conn); return 0; } 2.执行以下命令进行编译。 gcc connRedis.c o connRedis I /usr/local/include/hiredis lhiredis 如果有报错,可查找hiredis.h文件路径,并修改编译命令。 编译完后得到一个可执行文件connRedis。 3.执行以下命令,连接Redis实例。 ./connRedis {redisipaddress} 6379 {password} 其中, {redisinstanceaddress} 为Redis实例的IP地址,“6379”为Redis实例的端口。IP地址和端口获取见步骤1,请按实际情况修改后执行。 {password} 为创建Redis实例时自定义的密码,请按实际情况修改后执行。 返回以下回显信息,表示成功连接Redis实例。 AUTH: OK SET: OK GET welcome: Hello, DCS for Redis! 说明 如果运行报错找不到hiredis库文件,可参考如下命令,将相关文件复制到系统目录,并增加动态链接。 mkdir /usr/lib/hiredis cp /usr/local/lib/libhiredis.so.0.13 /usr/lib/hiredis/ mkdir /usr/include/hiredis cp /usr/local/include/hiredis/hiredis.h /usr/include/hiredis/ echo '/usr/local/lib' >>;>>;/etc/ld.so.conf ldconfig 以上so文件与.h文件的位置,需要替换成实际文件位置。
        来自:
        帮助文档
        分布式缓存服务Redis版
        快速入门
        连接实例
        多语言连接
        C++Redis客户端(hiredis)
      • SpringBoot集成Lettuce
        自动刷新时间 spring.redis.lettuce.cluster.refresh.period60 开启自适应刷新 spring.redis.lettuce.cluster.refresh.adaptivetrue spring.redis.timeout60 i. Redis配置类RedisConfiguration,请务必开启集群自动刷新拓扑配置。 @Bean public LettuceConnectionFactory lettuceConnectionFactory() { String[] nodes clusterNodes.split(","); List listNodes new ArrayList(); for (String node : nodes) { String[] ipAndPort node.split(":"); RedisNode redisNode new RedisNode(ipAndPort[0], Integer.parseInt(ipAndPort[1])); listNodes.add(redisNode); } RedisClusterConfiguration redisClusterConfiguration new RedisClusterConfiguration(); redisClusterConfiguration.setClusterNodes(listNodes); redisClusterConfiguration.setPassword(password); redisClusterConfiguration.setMaxRedirects(maxRedirects); // 配置集群自动刷新拓扑 ClusterTopologyRefreshOptions topologyRefreshOptions ClusterTopologyRefreshOptions.builder() .enablePeriodicRefresh(Duration.ofSeconds(period)) //按照周期刷新拓扑 .enableAllAdaptiveRefreshTriggers() //根据事件刷新拓扑 .build(); ClusterClientOptions clusterClientOptions ClusterClientOptions.builder() //redis命令超时时间,超时后才会使用新的拓扑信息重新建立连接 .timeoutOptions(TimeoutOptions.enabled(Duration.ofSeconds(period))) .topologyRefreshOptions(topologyRefreshOptions) .build(); LettuceClientConfiguration clientConfig LettucePoolingClientConfiguration.builder() .commandTimeout(Duration.ofSeconds(timeout)) .readFrom(ReadFrom.REPLICAPREFERRED) // 优先从副本读取 .clientOptions(clusterClientOptions) .build(); LettuceConnectionFactory factory new LettuceConnectionFactory(redisClusterConfiguration, clientConfig); return factory; } @Bean public RedisTemplate redisTemplate(LettuceConnectionFactory lettuceConnectionFactory) { RedisTemplate template new RedisTemplate<>(); template.setConnectionFactory(lettuceConnectionFactory); //使用Jackson2JsonRedisSerializer替换默认的JdkSerializationRedisSerializer来序列化和反序列化redis的value值 Jackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper mapper new ObjectMapper(); mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NONFINAL, JsonTypeInfo.As.PROPERTY); jackson2JsonRedisSerializer.setObjectMapper(mapper); StringRedisSerializer stringRedisSerializer new StringRedisSerializer(); //key采用String的序列化方式 template.setKeySerializer(stringRedisSerializer); // hash的key也采用String的序列化方式 template.setHashKeySerializer(stringRedisSerializer); // value序列化方式采用jackson template.setValueSerializer(jackson2JsonRedisSerializer); // hash的value序列化方式采用jackson template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } springboot+lettuce连接池方式连接Redis Cluster集群代码示例。 J . 在application.properties配置文件中加上Redis相关配置。 spring.redis.cluster.nodeshost:port spring.redis.cluster.maxredirects3 spring.redis.passwordpwd spring.redis.lettuce.cluster.refresh.period60 spring.redis.lettuce.cluster.refresh.adaptivetrue
        来自:
        帮助文档
        分布式缓存服务Redis版
        快速入门
        连接实例
        多语言连接
        SpringBoot集成Lettuce
      • 记录弹性伸缩
        本文主要介绍如何记录弹性伸缩。 操作场景 弹性伸缩支持使用云审计记录服务资源操作。云审计记录的操作类型有三种,通过云平台帐户登录管理控制台执行的操作,通过云服务支持的API执行的操作,以及系统内部触发的操作。 如果用户开通了云审计,AS服务的API被调用时,调用信息将会上报到云审计,云审计会将操作信息定时的转储到用户指定的对象存储桶。通过云审计服务,您可以记录与弹性伸缩相关的操作事件,便于日后的查询、审计和回溯。 Cloud Trace Service中的AS信息 在您的应用系统中启用云审计服务后,将在日志文件记录对弹性伸缩执行的API调用的操作。您可以在云审计服务管理控制台查询近7天内的操作记录。如果需要保存7天之前的操作记录,您可以通过对象存储服务(Object Storage Service,以下简称OBS),将操作记录实时同步保存至OBS。 云审计服务支持的AS操作列表如下表所示。 表 云审计服务支持的AS操作列表 操作名称 资源类型 事件名称 创建伸缩组 scalinggroup createScalingGroup 修改伸缩组 scalinggroup modifyScalingGroup 删除伸缩组 scalinggroup deleteScalingGroup 启用伸缩组 scalinggroup enableScalingGroup 停用伸缩组 scalinggroup disableScalingGroup 操作伸缩组 scalinggroup operateScalingGroup 创建伸缩配置 scalingconfiguration createScalingConfiguration 删除伸缩配置 scalingconfiguration deleteScalingConfiguration 批量删除伸缩配置 scalingconfiguration batchDeleteScalingConfiguration 创建伸缩策略 scalingpolicy createScalingPolicy 修改伸缩策略 scalingpolicy modifyScalingPolicy 删除伸缩策略 scalingpolicy deleteScalingPolicy 启用伸缩策略 scalingpolicy enableScalingPolicy 停用伸缩策略 scalingpolicy disableScalingPolicy 执行伸缩策略 scalingpolicy executeScalingPolicy 操作伸缩策略 scalingpolicy operateScalingPolicy 批量启用伸缩策略 scalingpolicy batchEnableScalingPolicies 批量停用伸缩策略 scalingpolicy batchDisableScalingPolicies 移除实例 scalinginstance removeInstance 批量移除实例 scalinginstance batchRemoveInstances 批量添加实例 scalinginstance batchAddInstances 批量操作实例 scalinginstance batchOperateInstance 批量设置实例保护 scalinginstance batchProtectInstances 批量取消实例保护 scalinginstance batchUnprotectInstances 批量转入实例备用 scalinginstance batchEnterStandbyInstances
        来自:
        帮助文档
        弹性伸缩服务 AS
        用户指南
        伸缩组和实例的监控
        记录弹性伸缩
      • 入门实践
        本文介绍防火墙实践内容。 当您完成防火墙的购买和防护开通后,可以根据您的需要进行一系列常用实践,防火墙常用实践如下表。 C100型实例实践 实践 描述 云防火墙最佳实践 介绍如何选择最适宜用户使用场景和带宽的防火墙规格,以及介绍如何启用防护配置策略,配置防护规则,适用于初次使用防火墙,不知道如何选择适宜自己场景的防火墙规格以及不知道如何启用防火墙产品的用户及场景。 配置访问控制策略最佳实践 介绍如何进行访问控制策略配置,在日常生产场景中,常用哪些访问控制策略应该需要配置,适用于安全应用了解较少,需要进行标准化策略防护的用户及场景。 N100型实例实践 实践 描述 双向访问控制 防火墙作为云计算环境的边界网络安全,符合等级保护要求条例中边界安全访问控制要求项,能够实现内外网访问控制隔离等要求。 SSL VPN远程拨入 用户存在远程拨入运维请求,但未购买天翼云平台SSL VPN服务,可使用防火墙SSL VPN服务,该服务需单独配置。
        来自:
        帮助文档
        云防火墙(原生版)
        快速入门
        入门实践
      • 开启透明数据加密
        本文介绍了RDSPostgreSQL数据库透明加密功能。 默认订购的RDSPostgreSQL实例不开启TDE功能,需要用户在订购时选择开启。 操作场景 关系数据库PostgreSQL版提供了TDE功能。用户需要对磁盘上存储的数据进行加密和解密来实现对数据的保护时,可以对该功能进行开启。 注意 不同资源池因iaas资源能力等原因,加载版本有所差异,详见 TDE功能仅能在订购实例时开启,且开启后无法关闭。 需先开通密钥管理服务。如未开通,则需要提前开通密钥管理服务(需要和RDSPostgreSQL实例位于同一资源池),并创建对称密钥,详见 加密所使用的密钥由密钥管理服务产生。 支持加密功能的内核版本为:12.16P3、13.12P2、14.9P2、15.4P2。 操作步骤 1. 进入订购页,详情可参考步骤一:实例订购。 2. 集群配置项中勾选“启用透明加密”,并选择要使用的密钥管理服务中的数据秘钥(当前只支持使用对称密钥)。若未开启密钥管理服务,则需要开启 密钥管理服务 并创建密钥。 3. 按照开通流程完成实例开通,在控制台页面可查看数据库透明加密开启状态。 注意 数据透明加密功能当前仅支持开通时开启,开启后该功能不可关闭,如开通时未开启,则后续无法开启该功能。 该功能需先开通数据秘钥管理服务,并创建对称加密秘钥,方可使用。 该功能目前加载华东1资源池,其他资源池未加载该功能。
        来自:
        帮助文档
        关系数据库PostgreSQL版
        用户指南
        数据安全
        数据加密
        开启透明数据加密
      • 示例:购买并连接PostgreSQL实例
        本文介绍了购买与连接RDSPostgreSQL实例的流程说明。 步骤1:创建RDSPostgreSQL实例。 步骤2:创建天翼云弹性云主机。 步骤3:安装PostgreSQL客户端连接RDSPostgreSQL实例。 操作步骤1:创建RDSPostgreSQL实例 1. 登录【天翼云官网】。 2. 登录后,点击首页右上角选择【控制中心】,进入控制中心界面。 3. 控制中心页面左上角,选择您想创建实例的资源池。 4. 选择【数据库 > 关系数据库PostgreSQL版】,进入RDSPostgreSQL控制台。 5. 在“概览”页面,单击“立即开通”。 6. 在“实例订购”页面,选择PostgreSQL组件引擎,填写并选择实例相关信息后,单击“立即购买”,具体可参考订购实例。 注意 开通实例时需选择【加入白名单】选项,保证VPC内的云主机可连通实例。 操作步骤2:创建天翼云弹性云主机 1. 登录【天翼云官网】。 2. 登录后,点击首页右上角选择【控制中心】,进入控制中心界面。 3. 控制中心页面左上角,选择与您RDSPostgreSQL实例相同的资源池。 4. 选择“计算 > 弹性云主机”。 5. 单击“创建云主机”。 6. 选择“计费模式”:“包年/包月”或“按量付费”。 7. 选择“地域”。 8. 选择“可用区”。 9. 选择“企业项目”。 10. 选择“虚拟私有云”。 11. 填写“实例名称”。 12. 填写“主机名称”。 13. 选择“规格”。 14. 选择“镜像类型”。 15. 设置“存储”,包括系统盘和数据盘。 16. 点击“下一步:网络配置”。 17. 设置“网卡”:在下拉列表中选择可用的虚拟私有云、子网,并设置私有IP地址的分配方式。 18. 设置“安全组”:在下拉列表中选择可用的安全组,或新建安全组使用。 19. 设置“弹性IP”。 20. 点击“下一步:高级配置”。 21. 选择“登录方式”和“创建密码”选项。 22. 点击“下一步:确认配置”。 23. 在“确认配置”页面,查看云主机配置详情。 24. 如果您确认配置无误,单击“立即购买”。
        来自:
        帮助文档
        关系数据库PostgreSQL版
        快速入门
        示例:购买并连接PostgreSQL实例
      • Java调用示例
        1. com.ffcs.ebp.ebpsdk.common.Response plaintext package com.ffcs.ebp.ebpsdk.common; import java.util.Map; public class Response { private int statusCode; private String body; private Map headers; public int getStatusCode() { return statusCode; } public void setStatusCode(int statusCode) { this.statusCode statusCode; } public String getBody() { return body; } public void setBody(String body) { this.body body; } public Map getHeaders() { return headers; } public void setHeaders(Map headers) { this.headers headers; } } 2. com.ffcs.ebp.ebpsdk.YunSign plaintext package com.ffcs.ebp.ebpsdk; import com.ffcs.ebp.ebpsdk.common.Response; import org.apache.commons.lang.StringUtils; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.config.AuthSchemes; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.util.EntityUtils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.io.; import java.net.URLEncoder; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.KeyManagementException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import java.text.SimpleDateFormat; import java.util.; public class YunSign { private String url; private String body; private String ak; private String sk; private String uuId; private int temp; private String contentType; private String queryStr; private Map headerMap; private String afterQuery; public YunSign(String url, String ak, String sk, String uuId, String body, int temp, String contentType, String queryStr, Map headerMap) { this.url url; if(body.equals("{}")){ body ""; } this.body body; this.ak ak; this.sk sk; this.uuId uuId; this.temp temp; this.contentType contentType; this.queryStr queryStr; this.headerMap headerMap; } public Response toDo(String method, int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response response null; method method.toUpperCase(); switch (method) { case "POST": response doPost(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "GET": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByGetReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doGet(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "DELETE": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByDeleteReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doDelete(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "PUT": response doPut(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "PATCH": response doPatch(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "HEAD": response doHead(connectTimeout, connectionRequestTimeout, socketTimeout); break; } return response; } private String getSign(Date eopDate) { String calculateContentHash getSHA256(body); //报文原封不动进行sha256摘要 // System.out.println("calculateContentHash:" + calculateContentHash); SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); SimpleDateFormat DATEFORMATTER new SimpleDateFormat("yyyyMMdd"); String singerDate TIMEFORMATTER.format(eopDate); String singerDd DATEFORMATTER.format(eopDate); //header的key按照26字母进行排序, 以&作为连接符连起来 try { String CampmocalHeader String.format("ctyuneoprequestid:%sneopdate:%sn", this.uuId, singerDate); String sigture CampmocalHeader + "n" + this.afterQuery + "n" + calculateContentHash; // System.out.println("sigture:" + sigture); byte[] ktime HmacSHA256(singerDate.getBytes(), sk.getBytes()); // System.out.println("ktime:" + HexUtils.bytes2Hex(ktime)); byte[] kAk HmacSHA256(ak.getBytes(), ktime); // System.out.println("kAk:" + HexUtils.bytes2Hex(kAk)); byte[] kdate HmacSHA256(singerDd.getBytes(), kAk); // System.out.println("kdate:" + HexUtils.bytes2Hex(kdate)); String Signature Base64.getEncoder().encodeToString(HmacSHA256(sigture.getBytes("UTF8"), kdate)); // System.out.println("Signature:" + Signature); String signHeader String.format("%s Headersctyuneoprequestid;eopdate Signature%s", ak, Signature); // System.out.println("signHeader:" + signHeader); return signHeader; } catch (Exception e) { e.printStackTrace(); } return null; } / 在调用SSL之前需要重写验证方法,取消检测SSL 创建ConnectionManager,添加Connection配置信息 @return HttpClient 支持https / private static CloseableHttpClient sslClient() { try { // 在调用SSL之前需要重写验证方法,取消检测SSL X509TrustManager trustManager new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] xcs, String str) { } @Override public void checkServerTrusted(X509Certificate[] xcs, String str) { } }; SSLContext ctx SSLContext.getInstance(SSLConnectionSocketFactory.TLS); ctx.init(null, new TrustManager[]{trustManager}, null); SSLConnectionSocketFactory socketFactory new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE); // 创建Registry RequestConfig requestConfig RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARDSTRICT) .setExpectContinueEnabled(Boolean.TRUE).setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build(); Registry socketFactoryRegistry RegistryBuilder. create() .register("http", PlainConnectionSocketFactory.INSTANCE) .register("https", socketFactory).build(); // 创建ConnectionManager,添加Connection配置信息 PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager(socketFactoryRegistry); CloseableHttpClient closeableHttpClient HttpClients.custom().setConnectionManager(connectionManager) .setDefaultRequestConfig(requestConfig).build(); return closeableHttpClient; } catch (KeyManagementException ex) { throw new RuntimeException(ex); } catch (NoSuchAlgorithmException ex) { throw new RuntimeException(ex); } } public Response doGet(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); //创建HttpGet远程连接实例 HttpGet httpGet; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGet new HttpGet(this.url + "?" + this.afterQuery); } else { httpGet new HttpGet(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGet.setHeader("ContentType", this.contentType); httpGet.setHeader("ctyuneoprequestid", this.uuId); httpGet.setHeader("EopAuthorization", getSign(eopDate)); httpGet.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGet.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGet.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpGet.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpGet); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByGetReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response result new Response(); CloseableHttpClient client null; CloseableHttpResponse response null; try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL client sslClient(); } else { client HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpGetWithEntity远程连接实例 HttpGetWithEntity httpGetWithEntity; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGetWithEntity new HttpGetWithEntity(this.url + "?" + this.afterQuery); } else { httpGetWithEntity new HttpGetWithEntity(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为HttpGetWithEntity实例设置配置 httpGetWithEntity.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGetWithEntity.setHeader("ContentType", this.contentType); httpGetWithEntity.setHeader("ctyuneoprequestid", this.uuId); httpGetWithEntity.setHeader("EopAuthorization", getSign(eopDate)); httpGetWithEntity.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGetWithEntity.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGetWithEntity.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); httpGetWithEntity.setEntity(httpEntity); //执行请求操作,并拿到结果(同步阻塞) response client.execute(httpGetWithEntity); //获取结果实体 HttpEntity entity response.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! client) { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPost(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpPost远程连接实例 HttpPost httpPost; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPost new HttpPost(this.url + "?" + this.afterQuery); } else { httpPost new HttpPost(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPost.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPost.setHeader("ContentType", this.contentType); httpPost.setHeader("ctyuneoprequestid", this.uuId); httpPost.setHeader("EopAuthorization", getSign(eopDate)); httpPost.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPost.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPost.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPost.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPost); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPut(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPut远程连接实例 HttpPut httpPut; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPut new HttpPut(this.url + "?" + this.afterQuery); } else { httpPut new HttpPut(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPut.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(20321900,01,05); httpPut.setHeader("ContentType", this.contentType); httpPut.setHeader("ctyuneoprequestid", this.uuId); httpPut.setHeader("EopAuthorization", getSign(eopDate)); httpPut.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPut.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPut.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPut.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPut); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPatch(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPatch远程连接实例 HttpPatch httpPatch; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPatch new HttpPatch(this.url + "?" + this.afterQuery); } else { httpPatch new HttpPatch(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPatch.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPatch.setHeader("ContentType", this.contentType); httpPatch.setHeader("ctyuneoprequestid", this.uuId); httpPatch.setHeader("EopAuthorization", getSign(eopDate)); httpPatch.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPatch.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPatch.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPatch.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPatch); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doDelete(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDelete httpDelete; if (StringUtils.isNotEmpty(this.afterQuery)) { httpDelete new HttpDelete(this.url + "?" + this.afterQuery); } else { httpDelete new HttpDelete(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpDelete.setHeader("ContentType", this.contentType); httpDelete.setHeader("ctyuneoprequestid", this.uuId); httpDelete.setHeader("EopAuthorization", getSign(eopDate)); httpDelete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpDelete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpDelete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpDelete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpDelete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByDeleteReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDeleteWithBody delete; if (StringUtils.isNotEmpty(this.afterQuery)) { delete new HttpDeleteWithBody(this.url + "?" + this.afterQuery); } else { delete new HttpDeleteWithBody(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); delete.setHeader("ContentType", this.contentType); delete.setHeader("ctyuneoprequestid", this.uuId); delete.setHeader("EopAuthorization", getSign(eopDate)); delete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { delete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : delete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); delete.setEntity(httpEntity); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 delete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(delete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doHead(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpHead远程连接实例 HttpHead httpHead; if (StringUtils.isNotEmpty(this.afterQuery)) { httpHead new HttpHead(this.url + "?" + this.afterQuery); } else { httpHead new HttpHead(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpHead.setHeader("ContentType", this.contentType); httpHead.setHeader("ctyuneoprequestid", this.uuId); httpHead.setHeader("EopAuthorization", getSign(eopDate)); httpHead.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpHead.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpHead.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpHead实例设置配置 httpHead.setConfig(requestConfig); // 执行head请求得到返回对象 response httpClient.execute(httpHead); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } private String toHex(byte[] data) { StringBuilder sb new StringBuilder(data.length 2); byte[] var2 data; int var3 data.length; for (int var4 0; var4 2) { String encodeStr null; encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + str; } } else { String[] s str.split(""); if (s.length > 2) { String encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } } } } } catch (Exception e) { e.printStackTrace(); } return afterQuery; } } 3. HexUtils.java plaintext package com.ffcs.ebp.ebpsdk; public class HexUtils { private static final char[] HEXES { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; / byte数组 转换成 16进制小写字符串 / public static String bytes2Hex(byte[] bytes) { if (bytes null bytes.length 0) { return null; } StringBuilder hex new StringBuilder(); for (byte b : bytes) { hex.append(HEXES[(b >> 4) & 0x0F]); hex.append(HEXES[b & 0x0F]); } return hex.toString(); } / 16进制字符串 转换为对应的 byte数组 / public static byte[] hex2Bytes(String hex) { if (hex null hex.length() 0) { return null; } char[] hexChars hex.toCharArray(); byte[] bytes new byte[hexChars.length / 2]; // 如果 hex 中的字符不是偶数个, 则忽略最后一个 for (int i 0; i headerMap new HashMap<>(); // headerMap.put("queryMetricDataInfo", "{"regionId":"cnsz1","dim":"instanceid,98cdcc8a8e544788ab9cc94ccee429c7","filter":"average","from":"1658473040","to":"1658473040","metricName":"netbitRecv","namespace":"AGT.ECS","period":"1"},"platform":"3"}"); // headerMap.put("platform", "3"); // headerMap.put("consoleUrl", " // headerMap.put("UserAgent", "3333433"); // headerMap.put("XForwardedFor", "1231313"); // headerMap.put("regionId", "100054c0416811e9a6690242ac110002"); // headerMap.put("prodInstId","9dcaf0157c604100af79bdb8271527bc"); //请求地址 String url " //query参数(?后面拼接的参数。没有就不填) aaaa&bbbb String queryStr "regionID41f64827xxxxxxxxxffa3a5deb5d15d"; //body参数(没有就不填) String body ""; //APPID String ak "9f82cacd3f8235c66edfs5e899f098e6"; //appkey String sk "MlgzESz430hJgTzA4lkjuJvDMMLTqwBQRicVqV62VM"; String uuId UUID.randomUUID().toString(); //连接超时 int connectTimeout 35000; //连接请求超时 int connectionRequestTimeout 35000; //socket超时 int socketTimeout 60000; YunSign yunSign new YunSign(url, ak, sk, uuId, body, temp, contentType, queryStr, headerMap); Response response yunSign.toDo(method, connectTimeout, connectionRequestTimeout, socketTimeout); System.out.println("应答头部 "); for (Map.Entry entry : response.getHeaders().entrySet()) { System.out.println(entry.getKey().toString() + ":" + entry.getValue().toString()); } System.out.println(); System.out.println("请求结果 "); System.out.println(response.getBody()); } }
        来自:
        帮助文档
        对象存储 ZOS
        API参考
        API(OpenAPI)
        如何调用API
        Java调用示例
      • 实时同步
        特性 说明 同步级别 数据复制服务提供的实时同步功能支持库级同步和表级同步。 库级同步是以库为单位的同步,不可单独选择表,且库中新增表会自动加入同步关系之中。 表级同步是以表为单位的同步,不可以单独选择库,新增表需要再次编辑同步任务,将新的表追加到同步关系中。 对象名映射 实时同步功能可以支持源数据库和目标数据库中的同步对象(包括数据库、schema、表或列)的名称不同。 如果同步的数据库对象在源数据库和目标数据库中的命名不同,那么可以使用数据复制服务提供的对象名映射功能进行映射。 目前数据复制服务提供的映射功能支持库映射、schema映射和表映射。 动态增减同步对象 在实时同步过程中,您可以通过编辑同步对象随时增加或减少需要同步的对象。 冲突处理 数据复制服务提供的实时同步功能使用了主键或唯一键冲突策略,这些策略可以由您自主选择,尽可能保证源数据库中有主键约束或唯一键约束的表同步到目标数据库是符合预期的。 目前支持的冲突策略有: 忽略 当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),以目标数据为准,DRS将跳过冲突数据,继续进行后续同步。 覆盖 当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),以源数据为准,DRS将覆盖原来的冲突数据。 报错 当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),同步任务将失败并立即中止。忽略和覆盖,都是以同步稳定性优先(不会因为数据冲突而中断任务),如果用户以同步稳定性为关键,则在这里二选一。 报错则是以数据质量为优先,即用户环境不应该出现任何数据冲突,无论是忽略还是覆盖都可能产生严重业务问题,所以DRS同步任务立即失败,并人为排查原因。但需注意,如果任务长期处于失败状态,可能会导致存储占满而无法修复任务。 数据结构同步能力 数据复制服务提供的实时同步功能不支持单独的数据结构同步,而是提供特殊的数据结构同步机制,在同步任务启动后,将数据和结构一并同步到目标数据库。
        来自:
        帮助文档
        数据库复制
        产品简介
        产品功能
        实时同步
      • TeleDB管控服务安装部署
        单节点配置 eth0 10.218.14.144 22 idc1 teledb Car@87v5@K5 OssCenterMasterConfdbEtcd 这里是master 高可用三节点控制台的配置 eth0 10.218.14.144 22 idc1 teledb Car@87v5@K5 OssCenterMasterConfdbEtcd eth0 10.218.14.145 22 idc1 teledb Car@87v5@K5 OssCenterSlaveConfdbEtcd eth0 10.218.14.146 22 idc1 teledb Car@87v5@K5 OssCenterSlaveConfdbEtcd 高可用版本: 单机版本: 执行如下命令修改配置文件ossinit.conf plaintext vim ossinit.conf 这文件就改控制台安装目录这一个地方,其他不用动 cat ossinit.conf PGXZOSUSERteledbx PGXZOSPSWD'4MPhD%gKeNMy' PGXZOSHOME/app/teledbx 只修改这里的安装目录 if [ $(cat /etc/systemrelease grep i centos wc l) "1" ]; then PGXZOSNAMEcentos else PGXZOSNAMEctyunos fi PGXZOSBINDIR${PGXZOSHOME}/install PGXZOSDATADIR${PGXZOSHOME}/data CONFDBOSDATADIR${PGXZOSHOME}/confdb PGXZOSETHeth${PGXZOSUSER} PGXZYUMDIR$(cd ../teledbxmirror; pwd) PGXZYUMPORT8018 5. 安装控制台 执行如下命令安装控制台 plaintext su teledb cd /app/teledbdeployx86centos/teledbxmgr/ sh teledbxmgr.sh install 安装过程中出现选项,输入Y即可。 当出现如下回显信息,表示安装成功。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品历史版本
        V2.0.0版本产品文档
        安装部署手册
        安装过程
        TeleDB管控服务安装部署
      • 正则表达式相关函数
        项目 描述 语法 capturestable, err ctyun.re.match(subject, regex, options?) 作用 正则匹配,返回匹配内容。 入参 subject:待匹配字符串。 regex:正则表达式。 options:控制如何执行匹配操作,支持以下选项: a anchored mode (only match from the beginning) d enable the DFA mode (or the longest token match semantics). this requires PCRE 6.0+ or else a Lua exception will be thrown. first introduced in ngxlua v0.3.1rc30. D enable duplicate named pattern support. This allows named subpattern names to be repeated, returning the captures in an arraylike Lua table. for example, local m ngx.re.match("hello, world", "(?w+), (?w+)", "D") m["named"] {"hello", "world"} this option was first introduced in the v0.7.14 release. this option requires at least PCRE 8.12. i case insensitive mode (similar to Perl's /i modifier) j enable PCRE JIT compilation, this requires PCRE 8.21+ which must be built with the enablejit option. for optimum performance, this option should always be used together with the 'o' option. first introduced in ngxlua v0.3.1rc30. J enable the PCRE Javascript compatible mode. this option was first introduced in the v0.7.14 release. this option requires at least PCRE 8.12. m multiline mode (similar to Perl's /m modifier) o compileonce mode (similar to Perl's /o modifier), to enable the workerprocesslevel compiledregex cache s singleline mode (similar to Perl's /s modifier) u UTF8 mode. this requires PCRE to be built with the enableutf8 option or else a Lua exception will be thrown. U similar to "u" but disables PCRE's UTF8 validity check on the subject string. first introduced in ngxlua v0.8.1. x extended mode (similar to Perl's /x modifier) 返回值 capturestable:找到匹配项时,返回一个lua table,其中capturestable[0]保存整个匹配的子字符串,capturestable[1]保存第一个带括号的子模式的捕获,capturestable[2]为第二个,以此类推。未找到匹配项时此项为nil。 err:描述错误信息的字符串。
        来自:
        帮助文档
        全站加速
        用户指南
        UDFScript用户自定义脚本
        UDFScript函数说明
        正则表达式相关函数
      • 场景:全量备份迁移
        本章节内容主要介绍全量备份迁移 全量备份迁移场景为一次性数据库迁移,需要停止业务,将导出的Microsoft SQL Server全量备份文件上传至对象存储服务,然后恢复到目标数据库。 本小节将详细介绍通全量备份迁移的步骤。 迁移示意图 图 全量迁移 迁移流程 图 迁移流程 操作步骤 1.导出数据库全量备份文件,具体操作请参见导出数据库备份文件。 2.将导出的备份文件上传至OBS桶内,具体操作请参见上传备份文件。 3.登录数据库复制服务控制台。 4.单击管理控制台左上角的,选择区域和项目。 5.在“所有服务”或“服务列表”中,选择“数据库>数据库复制服务”,进入数据库复制服务信息页面。 6.在页面左侧导航栏,选择“备份迁移管理”,单击“创建迁移任务”,进入“选定备份”页面。 7.填写迁移任务信息和备份文件信息,单击“下一步”。 图 迁移任务信息 表 迁移任务信息 参数 描述 任务名称 任务名称在464位之间,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。 描述 描述不能超过256位,且不能包含!<>&'"特殊字符。 数据库类型 选择Microsoft SQL Server数据库引擎。 备份文件来源 选择自建OBS桶。 桶名 选择备份文件所在的桶名,以及该桶目录下已经上传好的全量备份文件。说明:o Microsoft SQL Server的备份文件需要选择OBS桶目录下“.bak”格式的文件名,且可以同时选择多个备份文件。该桶的桶名、备份文件名或者路径中不能包含中文。 在“选定目标”页面,填选数据库信息后,单击“下一步”。 图 全量迁移数据库信息 Microsoft SQL Server数据库信息 参数 描述 目标RDS实例名称 选择目标RDS实例。若没有合适的目标RDS数据库实例,请先创建所需的目标数据库实例,可参见《关系型数据库快速入门》中“SQL Server快速入门”下的“购买实例”章节。 待恢复备份类型 选择全量备份。全量备份指备份文件是完整备份类型的备份。说明:一次性数据库迁移,则需要停止业务,上传全量备份进行恢复。 最后一个备份 当前进行的是一次性全量备份迁移,该参数选择“是”。 覆盖还原 覆盖还原是指目标端数据库实例已经存在同名的数据库,备份还原中是否要覆盖已存在的数据库。您可以根据业务需求,选择是否进行覆盖还原。说明:若选择此项,目标数据库实例中与待还原数据库同名的数据库将会被覆盖,请谨慎操作。 执行预校验 备份迁移任务是否执行预校验,默认为是。o 是:为保证迁移成功,提前识别潜在问题,在恢复前对备份文件的合法性、完整性、连续性、版本兼容性等进行校验。否:不执行预校验,迁移速度更快,但需要用户判断备份文件的合法性、完整性、连续性、版本兼容性等问题。 指定需要恢复的数据库 您可以选择将全部数据库或部分数据库进行恢复。o 全部数据库:恢复备份文件中所有的数据库,不需要输入待还原数据库名称,默认还原备份文件里的所有数据库。o 部分数据库:恢复备份文件中的部分数据库,需要输入待还原数据库名称。全量备份需要保证指定恢复的数据库始终一致。 9.在“确认信息”页面核对配置详情后,勾选协议,单击“下一步”。 10.返回“备份迁移管理”页面,在任务列表中,观察对应的恢复任务的状态为“恢复中”,恢复成功后,任务状态显示“成功”。
        来自:
        帮助文档
        数据库复制
        最佳实践
        本地Microsoft SQL Server备份迁移到云上RDS for SQL Server实例
        场景:全量备份迁移
      • 产品类
        是否可以提供运维服务? 暂时不提供,安全责任重大,安全运维需客户自己做,我们只包含首次实施。 安全管理中心能否呈现整个态势感知? 有这个功能,后面会开发补充更多模块,目前可以看到总览,功能包括:资产管理,风险管理,威胁管理,运营管理,组件管理。 资源池没过等保,客户能部署安全专区过等保,拿到测评报告吗? 云平台的要先过等保才可以,如果云平台没有过等保,客户的系统做安全防护也是拿不到测评报告的。 多个VPC情况下网络,能做到安全防护吗? 可以,多个VPC通过对等连接互相打通网络,再通过对等连接安全专区进行多个VPC的安全防护。 报价按等保怎么区分? 二级最低选入门版,基础版,三级选高级版或旗舰版;鉴于现在的测评标准更加严格,采用扣分制来计算得分,我们一般给客户推荐套餐首先推高级版或旗舰版,更容易通过测评,如果客户预算原因,也可根据情况酌情降低套餐档次。 客户有额外的SSL VPN的需求,怎么选购? 客户需要在天翼云平台订购SSL VPN,安全专区的防火墙本身不具备SSL VPN。 云下一代防火墙,双机怎么计费,怎么开通?另外门户上没有双机的可选项。 防火墙双机计费方式:在套餐的单台防火墙的基础上再增加一台防火墙,也就是说费用是两台防火墙之和;目前门户上没有双机的可选项,开发部后面会开发相应的功能。
        来自:
        帮助文档
        安全专区
        常见问题
        产品类
      • 云容器引擎资源池
        资源池 资源池ID(Region ID) 专有版 托管版 华东1 bb9fdb42056f11eda1610242ac110002 √ 华北2 200000001852 √ √ 西南1 200000002368 √ √ 华南2 200000002530 √ √ 上海36 200000001790 √ 青岛20 200000001703 √ 长沙42 200000002401 √ √ 南昌5 200000002527 √ 武汉41 200000001781 √ √ 杭州7 200000003329 √ √ 太原4 200000002689 √ 郑州5 200000002586 √ 西安7 200000001851 √ √ 芜湖4 200000003327 √ 呼和浩特3 200000003573 √ 乌鲁木齐7 200000004098 √ √ 庆阳2 200000003664 √
        来自:
        帮助文档
        云容器引擎 专有版/托管版
        API参考
        附录
        云容器引擎资源池
      • 计费模式
        本文介绍实时云渲染计费项、计费模式与费用说明等信息。 计费项 实时云渲染基础服务由带宽、渲染实例组成,渲染实例包含了CPU、高IO磁盘、直通式GPU等虚拟化计算资源,1路渲染实例同一时刻最多可为1个终端提供应用接入,您可以根据应用的算力需求按需开通最优规划资源。 本页面仅展示实时云渲染产品标准价格,最终价格以实际销售情况为准。 产品价格 渲染实例 服务类型 销售规格 应用类型 CPU 内存 GPU 显存 计费方式 标准资费 计费单位 渲染实例 标准型 适用三维应用实时云渲染主流云应用 812核 1624G GPU 性能 12 TF SP / 30T INT及以上 6GB 包年包月 1180 元/路/月 渲染实例 标准型 适用三维应用实时云渲染主流云应用 812核 1624G GPU 性能 12 TF SP / 30T INT及以上 6GB 按需计费 2.5 元/路/小时 渲染实例 高级型 适用大型三维应用实时渲染主流3A级云游戏 16核 1624G GPU 性能 29 TF SP / 60T INT及以上 10GB 包年包月 3100 元/路/月 渲染实例 高级型 适用大型三维应用实时渲染主流3A级云游戏 16核 1624G GPU 性能 29 TF SP / 60T INT及以上 10GB 按需计费 6.4 元/路/小时 渲染实例 旗舰型 适用特大型三维应用医学影像数字孪生 24核 32G GPU 性能 35 TF SP / 60T INT及以上 24GB 包年包月 3800 元/路/月 渲染实例 旗舰型 适用特大型三维应用医学影像数字孪生 24核 32G GPU 性能 35 TF SP / 60T INT及以上 24GB 按需计费 7.8 元/路/小时 说明 • GPU 性能的主要指标为 GPU 的浮点运行能力。 • TF 代表 T Flops 每秒浮点运算次数。 • SP 代表 Single Precision 单精度浮点运算。 • DP 代表 Double Precision 双精度浮点运算。
        来自:
        帮助文档
        实时云渲染(文档停止维护)
        计费说明
        计费模式
      • 翼MapReduce服务组件操作指南
        本章节主要提供组件操作指南的下载。 点此下载:《MapReduce服务组件操作指南(普通版)》 点此下载:《翼MapReduce组件操作指南(LTS版)》
        来自:
        帮助文档
        翼MapReduce
        文档下载
        翼MapReduce服务组件操作指南
      • 恢复到新实例
        本节主要介绍恢复到新实例 概述 DRDS支持基于已有备份集将实例恢复至任意时间点,适用于日常业务常规备份恢复场景。 注意 本章节以RDS for MySQL实例举例说明。 限制 恢复到目标DRDS实例会导致实例数据被覆盖,恢复过程中目标实例数据库不可用。 需确保恢复时间点到当前时间之间未进行过逻辑库的创建或者删除操作。 恢复的新RDS for MySQL实例版本需要大于等于原实例版本,且存储空间大于等于原实例。 此恢复功能暂不支持备份恢复到RDS for MySQL本地盘实例。 此恢复功能暂不支持从RDS for MySQL本地盘实例恢复。 暂不支持目标DRDS实例在主网段、RDS for MySQL实例在扩展网段的场景。 前提条件 成功登录分布式关系型数据库服务控制台。 当前实例状态为“运行中”。 操作步骤 在当前DRDS实例所在区域创建一个新的DRDS实例或者寻找一个满足限制的实例。 创建与当前DRDS实例下相同数量的RDS for MySQL实例。 说明 新建的DRDS实例不能挂载RDS for MySQL实例,已有的DRDS实例不能创建逻辑库和帐号。 新创建的RDS for MySQL实例版本不得低于源DRDS下RDS for MySQL实例版本号。 每个实例存储空间不得小于当前DRDS实例下的RDS for MySQL的存储空间。 在DRDS实例列表页面单击1中的当前实例名称,进入实例基本信息页面。 在左侧导航栏选择“备份恢复”,进入恢复数据页面。单击“恢复新实例”按钮。 在数据恢复页签选择“可恢复时间段”和“可恢复时间点”,并选择1中创建的DRDS实例作为目标实例。 选择2中创建的RDS实例作为目标RDS for MySQL实例,选中确认复选框。确认无误后,单击“确认”,等待13分钟数据恢复完成。
        来自:
        帮助文档
        分布式关系型数据库
        用户指南
        一致性备份
        恢复到新实例
      • 退款说明
        轻量型云主机作为天翼云的一款标准化产品,其整体退订原则与其他产品均保持一致。 退订规则详情请参考天翼云帮助中心费用中心退订规则说明。
        来自:
        帮助文档
        轻量型云主机
        计费说明
        退款说明
      • 续费说明
        轻量型云主机作为天翼云的一款标准化产品,其整体续订原则与其他产品均保持一致。 续订规则详情请见天翼云帮助中心费用中心续订规则说明。
        来自:
        帮助文档
        轻量型云主机
        计费说明
        续费说明
      • 数据库实例规格
        本章节主要介绍GeminiDB Redis实例支持的实例规格信息。 同一实例类型根据内存的配置不同分为多种实例规格,针对不同的应用场景,您可以选择不同规格的实例。 数据库实例规格与所选的CPU机型相关,请以实际环境为准。 表 GeminiDB Redis节点规格 节点规格 vCPU(个) 单节点实例的最大持久化数据存储空间(GB) 单节点实例的最大连接数 实例DB数 geminidb.redis.small.4 1(共享型) 4 5,000 128 geminidb.redis.medium.4 1 8 10,000 256 geminidb.redis.large.4 2 16 10,000 256 geminidb.redis.xlarge.4 4 32 10,000 1,000 geminidb.redis.2xlarge.4 8 64 10,000 1,000 geminidb.redis.4xlarge.4 16 128 10,000 1,000 geminidb.redis.8xlarge.4 32 256 10,000 1,000 geminidb.redis.medium.8 1 8 10,000 256 geminidb.redis.large.8 2 16 10,000 256 geminidb.redis.xlarge.8 4 32 10,000 1,000 geminidb.redis.2xlarge.8 8 64 10,000 1,000 geminidb.redis.4xlarge.8 16 128 10,000 1,000 geminidb.redis.8xlarge.8 32 256 10,000 1,000
        来自:
        帮助文档
        云数据库GeminiDB
        GeminiDB Redis接口
        产品介绍
        数据库实例规格
      • 经典版
        本文介绍分布式缓存经典版的产品规格 注意 经典版为白名单特性,暂停开放使用,可选择基础版规格替代。 本节介绍分布式缓存经典版的产品规格,包括内存规格、实例可使用内存、连接数上限、最大带宽/基准带宽(Gbps)、DB数等。 内存:您可以通过在控制台节点管理列表查看各节点剩余内存,具体操作请参考查看Redis集群信息。 连接数上限:连接并发数,表示允许客户端同时连接的个数。您可在控制台中查看具体实例的连接数,具体操作请参考基本指标。连接数上限可在实例创建后支持在控制台中修改,具体操作请参考接入机配置。 QPS:即Query Per Second,表示Redis实例每秒执行的命令数。 带宽限制:表中的带宽值是Redis实例单分片的带宽,Redis实例的网络传输能力的上限带宽分别应用于上行带宽和下行带宽,如果某规格的带宽为0.8Gbps,则该规格实例的上下行带宽都是0.8Gbps。 表中的带宽为内网带宽。外网带宽取决于内网带宽,同时受到Redis实例与客户端之间的网络带宽限制,建议使用内网连接方式,排除外网影响,发挥最大的带宽性能。 DB数:Redis可提供的数据库最大数量。
        来自:
        帮助文档
        分布式缓存服务Redis版
        产品介绍
        实例规格
        经典版
      • 【产品公告】 关于天翼云密钥管理按需版本停止新购的通知
        尊敬的天翼云客户: 您好! 因业务调整,自2024年9月13日起,密钥管理按需版不再支持新购。 调整影响范围: 新增客户:2024年9月13日起,无法订购按需版本,可选择开通包周期版本,规格说明: 存量客户:2024年9月13日前已开通过按需版的用户,可继续使用按需版本,并按照按需版资费计费。 给您带来不便,敬请谅解!感谢您对天翼云的信赖与支持,如您有任何问题,可随时通过工单或者服务热线(4008109889)与我们联系。 感谢您对天翼云一如既往的支持与理解! 天翼云服务团队
        来自:
        帮助文档
        密钥管理
        产品公告
        【产品公告】 关于天翼云密钥管理按需版本停止新购的通知
      • 删除开发机
        本文介绍如何在科研助手中删除开发机。 操作步骤 1. 登录科研助手管理控制台。 2. 在控制台左侧导航栏中,选择【开发机】。 3. 在开发机列表中定位到想要删除的开发机,点击【删除】。确认删除界面如下图所示: 注意:科研版的开发机与专业版共享,在科研助手科研版的【开发机】中可以显示、停止、删除专业版的开发机。 4. 删除开发机有二次确认的弹框,提示“删除会对开发机所有资源进行释放,数据无法恢复,请谨慎操作 ”。确定删除实例,点击【确认删除 】完成删除,点击【取消】放弃删除。
        来自:
        帮助文档
        科研助手
        用户指南
        科研版
        开发机
        删除开发机
      • 1
      • ...
      • 147
      • 148
      • 149
      • 150
      • 151
      • ...
      • 432
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      云聚517 · 好价翼起拼

      爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券

      安全隔离版OpenClaw

      OpenClaw云服务器专属“龙虾“套餐低至1.5折起

      聚力AI赋能 天翼云大模型专项

      大模型特惠专区·Token Plan 轻享包低至9.9元起

      青云志云端助力计划

      一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云

      企业出海解决方案

      助力您的业务扬帆出海,通达全球!

      天翼云信创专区

      “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富

      中小企业服务商合作专区

      国家云助力中小企业腾飞,高额上云补贴重磅上线

      云上钜惠

      爆款云主机全场特惠,2核4G只要1.8折起!

      产品推荐

      弹性云主机 ECS

      物理机 DPS

      轻量型云主机

      多活容灾服务 MDR

      镜像服务 IMS

      公共算力服务

      科研助手

      一站式智算服务平台

      智算一体机

      推荐文档

      7天无理由退款如何操作?

      iPhone端

      客户端下载

      云课堂 第十一课:天翼云虚拟IP地址及其在高可用集群中

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 息壤智算平台
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 天翼云国际站
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号