云服务器内容精选

  • 约束与限制 分布式实例仅混合部署形态支持容灾,并且需要保证主备实例的节点数量相同。 搭建容灾关系时,灾备实例的存储空间必须大于或等于主实例的存储空间。若主实例的数据超过灾备实例的存储空间,搭建容灾时会因空间无法承载而导致实例异常。 搭建容灾关系的主实例与灾备实例数据库引擎版本必须相同,且需为V2.0-2.0及以上版本。 搭建容灾关系的主实例与灾备实例在创建实例时,“M兼容表名大小写”的配置必须保持一致。“M兼容表名大小写”的默认配置是大小写敏感,如果参数设置不一致,则无法搭建容灾。 “副本一致性协议”为“paxos”的实例,仅1主1备1日志形态支持容灾搭建。 在主实例和灾备实例处于Normal状态时可搭建容灾关系。在主实例处于Normal状态并且灾备实例已经升主的情况下,主实例可执行容灾解除,其他实例状态不支持。 灾备实例处于非Normal且非Degraded状态时无法升主,无法作为灾备实例继续提供容灾服务,需要修复或重建灾备实例。 容灾关系搭建后,灾备实例不支持全备、增备和差备,主实例支持全备、增备和差备。如果主实例要恢复到自身,需要先解除容灾关系,在完成恢复后重新搭建容灾关系。 搭建容灾关系的主实例与灾备实例之间不支持参数修改的同步。 容灾主实例恢复到新实例,容灾用户不会自动删除,需要手动删除容灾用户。 容灾主备关系切换时,如果主实例宕机,需要手动启动灾备实例恢复到正常模式,对外提供服务。
  • 前提条件 在两个不同的区域(Region)中分别创建 GaussDB 实例,一个作为主实例,另一个作为灾备实例。创建实例的步骤请参见 购买GaussDB 实例。 选择新建工单至“云专线”,提交专线开通申请,打通两个Region下的VPC网络。请根据实际实例类型选择相应的放通策略。 表1 分布式实例防火墙端口放通策略 源设备 源端口 目的端口(侦听) 协议 端口说明 主实例CN与灾备实例CN 1024~65535 数据库CN端口号+1, 默认:8001 TCP 灾备实例的CN组件通过该端口与主实例的CN组件进行通信。 灾备实例DN首备与级联备 1024~65535 数据库DN端口号+1, 默认:{40001, 40021, 40041, ..., 40001 + (n-1) * 20}(n表示数据库分片数) TCP 灾备实例的DN组件通过该端口与主实例的DN组件进行通信。 DN主备 1024~65535 数据库DN端口号+5, 默认:{40005, 40025, 40045, ..., 40005 + (n-1) * 20}(n表示数据库分片数) TCP 主备实例之间心跳连接请求。 主实例与灾备实例数据节点 1024~65535 12016 TCP 主备实例agent通信端口。 Ping 检查连通性 / / ICMP 主实例与灾备实例数据连通性检测。 表2 集中式实例(Quorum协议)防火墙端口放通策略 源设备 源端口 目的端口(侦听) 协议 端口说明 灾备实例DN首备与级联备 1024~65535 数据库DN端口+1, 默认:8001 TCP 灾备实例的DN组件通过该端口与主实例的DN组件进行通信。 DN主备 1024~65535 数据库DN端口+5, 默认:8005 TCP 主备实例之间心跳连接请求。 主实例与灾备实例数据节点 1024~65535 12016 TCP 主备实例agent通信端口。 Ping 检查连通性 / / ICMP 主实例与灾备实例数据连通性检测。 表3 集中式实例(Paxos协议)防火墙端口放通策略 源设备 源端口 目的端口(侦听) 协议 端口说明 DN主备 1024~65535 数据库DN端口+6, 默认:8006 TCP 基于流式复制的异地容灾解决方案中灾备实例DN首备和级联备之间复制的连接端口,DN级联备连接DN首备,DN主备之间心跳连接请求。 主实例与灾备实例数据节点 1024~65535 12016 TCP 主备实例agent通信端口。 Ping 检查连通性 / / ICMP 主实例与灾备实例数据连通性检测。
  • 容灾实现原理 容灾实现原理说明: 主实例与灾备实例之间日志传输通过流式全量/增量build的方式复制。 图1 容灾原理图 初始全量数据的同步:通过对主实例进行全量备份的方式恢复到灾备实例。 增量日志同步:按照全量备份提供的LSN(日志序列号)点,主实例启动归档线程往灾备实例首备(Main Standby)节点的数据盘写入增量数据;灾备实例首备(Main Standby)节点持续从数据盘读取日志,并实时执行回放。 数据一致性:主实例定期创建一致性点(barrier点),灾备实例所有节点按照一致性点控制日志回放进度,从一个一致性点恢复到另一个一致性点。
  • 请求示例 POST https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/v3/0611f1bd8b00d5d32f17c017f15b599f/instances/d04686c6baae4f65a742771186f47b7ain14/transactions/list { "node_id" : "42cbf784585e419d9eb33c005f4ced94no14", "component_id" : "dn_6001", "limit" : 10, "offset" : 0, "transaction_query_info" : { "exec_time" : "1000", "xlog_quantity" : "999", "datnames" : [ "postgres" ], "usenames" : [ "root" ], "client_addrs" : [ "172.0.0.1" ] } }
  • 响应示例 { "total" : 1, "rows" : [ { "sessionid" : 25347, "pid" : 140625211029248, "query_id" : 0, "datname" : "postgres", "client_addr" : "127.0.0.1", "client_port" : 60256, "usename" : "root", "query" : "start transaction isolation level repeatable read;", "backend_start" : "2023-12-11 15:10:21.553063+08", "xact_start" : "2023-12-11 15:10:29.671267+08", "application_name" : "gsql", "state" : "idle in transaction", "state_change" : "2023-12-11 15:10:29.671345+08", "query_start" : "2023-12-11 15:10:29.671267+08", "waiting" : "f", "unique_sql_id" : 0, "top_xid" : "0", "current_xid" : "0", "exec_time" : "232", "xlog_quantity" : 0 } ] }
  • 响应参数 表5 响应Body参数 参数 参数类型 描述 total Integer 参数解释: 查到的事务数量。 取值范围: 不涉及。 rows Array of objects 参数解释: 事务信息列表,详细内容请参见表6 。 表6 TransactionInfo说明 参数 参数类型 描述 sessionid Integer 参数解释: 事务ID。 取值范围: 不涉及。 pid Integer 参数解释: 线程ID。 取值范围: 不涉及。 query_id Integer 参数解释: SQL查询ID。 取值范围: 不涉及。 datname String 参数解释: 数据库。 取值范围: 不涉及。 client_addr String 参数解释: 用户发起事务请求的客户端地址。 取值范围: 不涉及。 client_port Integer 参数解释: 用户发起事务请求的客户端端口。 取值范围: 不涉及。 usename String 参数解释: 用户名。 取值范围: 不涉及。 query String 参数解释: 查询的SQL语句。 取值范围: 不涉及。 backend_start String 参数解释: 会话开始时间。 取值范围: 不涉及。 xact_start String 参数解释: 事务开始时间。 取值范围: 不涉及。 application_name String 参数解释: 应用名称。 取值范围: 不涉及。 state String 参数解释: 事务状态。 取值范围: 不涉及。 state_change String 参数解释: 事务变更时间。 取值范围: 不涉及。 query_start String 参数解释: 查询开始时间。 取值范围: 不涉及。 waiting String 参数解释: 等锁。 取值范围: 不涉及。 unique_sql_id Integer 参数解释: 归一化的SQLID。 取值范围: 不涉及。 top_xid String 参数解释: 顶层事务ID。 取值范围: 不涉及。 current_xid String 参数解释: 当前事务ID。 取值范围: 不涉及。 exec_time String 参数解释: 事务执行时长。 取值范围: 不涉及。 xlog_quantity Integer 参数解释: xlog量。 取值范围: 不涉及。
  • URI POST /v3/{project_id}/instances/{instance_id}/transactions/list 表1 参数说明 名称 是否必选 参数类型 说明 project_id 是 String 参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。 instance_id 是 String 参数解释: 实例ID,此参数是用户创建实例的唯一标识。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为36个字符。 默认取值: 不涉及。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 参数解释: 用户Token。 通过调用 IAM 服务获取用户Token接口获取。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 X-Language 否 String 参数解释: 语言。 约束限制: 不涉及。 取值范围: zh-cn en-us 默认取值: en-us
  • URI GET /v3/{project_id}/instances/{instance_id}/database-volume-summary 表1 参数说明 名称 是否必选 说明 project_id 是 参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。 instance_id 是 参数解释: 实例ID,此参数是用户创建实例的唯一标识。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为36个字符。 默认取值: 不涉及。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 参数解释: 用户Token。 通过调用IAM服务获取用户Token接口获取。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 X-Language 否 String 参数解释: 语言。 约束限制: 不涉及。 取值范围: zh-cn en-us 默认取值: en-us
  • URI GET /v3/{project_id}/instances/{instance_id}/asp/status 表1 参数说明 名称 是否必选 参数类型 说明 project_id 是 String 参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。 instance_id 是 String 参数解释: 实例ID,此参数是用户创建实例的唯一标识。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为36个字符。 默认取值: 不涉及。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 参数解释: 用户Token。 通过调用IAM服务获取用户Token接口获取。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 X-Language 否 String 参数解释: 语言。 约束限制: 不涉及。 取值范围: zh-cn en-us 默认取值: en-us
  • 响应示例 { "instances" : [ { "id" : "ad8cd1440aa94a02ae4580fcbebb3143in14", "name" : "user1-v3-independent", "status" : "BUILD", "mode" : "集中式版", "engine_name" : "GaussDB", "engine_version" : "8.0.92", "solution" : "1主2备", "disk_used_size" : 1.05, "disk_total_size" : 160, "disk_usage" : 0.62, "p80" : 342, "p95" : 501, "deadlocks" : 0, "buffer_hit_ratio" : 0, "nodes" : [ { "id" : "6b7616dfb1c14721b1a11dd5654c1515no14", "name" : "DataNode1", "role":"master", "component_ids" : [ "dn_6001", "dn_6002" ] } ] } ], "total_count" : 100 }
  • URI GET /v3/{project_id}/instances/metric-data 表1 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 参数解释: 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询。例如:该参数指定为1,limit指定为10,则只展示第2~11条数据。 约束限制: 不涉及。 取值范围: [0, 2^31-1] 默认取值: 默认为0(偏移0条数据,表示从第一条数据开始查询)。 limit 否 Integer 参数解释: 查询记录数。例如该参数设定为10,则查询结果最多只显示10条记录。 约束限制: 不涉及。 取值范围: [1, 50] 默认取值: 默认为50。 name 否 String 参数解释: 实例名称。 用于表示实例的名称,同一租户下,同类型的实例名可重名。 约束限制: 不涉及。 取值范围: 4~64个字符之间,必须以字母开头,区分大小写,可以包含字母、数字、中划线或者下划线,不能包含其他的特殊字符。 默认取值: 不涉及。 instance_id 否 String 参数解释: 实例ID,此参数是用户创建实例的唯一标识。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为36个字符。 默认取值: 不涉及。
  • 响应参数 表4 响应Body参数 参数 参数类型 描述 instances Array of InstancesMetricResult objects 参数解释: 实例信息。详情请参见 表5 。 total_count Integer 参数解释: 总记录数。 取值范围: 不涉及。 表5 InstancesMetricResult字段数据结构说明 参数 参数类型 描述 id String 参数解释: 实例ID。 取值范围: 不涉及。 name String 参数解释: 实例名称。 取值范围: 不涉及。 status String 参数解释: 实例状态。 取值范围: creating:实例正在创建。 normal:实例正常。 abnormal:实例异常。 createfail:实例创建失败。 mode String 参数解释: 实例类型。 取值范围: 不涉及。 engine_name String 参数解释: 引擎名称。 取值范围: 不涉及。 engine_version String 参数解释: 引擎版本。 取值范围: 不涉及。 solution String 参数解释: 部署形态。 取值范围: 不涉及。 disk_used_size String 参数解释: 实例数据磁盘已使用大小。 取值范围: 不涉及。 disk_total_size String 参数解释: 实例数据磁盘总大小。 取值范围: 不涉及。 disk_usage String 参数解释: 实例数据磁盘已使用百分比。 取值范围: 不涉及。 p80 String 参数解释: 80% SQL的响应时间。 取值范围: 不涉及。 p95 String 参数解释: 95% SQL的响应时间。 取值范围: 不涉及。 deadlocks String 参数解释: 死锁次数。 取值范围: 不涉及。 buffer_hit_ratio String 参数解释: buffer 命中率。 取值范围: 不涉及。 nodes Array of InstancesNodesResult objects 参数解释: 实例节点信息列表。详情请参见 表6 。 表6 InstancesNodesResult字段数据结构说明 参数 参数类型 描述 id String 参数解释: 节点ID。 取值范围: 不涉及。 name String 参数解释: 节点名称。 取值范围: 不涉及。 role String 参数解释: 节点角色。 取值范围: master:主节点。 slave:备节点。 secondary:日志节点。 readreplica:只读节点。 component_ids Array of Strings 参数解释: 组件ID列表。