华为云用户手册

  • 适用计费项 按需计费包含以下计费项。 表1 适用计费项 计费项 说明 实例规格 对所选的实例规格进行计费,包括vCPU和内存。 存储空间 对数据库存储空间进行计费,按需计费的存储空间费用按照实际使用量每小时计费。 备份空间 GaussDB (for Cassandra)提供了部分免费存储空间,用于存放您的备份数据,其总容量为您购买存储容量的100%。 备份存储用量超过购买存储容量的100%,超出部分将按照备份计费标准收费,计费方式为按需计费(每小时扣费一次),不足一小时按照实际使用时长收费。 公网带宽(可选) GaussDB(for Cassandra)实例支持公网访问,公网访问会产生带宽流量费;GaussDB(for Cassandra)数据库实例在云内部网络产生的流量不计费。 假设您计划购买一个规格为2vCPUs 8GB,3个节点,存储空间容量为500GB的GaussDB(for Cassandra)实例。在购买数据库实例页面底部,您将看到所需费用的明细(不包含备份空间费用),如图1所示。 图1 配置费用 配置费用将包括以下部分: 云数据库虚拟机:根据所选配置(包括vCPU和内存)计算的费用。 云数据库存储空间:根据所选存储空间计算的费用。 备份空间费用,使用后按照统一标准计费,购买时不包含在配置费用中,可通过云数据库 GaussDB NoSQL价格详情查看。
  • 使用GaussDB(for Influx)时要注意什么 实例的操作系统,对用户都不可见,这意味着,只允许用户应用程序访问数据库对应的IP地址和端口。 对象存储服务 (Object Storage Service,简称OBS)上的备份文件以及GaussDB(for Influx)使用的系统容器,都对用户不可见,它们只对GaussDB(for Influx)后台管理系统可见。 申请数据库实例后,您还需要做什么。 申请实例后,您不需要进行数据库的基础运维(比如高可用、安全补丁等),但是您还需要重点关注以下事情: 数据库实例的CPU、IOPS、空间是否足够。 数据库实例是否存在性能问题,是否需要优化等。 父主题: 产品咨询
  • 为域名添加解析记录集 公网域名创建成功后,需要为公网域名设置解析记录集,以便使用域名来访问实例。以下操作以添加A类型记录集为例,其他更多类型记录集请参见添加记录集。 单击新建的公网域名名称,进入“解析记录”页面,单击右上方“添加记录集”。 图6 添加记录集 在“添加记录集”弹出框中,根据界面提示填写记录集参数。 图7 添加解析记录集 参数配置说明请参见增加A类型记录集。 单击“确定”。 返回“解析记录”页面。 添加完成后,您可以在域名对应的记录集列表中查看已添加的记录集。当记录集的状态显示为“正常”时,表示记录集添加成功。
  • 支持审计的关键操作列表 通过 云审计 服务,您可以记录与GaussDB(for Mongo)相关的操作事件,便于日后的查询、审计和回溯。 表1 GaussDB(for Mongo)的关键操作列表 操作名称 资源类型 事件名称 创建实例 instance NoSQLCreateInstance 删除实例 instance NoSQLDeleteInstance 重启实例 instance NoSQLRestartInstance 恢复到新实例 instance NoSQLRestoreNewInstance 磁盘扩容 instance NoSQLExtendInstanceVolume 重置密码 instance NoSQLResetPassword 修改实例名称 instance NoSQLRenameInstance 规格变更 instance NoSQLResizeInstance 绑定弹性公网IP instance NoSQLBindEIP 解绑弹性公网IP instance NoSQLUnBindEIP 实例冻结 instance NoSQLFreezeInstance 实例解冻 instance NoSQLUnfreezeInstance 创建备份 backup NoSQLCreateBackup 删除备份 backup NoSQLDeleteBackup 设置备份策略 backup NoSQLSetBackupPolicy 添加实例标签 tag NoSQLAddTags 修改实例标签 tag NoSQLModifyInstanceTag 删除实例标签 tag NoSQLDeleteInstanceTag 创建参数模板 parameterGroup NoSQLCreateConfigurations 修改参数模板 parameterGroup NoSQLUpdateConfigurations 修改实例参数 parameterGroup NoSQLUpdateInstanceConfigurations 复制参数模板 parameterGroup NoSQLCopyConfigurations 重置参数模板 parameterGroup NoSQLResetConfigurations 应用参数模板 parameterGroup NoSQLApplyConfigurations 删除参数模板 parameterGroup NoSQLDeleteConfigurations 切换SSL instance NoSQLSwitchSSL 修改实例安全组 instance NoSQLModifySecurityGroup 恢复已有实例 backup NoSQLRestoreOldInstance 实例导出参数模板 instance NoSQLSaveConfigurations 回收站策略 instance NoSQLModifyRecyclePolicy 父主题: 实例操作审计
  • 续费相关的功能 包年/包月实例续费相关的功能如表1所示。 表1 续费相关的功能 功能 说明 手动续费 包年/包月实例从购买到被自动删除之前,您可以随时在控制台为实例续费,以延长实例的使用时间。 自动续费 开通自动续费后,实例会在每次到期前自动续费,避免因忘记手动续费而导致资源被自动删除。 在一台包年/包月实例生命周期的不同阶段,您可以根据需要选择一种方式进行续费,具体如图1所示。 图1 实例生命周期
  • 前提条件 已创建CCM私有证书。若未创建CCM私有证书,请参见《 云证书管理服务 用户指南》中“申请私有证书”章节先创建证书。 创建证书时需要将待连接的数据库IP信息添加到证书中,即“配置证书的AltName信息”。若不配置该信息,则会导致数据库连接失败。 若您在创建实例时选择证书功能,此处“证书的AltName信息”只能添加弹性公网IP,因为此时待连接的数据库实例尚未创建成功,无对应的内网IP地址生成,故无法将内网IP地址添加到证书的AltName信息处。 若您是在创建实例成功后,使用重置证书的功能来切换证书信息,此处“证书的AltName信息”可以添加数据库实例所有节点的内网IP地址或者弹性公网IP地址。 图1 创建CCM私有证书 其余参数配置,请参见《 云证书管理 服务用户指南》中“申请私有证书”章节进行设置。
  • 使用须知 Redis迁移已完成或者已经进入增量状态。 需要E CS 实例部署Redis-Full-Check开源工具,并确保与源端、目标端网络互通。 如果迁移任务处于增量状态,由于迁移源端和目标端间存在网络时延,无法确保校验时数据一致,如有条件,建议停止对源端的写入后再做校验。 业务使用Redis时往往存在给key设置过期时间,迁移时key过期行为会影响数据一致性,如果检验结果不一致,可能是由于key过期时间不一致导致。 云厂商DTS在迁移过程中会往目标端Redis写入临时探活key,校验时可能发现非业务数据,属于正常现象。
  • 操作步骤 登录ECS实例,确保能连上源端和目标端Redis。 部署redis-full-check工具。 执行以下命令进行数据校验。 /redis-full-check -s {源端IP}:{源端端口} -p {源端密码} -t {目标端IP}:{目标端端口} -a {目标端密码} -m 1 表1 参数说明 参数 参数 参数示例 -s 源端Redis连接地址和端口。 -s 10.0.0.1:6379 -p 源端Redis密码。 - -t 目标端Redis连接地址和端口。 -t 10.0.0.2:6379 -a 目标端Redis密码。 - -m 校验模式: 全量校验所有键值对。 仅校验值的长度。 仅校验key完整性。 全量校验所有键值,但只校验大key的长度。 默认为模式2。 -m 1 -q 最大qps限制,默认15000。 -q 5000 -d 校验结果保存的文件名称,默认result.db。 -d result.db 查看校验结果文件。 校验默认执行三轮,输出三个校验结果文件,一般只需要看最后一个校验结果文件。 执行sqlite3 result.db.3。 执行select * from key。 查看是否存在异常的key。
  • 使用非SSL方式连接实例的Java代码示例 package influxdb; import okhttp3.OkHttpClient; import org.influxdb.InfluxDB; import org.influxdb.InfluxDBFactory; import org.influxdb.dto.Point; import org.influxdb.dto.Query; import org.influxdb.dto.QueryResult; import java.util.concurrent.TimeUnit; public class demoNoSSL { public static void main(String[] args) { OkHttpClient.Builder client = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) .retryOnConnectionFailure(true); final String serverURL = "http://127.0.0.1:8086", username = "root", password = "root"; InfluxDB influxdb = InfluxDBFactory.connect(serverURL, username, password, client); // Create a database... String databaseName = "foo"; influxdb.query(new Query("CREATE DATABASE " + databaseName, databaseName)); influxdb.setDatabase(databaseName); // Write points to influxdb. influxdb.write(Point.measurement("bar") .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS) .tag("location", "chengdu") .addField("temperature", 22) .build()); // Query your data using InfluxQL. QueryResult queryResult = influxdb.query(new Query("SELECT * FROM bar", databaseName)); // Close it if your application is terminating or you are not using it anymore. influxdb.close(); } }
  • 使用SSL方式连接实例的Java代码示例 package influxdb; import java.security.SecureRandom; import java.security.cert.X509Certificate; import java.util.concurrent.TimeUnit; import javax.net.ssl.SSLContext; import okhttp3.OkHttpClient; import org.influxdb.InfluxDB; import org.influxdb.InfluxDBFactory; import org.influxdb.dto.Point; import org.influxdb.dto.Query; import org.influxdb.dto.QueryResult; import org.apache.http.ssl.SSLContexts; import javax.net.ssl.*; public class demo { public static void main(String[] args) { OkHttpClient.Builder client = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) .retryOnConnectionFailure(true); client.sslSocketFactory(defaultSslSocketFactory(), defaultTrustManager()); client.hostnameVerifier(noopHostnameVerifier()); final String serverURL = "https://127.0.0.1:8086", username = "root", password = "root"; InfluxDB influxdb = InfluxDBFactory.connect(serverURL, username, password, client); // Create a database... String databaseName = "foo"; influxdb.query(new Query("CREATE DATABASE " + databaseName, databaseName)); influxdb.setDatabase(databaseName); // Write points to influxdb. influxdb.write(Point.measurement("bar") .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS) .tag("location", "chengdu") .addField("temperature", 22) .build()); // Query your data using InfluxQL. QueryResult queryResult = influxdb.query(new Query("SELECT * FROM bar", databaseName)); // Close it if your application is terminating or you are not using it anymore. influxdb.close(); } private static X509TrustManager defaultTrustManager() { return new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } public void checkClientTrusted(X509Certificate[] certs, String authType) { } public void checkServerTrusted(X509Certificate[] certs, String authType) { } }; } private static SSLSocketFactory defaultSslSocketFactory() { try { SSLContext sslContext = SSLContexts.createDefault(); sslContext.init(null, new TrustManager[] { defaultTrustManager() }, new SecureRandom()); return sslContext.getSocketFactory(); } catch (Exception e) { throw new RuntimeException(e); } } private static HostnameVerifier noopHostnameVerifier() { return new HostnameVerifier() { @Override public boolean verify(final String s, final SSLSession sslSession) { return true;//true 表示使用ssl方式,但是不校验ssl证书,建议使用这种方式 } }; } }
  • 使用连接池方式连接实例的Java代码示例 package influxdb; import okhttp3.ConnectionPool; import okhttp3.OkHttpClient; import org.influxdb.InfluxDB; import org.influxdb.InfluxDBFactory; import org.influxdb.dto.Point; import org.influxdb.dto.Query; import org.influxdb.dto.QueryResult; import java.util.concurrent.TimeUnit; public class demoConnectionPool { public static void main(String[] args) { // 客户端连接池功能基于OkHttpClient实现 OkHttpClient.Builder client = new OkHttpClient().newBuilder(); client.connectTimeout(10, TimeUnit.SECONDS); client.readTimeout(10, TimeUnit.SECONDS); client.writeTimeout(10, TimeUnit.SECONDS); // 建议设为true,屏蔽部分连接错误,并自动进行重试 client.retryOnConnectionFailure(true); // maxIdleConnections指连接池最多维护的未使用的Idle连接数量,默认值是5 // 超过阈值的idle连接会由连接池关闭,关闭后sockets进入TIME_WAIT状态等待系统回收,该参数需根据实际连接数适当调整 client.connectionPool(new ConnectionPool(5, 30, TimeUnit.SECONDS)); final String serverURL = "http://127.0.0.1:8086", username = "root", password = "root"; InfluxDB influxdb = InfluxDBFactory.connect(serverURL, username, password, client); // Create a database... String databaseName = "foo"; influxdb.query(new Query("CREATE DATABASE " + databaseName, databaseName)); influxdb.setDatabase(databaseName); // Write points to influxdb. influxdb.write(Point.measurement("bar") .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS) .tag("location", "chengdu") .addField("temperature", 22) .build()); // Query your data using InfluxQL. QueryResult queryResult = influxdb.query(new Query("SELECT * FROM bar", databaseName)); // Close it if your application is terminating or you are not using it anymore. influxdb.close(); } }
  • 迁移原理 使用Redis-Shake迁移工具进行源端Redis到目标端GaussDB(for Redis)的迁移。迁移过程支持全量+增量迁移,支持单机/主从/Cluster集群/RDB文件等多种Redis数据源。 全量迁移原理:工具模拟源端Redis的从节点,通过全量同步获取RDB文件,解析后将数据以命令形式发送给目标端GaussDB(for Redis)。此外,也可将RDB文件作为数据源,方便地导入某时刻的数据快照。 增量迁移原理:全量迁移完成后,工具继续将增量数据以命令形式发送给目标端GaussDB(for Redis),直到手动停止工具。
  • 使用须知 磁盘容量变更目前既支持扩容,也支持缩容。 缩容场景下,待变更到的磁盘容量必须大于已用量的125%,向上取整。 扩容磁盘无需重启实例,在此期间,服务不中断,不影响您正常使用数据库。 缩容磁盘也无需重启实例,在此期间,服务不中断,不影响您正常使用数据库。 磁盘满容量后,允许继续写入,针对包周期实例,超出的部分将按需计费,推荐进行扩容磁盘,享受包周期优惠政策。 存储详情支持在“实例管理”页面显示,您可以联系客服进行开通。
  • 入门实践 当您购买并连接了GaussDB(for Cassandra)数据库实例后,可以根据自身的业务需求使用GaussDB(for Cassandra)提供的一系列常用实践。 表1 常用最佳实践 实践 描述 数据库规范 基本设计规范 介绍GaussDB(for Cassandra)的基本设计规范。 数据库对象使用规范 介绍数据库对象的使用规范。 数据库使用约束规范 介绍数据库的使用约束规范。 查询规范 介绍GaussDB(for Cassandra)的查询规范。 变更实例 修改实例名称 GaussDB(for Cassandra)支持修改数据库实例名称,以方便您区分和识别实例。 重置管理员密码 GaussDB(for Cassandra)支持重置数据库管理员密码,建议您定期修改密码,以提高系统安全性,防止出现密码被破解等安全风险。 变更实例的CPU和内存规格 当用户购买的实例的CPU和内存规格无法满足业务需要时,可以在控制台进行CPU和内存规格变更。 数据备份 管理自动备份 介绍如何在数据库实例的备份时段中创建数据库实例的自动备份,系统根据您指定的备份保留期保存数据库实例的自动备份。 管理手动备份 介绍如何为数据库实例手动备份数据,用户可以通过手动备份恢复数据,从而保证数据可靠性。 设置跨区域备份策略 介绍如何为数据库实例设置跨区域备份策略,用户可以在异地区域使用目标区域的备份文件恢复到新的GaussDB(for Cassandra)实例,用来恢复业务。 创建库表级备份 介绍如何为数据库实例创建库表级备份,当数据库或表被恶意或误删除,可依赖实例的备份保障数据安全。 数据恢复 恢复备份到新实例 介绍如何使用已有的自动备份或手动备份恢复实例数据到新建实例,恢复后的数据与该备份生成时的实例数据一致。 恢复备份到指定时间点 介绍如何使用已有的自动备份,恢复实例数据到指定时间点。 日志管理 慢日志 GaussDB(for Cassandra)支持查看数据库级别的慢日志,执行时间的单位为ms。通过该日志,可查找出执行效率低的语句,以便优化。 父主题: 快速入门
  • 操作步骤 登录管理控制台。 在服务列表中,单击“ 云监控服务 CES ”,进入 云监控 服务页面。 图1 登录云监控服务控制台 创建监控看板。 在左侧导航栏选择“监控看板”,单击“创建监控看板”。 图2 创建监控看板 在“创建监控看板”弹出框中配置参数。 图3 配置参数 表1 参数说明 参数名称 说明 名称 表示监控看板名称,该参数只能由中文、英文字母、数字、下划线、中划线组成,且长度不超过128。 企业项目 将监控看板关联给到某个企业项目时,只有拥有该企业项目权限的用户才可以查看和管理该监控看板。 说明: 企业项目仅在部分区域上线。 单击“确定”,完成创建监控看板。 为监控看板添加监控视图。 在完成监控看板的创建后,您就可以添加监控视图对GaussDB(for Redis)实例进行监控。 在“监控看板”页面,选择目标名称,切换到需要添加监控视图的监控看板,然后单击“添加监控视图”。 图4 添加监控视图 在“添加监控视图”界面,可以选择曲线图和条形图。 曲线图:能够直观反映指标数据随时间的变化趋势,峰值等特征。 条形图:能够直观地反映同类资源的指标数据差异,帮助了解指标的极值等。 在“监控项配置”界面,参照表2完成参数配置。 图5 监控项配置 表2 参数说明 参数名称 说明 指标展示 单指标一个视图:生产一个或多个视图,一个视图中的监控项均为相同指标。 多指标一个视图:生产一个视图,监控项可以为不同指标。 监控范围 选择资源和指标。 视图名称 自定义关注指标组件的视图名称,该名称只能由中文、英文字母、数字、下划线、中划线组成,长度限制为128字节。 例如:CPU利用率 阈值 配置阈值生成辅助水位线,高于水位线的数据点高亮。 图例名称 图例名称是显示在监控视图指标变化曲线上的名称,您可以自定义图例名称。 您可以选择不配置图例名称,那么系统默认展示:监控对象 (资源类型) - 监控指标: 数据。 添加监控视图时,建议选择单指标一个视图,这样每个监控指标就可以独立生成一个监控视图,方便您观察和分析监控数据。如果您需要添加多个监控指标,可通过多次添加监控视图来添加对应监控指标。 在所选的监控看板上可以查看新添加监控视图的监控走势图。
  • 变更配置后对计费的影响 如果您在购买按需计费实例后变更了实例配置,会产生一个新订单并开始按新配置的价格计费,旧订单自动失效。 如果您在一个小时内变更了实例配置,将会产生多条计费信息。每条计费信息的开始时间和结束时间对应不同配置在该小时内的生效时间。 例如,您在9:00:00购买了一台按需计费实例,实例规格为 0.5vCPUs 3GB,并在9:30:00升配为 1vCPU 6GB,那么在9:00:00 ~ 10:00:00间会产生两条计费信息。 第一条对应9:00:00 ~ 9:30:00,实例规格按照 0.5vCPUs 3GB计费。 第二条对应9:30:00 ~ 10:00:00,实例规格按照 1vCPU 6GB计费。
  • 计费周期 按需计费GaussDB(for Redis)实例按秒计费,每一个小时整点结算一次费用(以GMT+8时间为准),结算完毕后进入新的计费周期。计费的起点以GaussDB(for Redis)实例创建成功的时间点为准,终点以实例删除时间为准。 实例从创建到启动需要一定时长,计费的起点是创建成功的时间点,而非开始创建的时间。您可以在实例详情页“基本信息”页签查看这个时间,创建成功的时间点对应界面上的“创建时间”。 例如,您在8:45:30购买了一个按需计费的GaussDB(for Redis)实例,相关资源包括计算资源(vCPU和节点数量)、存储容量和备份存储,然后在8:55:00将其删除,则计费周期为8:00:00 ~ 9:00:00,在8:45:30 ~ 8:55:30间产生费用,该计费周期内的计费时长为600秒。
  • 计费示例 假设您在2023/04/18 9:59:30购买了一个按需计费实例(规格:0.5 vCPUs 独享型,节点数量:3,存储容量:40GB,备份存储:50GB(赠送40GB,后续收费空间10GB)),计费资源包括计算资源(vCPU和节点数量)和存储容量,然后在2023/04/18 10:45:46将其删除,则: 第一个计费周期为9:00:00 ~ 10:00:00,在9:59:30 ~ 10:00:00间产生费用,该计费周期内的计费时长为30秒。 第二个计费周期为10:00:00 ~ 11:00:00,在10:00:00 ~ 10:45:46间产生费用,该计费周期内的计费时长为2746秒。 10:00:00 ~ 10:45:00期间,使用免费备份空间。 10:45:00 ~ 10:45:46期间,使用计费备份空间10GB,计费时长46秒。 您需要为每个计费周期付费,各项GaussDB(for Redis)实例单独计费,计费公式如表2所示。产品价格详情中标出了实例的每小时价格,您需要将每小时价格除以3600,得到每秒价格。 表2 计费公式 资源类型 计费公式 资源单价 计算资源(vCPU和节点数量) 实例规格单价 * 计费时长 请参见云数据库 GaussDB NoSQL价格详情中的“集群-规格费用”。 存储容量 存储容量单价 * 购买时长 请参见云数据库 GaussDB NoSQL价格详情中的“集群磁盘空间计费信息”。 备份空间 备份空间单价 * 计费时长 * ( 备份容量 - 存储空间)(GB) 说明: 计费时长:备份超过免费空间大小的使用时长。 请参见云数据库 GaussDB NoSQL价格详情中的“备份空间计费信息。 公网流量 按固定带宽值采用阶梯计费 0Mbit/s~5Mbit/s(含):均为一个统一的单价 大于5Mbit/s:按每Mbit/s计费 请参见弹性 云服务器价格 详情中的“带宽价格”,或者弹性公网IP价格详情。 图2给出了上述示例配置的费用计算过程。 图中价格仅供参考,实际计算请以云数据库 GaussDB NoSQL价格详情中的价格为准。 在按需付费模式下,价格计算器上的金额如果遇小数点,则保留小数点后两位,第三位四舍五入。如遇四舍五入后不足¥0.01,则按¥0.01展示。 图2 按需计费GaussDB(for Redis)费用计算示例
  • 适用计费项 按需计费包含以下计费项。 表1 适用计费项 计费项 说明 实例规格 对所选的实例规格进行计费,包括vCPU和内存。 存储空间 对数据库存储空间进行计费,按需计费的存储空间费用按照实际使用量每小时计费。 备份空间 GaussDB(for Redis)提供了部分免费存储空间,用于存放您的备份数据,其总容量为您购买存储容量的100%。 备份存储用量超过购买存储容量的100%,超出部分将按照备份计费标准收费,计费方式为按需计费(每小时扣费一次),不足一小时按照实际使用时长收费。 公网带宽(可选) GaussDB(for Redis)实例支持公网访问,公网访问会产生带宽流量费;GaussDB(for Redis)数据库实例在云内部网络产生的流量不计费。 假设您计划购买一个规格为2vCPUs,3个节点,存储空间容量为12GB的GaussDB(for Redis)实例。在购买数据库实例页面底部,您将看到所需费用的明细(不包含备份空间费用),如图1所示。 图1 配置费用 配置费用将包括以下部分: 云数据库虚拟机:根据所选配置(包括vCPU和内存)计算的费用。 云数据库存储空间:根据所选存储空间计算的费用。 备份空间费用,使用后按照统一标准计费,购买时不包含在配置费用中,可通过云数据库 GaussDB NoSQL价格详情查看。
  • 包年/包月资源 对于包年/包月计费模式的资源,例如包年/包月的GaussDB(for Influx)实例,用户在购买时会一次性付费,服务将在到期后自动停止使用。 如果在计费周期内不再使用包年/包月资源,您可以执行退订操作,系统将根据资源是否属于五天无理由退订、是否使用代金券和折扣券等条件返还一定金额到您的帐户。详细的退订规则请参见云服务退订规则概览。 如果您已开启“自动续费”功能,为避免继续产生费用,请在自动续费扣款日(默认为到期前7日)之前关闭自动续费。
  • 迁移后数据校验 使用redis数据校验工具RedisFullCheck进行校验,在redis源端或者目标端执行以下命令: /redis-full-check -s {源端IP}:{源端端口} -p {源端密码} -t {目标端IP}:{目标端端口} -a {目标端密码} -m 比较模式 示例: ./redis-full-check -s 28.80.60.201:6379 -t 28.80.60.200:9221 -p a -a a -m 1 【注】上例中,28.80.60.200为源端pika IP,28.80.60.201为目标端redis IP。 等待校验完毕,如出现如下信息表示迁移成功,redis源端与目的端数据相同。 【注意事项】用redis-full-check进行数据校验时,会先使用 info keyspace命令判断需要迁移哪些DB;由于pika的keyspace解析与redis不一致,所以用redis-full-check进行数据校验时,源端必须填写redis的IP和port。
  • pika-migrate迁移工具使用说明 迁移工具部署 Pika-migrate工具下载:https://github.com/OpenAtomFoundation/pika/tree/v3_2_7_migrate 工具使用说明:https://github.com/OpenAtomFoundation/pika/blob/v3_2_7_migrate/pika-migrate.md 也可以直接使用编译好的二进制文件。 将解压后的整个pika_migrate_output文件放置在部署了pika的环境上(或者任一能与pika实例和GaussDB(for Redis)实例网络互通的服务器上),解压后的文件夹目录结构如下: 使用前清空db、dbsync和log目录下的内容。 迁移步骤 修改配置文件 根据目标端(redis)的信息,修改迁移工具的配置文件conf/pika.conf 中的如下参数: target-redis-host:Redis 的 IP 地址。 target-redis-port:Redis 的端口号。 target-redis-pwd:Redis 默认账号的密码。 在pika主库上执行“config set expire-logs-nums 10000”命令,让 PIKA 主库保留10000个 binlog 文件。 在工具包的路径下执行如下命令,启动 pika-migrate 工具,并查看控制台回显信息: bin/pika -c conf/pika.conf。 在pika-migrate客户端执行如下命令,将迁移工具伪装成 Slave,向主库请求同步,并观察控制台是否打印报错信息。 slaveof [pika主库ip] [pika主库port] 如果主从关系建立,此时回显信息为: 确认主从关系建立成功之后,pika-migrate开始向目标端Redis转发数据。在pika主库和从库执行“info Replication”命令,查看主从同步延迟。可在主库写入⼀个特殊的 key,然后在 Redis 侧查看是否可立即获取到该 key,判断数据同步完毕。 常见问题 如果从库一直未收到主库响应,会一直停留在Need To Sync阶段: 可能原因 pika主库未使用root启动导致rsync无权限,请参考网址:https://github.com/OpenAtomFoundation/pika/issues/553。 rsync使用端口未开启监听,请开启监听。 rsync使用端口已被其他进程占用,请解除端口占用。
  • pika-port迁移工具使用说明 部署迁移工具pika-port 迁移工具下载 从Github上直接下载编译好的对应pika版本的pika-port开源迁移工具(如pika3.0.x版本就使用3.0.x版本的开源工具),网址为:https://github.com/ipixiu/pika-port-bin。 图2 迁移工具下载 部署位置和目录结构 以pika_portv1.6.0为例,将解压后的整个文件重命名为pika_port3,拷贝在部署了pika的环境上(或者任一能与pika实例和GaussDB(for Redis)实例网络互通的服务器上),解压后的pika_port3文件夹目录结构如下: 迁移前准备 由于sbin目录下的pika-port二进制文件需要引用lib目录下的库文件,迁移之前需在pika_port3路径执行如下命令: export LD_LIBRARY_PATH=./lib:${LD_LIBRARY_PATH} //链接库文件 rm -rf ./rsync_dump/ //删除文件夹 rm -rf ./sync_log/ //删除sync日志 pika单机数据迁移 启动命令 执行如下命令,启动pika_port迁移工具: ./sbin/pika_port -i master_ip -o master_port -m forward_ip -n forward_port -x forward_thread_num -y forward_passwd -f filenum -s offset -w password -r rsync_dump_path -l log_path -h -- show this help -t -- local host ip(OPTIONAL default: 127.0.0.1),输入本机IP -p -- local port(OPTIONAL),默认即可 -i -- Pika主节点IP -o -- Pika主节点port -m -- 高斯Redis ELB IP -n -- 高斯Redis port -x -- 发送线程数量(OPTIONAL default: 1) -y -- 高斯Redis 密码 -f -- binlog文件数量,默认即可(OPTIONAL default: local offset) -s -- binlog offset,默认即可(OPTIONAL default: local offset) -w -- Pika主节点密码 -r -- rsync dump文件到本地目录,默认即可(OPTIONAL default: ./rsync_dump) -l -- 产生的日志文件目录,默认即可(OPTIONAL default: ./log) -b -- max batch number when port rsync dump data. 默认即可 (OPTIONAL default: 512) -d -- 是否后台运行(OPTIONAL) 示例: ./sbin/pika_port -t 28.80.60.200 -p 12345 -i 28.80.60.200 -o 9221 -m 28.80.60.201 -n 6379 -x 7 -y a -w a 【注】上例中,28.80.60.200为源端pika IP,28.80.60.201为目标端redis IP。 等待结果 等待数据迁移,若执行日志中出现如下信息,代表全量数据同步完成,此后数据迁移进入增量同步阶段。 pika集群数据迁移 迁移步骤同pika单机数据迁移步骤,为每个pika实例创建一个工作流即可。
  • 迁移原理 pika-port伪装成Pika的从节点运行,通过主从复制的方式进行数据迁移。Pika主节点通过比较pika-port和自己的binlog偏移量判断做全量迁移还是增量迁移。如果需要做全量迁移,Pika主节点会将全量数据快照发送给pika-port,pika-port将解析后的快照数据发送给GaussDB(for Redis)。全量迁移结束后进入增量迁移,pika-port将增量数据解析后以redis命令的形式发送给GaussDB(for Redis)。 图1 迁移原理 Pika-migrate的迁移原理和pika-port相似,将工具虚拟为pika的从库,然后从主库获取到数据转发给目标redis,同时支持增量同步,实现在线热迁的功能。 pika-migrate 通过 dbsync 请求获取主库全量 DB 数据,以及当前 DB 数据所对应的 binlog 点位。获取到主库当前全量 DB 数据之后,扫描 DB,将 DB 中的数据打包转发给 Redis。通过之前获取的 binlog 的点位向主库进行增量同步, 在增量同步的过程中,将从主库获取到的 binlog 重组成redis命令,转发给redis。
  • 使用须知 迁移工具,与社区版InfluxDB部署在相同机器上,准备好配置文件。 迁移工具需要从tsm以及wal提取数据到本地行协议文件,并从行协议文件中获取数据发送到目标端GaussDB(for Influx) ,该过程中可能影响源端性能,建议在业务低峰期运行迁移工具。 由于需要将tsm/wal文件数据提取至行协议文件,请预留足够大的磁盘空间。 迁移工具仅支持社区版InfluxDB 1.X版本迁移。
  • 迁移原理 通过迁移工具解析社区版InfluxDB的tsm以及wal文件写入到行协议(Line Protocal)文件中,最终将行协议文件数据解析并迁移至目标端。 整个迁移过程分为导出和导入阶段两个阶段。 导出阶段会并发解析社区版InfluxDB的tsm以及wal文件,并将解析数据写入到行协议文件中。 导入阶段会并发读取行协议文件,将读取数据发送至GaussDB(for Influx)集群各节点上。 迁移工具支持全量迁移和增量迁移,具体可在配置文件中配置。
  • GaussDB(for Mongo)内核版本说明 本章节介绍云数据库GaussDB(for Mongo)的内核版本更新说明。 表1 云数据库 GaussDB(for Mongo)版本说明 版本 日期 特性描述 4.0 2023-09-30 新特性及性能优化: 新增数据库死锁告警,当数据库死锁时上报告警,及时发现并规避问题。 问题修复: 修复只读状态下,可执行Distict命令的问题。 2023-07-30 新特性及性能优化: 支持设置“只写”状态,禁止特定读命令执行。 支持主节点被动触发Compaction时,同步到备节点执行该Compaction,避免备节点因磁盘占满与主节点脱节。 2023-06-30 新特性及性能优化: 支持客户端断开时,自动Kill该客户端关联的执行中的op,避免无效op占用系统资源。 优化TTL、删除操作等产生大量脏数据场景下的Compaction策略,使系统更加稳健。 添加配置参数,支持启动时触发全量Compaction,加速实例在大量脏数据场景下的启动速度。 2023-04-30 新特性及性能优化: 新增检测到磁盘故障时,会自动主备倒换,使数据库更加稳定地运行。 问题修复: 修复SERVER-37686漏洞。 2023-01-30 新特性及性能优化: 新增接口,在删除数据后,可主动释放存储空间。 父主题: 版本发布说明
  • 使用须知 实例状态为“正常”、“备份中”、“恢复检查中”、“存储扩容中”,以及个别节点异常时,支持重置密码。 管理员密码重置成功后立刻生效。 创建了同城容灾或搭建了异地双活的实例,主实例和备实例的管理员密码要保持一致。 开启操作保护的用户,在进行敏感操作时,通过进行二次认证再次确认您的身份,进一步提高账号安全性,有效保护您安全使用云产品。关于如何开启操作保护,具体请参考《 统一身份认证 服务用户指南》的内容。
  • 监控指标 如下监控指标需要在实例节点查看,具体方法请参见查看监控指标。 表1 GaussDB(for Influx)支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) gemini001_cpu_usage CPU利用率 该指标为从系统层面采集的CPU使用率。 单位:% 0~100 % GaussDB(for Influx)实例的节点 1分钟 gemini002_mem_usage 内存利用率 该指标为从系统层面采集的内存使用率。 单位:% 0~100 % GaussDB(for Influx)实例的节点 1分钟 gemini003_bytes_out 网络输出吞吐量 统计平均每秒从测量对象的所有网络适配器输出的流量。 单位:kb/s ≥ 0 kb/s GaussDB(for Influx)实例的节点 1分钟 gemini004_bytes_in 网络输入吞吐量 统计平均每秒从测量对象的所有网络适配器输入的流量。 单位:kb/s ≥ 0 kb/s GaussDB(for Influx)实例的节点 1分钟 nosql005_disk_usage 存储容量使用率 该指标为存储容量使用率。 单位:% 0~100 % GaussDB(for Influx)实例 1分钟 nosql006_disk_total_size 存储容量总容量 该指标为实例的存储容量总容量。 单位:GB ≥ 0 GB GaussDB(for Influx)实例 1分钟 nosql007_disk_used_size 存储容量使用量 该指标为实例的存储容量使用量。 单位:GB ≥ 0 GB GaussDB(for Influx)实例 1分钟 influxdb001_series_num 时间线数量 描述总的时间线数量。 单位:Counts ≥ 0 Counts GaussDB(for Influx)实例的节点 1分钟 influxdb002_query_req_ps 每秒查询请求 描述每秒查询请求的数量。 单位:Counts/s ≥ 0 Counts/s GaussDB(for Influx)实例的节点 1分钟 influxdb003_write_req_ps 每秒写入请求 描述每秒写入请求的数量。 单位:Counts/s ≥ 0 Counts/s GaussDB(for Influx)实例的节点 1分钟 influxdb004_write_points_ps 写入数据点 描述每秒写入的数据点数量。 单位:Counts/s ≥ 0 Counts/s GaussDB(for Influx)实例的节点 1分钟 influxdb005_write_concurrency 写入并发量 描述并发写入的请求数量。 单位:Counts ≥ 0 Counts GaussDB(for Influx)实例的节点 1分钟 influxdb006_query_concurrency 查询并发量 描述并发查询的请求数量。 单位:Counts ≥ 0 Counts GaussDB(for Influx)实例的节点 1分钟
  • 连接方式介绍 GaussDB(for Redis)兼容开源Redis接口,支持应用程序使用多种SDK访问。同时还提供控制台、内网、公网的访问途径。 表1 连接方式 连接方式 使用场景 说明 控制台连接 GaussDB(for Redis)支持通过管理控制台的Web客户端连接Redis实例 - 内网连接 介绍通过内网IP、内网域名或负载均衡地址连接GaussDB(for Redis)实例的方法。 该方式适用于当应用部署在弹性云服务器上,且该弹性云服务器与数据库实例处于同一区域、同一VPC内时连接数据库实例。 推荐使用负载均衡地址或内网域名的方式,可靠性高,可消除单点故障影响。 安全性高,可实现数据库实例的较好性能。 公网连接 介绍通过公网域名、弹性公网IP或负载均衡器绑定弹性公网IP连接GaussDB(for Redis)实例的方法。 该方式适用于不能通过内网方式访问数据库实例时,可以单独使用公网域名或弹性公网IP连接弹性云服务器(或公网主机)与数据库实例。 为了获得更快的传输速率和更高的安全性,建议您将应用迁移到与您的数据库实例在同一VPC子网内,使用内网连接。 推荐负载均衡器绑定弹性公网IP的方式,可靠性高,可消除单点故障影响。 用户需要购买弹性公网IP,请参见弹性公网IP计费说明。 程序代码连接 介绍通过程序语言的方式访问GaussDB(for Redis)实例的方法。 - 父主题: 步骤二:连接实例
共100000条