云服务器内容精选

  • 为什么RDS自动备份会失败 出现自动备份失败可能有以下原因: 图1 自动备份失败排查思路 网络环境稳定性不足。 如网络延时、中断,系统会识别并延时半小时再次执行备份,您也可以及时进行一次手动备份。 系统多任务执行。 如任务等待、中止,系统会识别并延时半小时再次执行备份,您也可以及时进行一次手动备份。 实例状态异常。 如实例故障、状态变更中,系统会识别并在状态恢复正常后再次执行备份,您也可以及时进行一次手动备份。 数据库中表的数量会影响备份速度。 表数量超过50万,备份将会失败。 参数修改异常。 如修改参数并关联实例后导致实例故障,您可以对比参数修改前后的值是否正确、修改的参数是否存在关联参数需要一并修改、或者尝试恢复默认参数重启实例。 导入数据异常。 如导入数据不当导致系统表记录丢失: RDS for MySQL相关,您可以参考迁移方案总览重新导入数据。 RDS for PostgreSQL相关,您可以参考迁移方案总览重新导入数据。 RDS for SQL Server相关,您可以参考迁移方案总览重新导入数据。 如果以上操作仍无法解决问题,请提交工单处理。 父主题: 备份与恢复
  • 方案二:使用DUMP DATABASE命令备份 步骤如下: dump备份my_database的数据库。 DUMP DATABASE my_database TO '/local_dump_dir/my_database.dump' dump my_database的事务日志。 DUMP TRANSACTION my_database TO '/local_dump_dir/my_database.$timestamp.dumptran' 将本地文件备份到SFS或OBS。 恢复数据库。 恢复前停止数据库。 dbcc dbreboot(shutdown_load, my_database) 恢复数据库。 LOAD DATABASE my_database FROM "my_database.dump" LOAD TRAN my_database FROM "my_database.$timestamp.dumptran" 恢复后启动数据库。 online database my_database 增量备份前需要设置trunc log on chkpt参数为false。命令如下: sp_dboption my_database, "trunc log on chkpt", false
  • 手动备份说明 备份类型: 全量备份:全量备份表示对所有目标数据进行备份。全量备份总是备份所有选择的目标,即使从上次备份后数据没有变化。 备份方式: 物理备份:通过物理拷贝磁盘文件的方式进行备份。 DDS支持的手动备份方法如表1所示。 表1 备份方法 实例类型 备份方式 备份类型 集群 物理备份 全量备份 副本集 物理备份 全量备份 单节点 说明: 单节点因为资源的限制,支持的场景有限,建议仅学习时选用。 物理备份 全量备份
  • 约束与限制 对于有数据可靠性要求的用户,尤其是针对业务方无法通过上游重新导入进行数据恢复的场景,集群需要备份操作,避免人为或其他因素造成数据丢失后无法恢复。 Schema粒度快照支持集群版本如下所示(如果当前控制台界面不支持该功能,请联系技术支持人员)。 9.1.0.100及以上集群版本。 8.3.0.110及以上集群版本。 8.2.1.230及以上的8.2.1.2xx集群版本。 OBS快照存储空间与计费说明: GaussDB (DWS)提供的免费存储空间等于集群存储空间,即单节点存储空间大小 * 节点数。 GaussDB(DWS)提供了部分免费存储空间,用于存放集群备份时的快照数据。当快照数据存储空间超过免费空间大小时,超出部分按照OBS的计费规则进行计费,计费详情参见OBS价格详情。 快照服务依赖及部署说明: 快照管理功能依赖于OBS、NFS的备份介质。 备份设备为NFS的备份介质时,使用挂载盘的方式,依赖云上SFS-Tubor服务。具体配置步骤请参见11.1.3.2-自动快照策略配置备份介质。 当前快照恢复到新集群时仅支持OBS介质。 GaussDB(DWS)根据快照创建的新集群与生成快照的原始集群具有相同的配置,即节点的数量和规格、内存、磁盘与原集群一致。 根据快照创建新集群时,如果没有指定其他值,则参数默认与生成快照时的备份信息保持一致。 存算一体(单机部署)暂不支持快照功能。 存算分离集群仅9.0.2及以上集群版本支持快照功能,但是带有弹性逻辑集群的存算分离集群不支持备份恢复。如果集群有弹性逻辑集群备份恢复会失败,建议将弹性逻辑集群回收后,再执行备份恢复操作。 存算分离集群混合计费的快照恢复场景目前只支持恢复到全包年/包月或者全按需情况,即如果此集群有三个包年/包月节点和三个按需节点,如果恢复成包年/包月,那么此时六个节点都是包年/包月;如果恢复成按需,那么这六个节点都是按需。 快照生成期间,请避免进行Vacuum Full操作,否则可能会导致集群只读。 创建快照时因备份数据会降低磁盘I/O性能,建议在业务相对空闲的时期进行快照操作。 快照期间会保留一些中间文件,需额外占用磁盘空间,因此请避开业务高峰期并保证磁盘容量在70%以下。
  • 响应消息 正常响应要素说明 表3 要素说明 名称 参数类型 说明 database_limit Integer 单个实例支持恢复的库数量上限。如果单个实例在可恢复时间点查询到的库超过上限,响应中只返回上限数量的库。 table_limit Integer 单个实例支持恢复的所有库中包含的总的表数量上限。如果数据库在可恢复时间点查询到的表数量超过上限,响应中只返回总表数不超出上限的库。 instances Array of objects 实例信息。详细说明请参见表4。 表4 instances字段数据结构说明 参数 参数类型 描述 id String 实例ID。 name String 实例名称。 total_tables Integer 该实例中所有可恢复库中包含表的总个数。最大不超过table_limit。 databases Array of objects 数据库信息。详细说明请参见表5。 表5 databases字段数据结构说明 参数 参数类型 描述 name String 数据库名。当前不支持库名含中文的库恢复,可恢复库查询会过滤库名含中文的库。 total_tables Integer 该数据库中包含表的总个数。最大不超过table_limit。 正常响应样例 RDS for MySQ L实例 指定时间点查询可恢复的库: { "instances": [ { "id": "5d742eda6e574ff3a003191638ef8c51in01", "name": "AUTO-GENERATED-INSTANCE-57-HA-LOCALSSD", "databases": [ { "name": "dbtest", "total_tables": 1 }, { "name": "dbtest_restore", "total_tables": 1 } ], "total_tables": 2 } ], "database_limit": 2000, "table_limit": 20000 } 异常响应 请参见异常请求结果。
  • 请求示例 查询RDS for MySQL实例指定时间点可恢复的库。 POST http://{endpoint}/v3/54623db08b174c858ba779d2aa7923a3/mysql/instances/history/databases { "instance_ids" : [ "5d742eda6e574ff3a003191638ef8c51in01" ], "restore_time" : 1688554422000, "database_name_like" : "", "instance_name_like" : "" }
  • 同步数据失败 同步数据失败的处理建议: 错误信息包含“key name is busy”,目标Redis对应的key已经存在,删除目标Redis报错的key。 错误信息包含“not in the same slot“,建议进行业务改造,不要在多key命令里面用跨slot的key;也可以把目标Redis用主备实例代替proxy集群实例。 错误信息中包含“read: connection reset by peer”,源Redis为主备,且迁移过程中,频繁发生主备倒换,请分析源Redis是否存在大Key,如果源Redis存在大key,建议将大key打散成多个小key后再迁移;也可强行关闭主备倒换,等数据迁移完毕后再开启主备倒换,命令:config set slave-priority 0。如果目标Redis为proxy集群,请排查pipeline阈值大小,建议调整proxy节点pipeline阈值为5W,命令: proxy.config set client-max-pipeline 50000。
  • 未知或未支持的命令 未知或未支持的命令的处理建议: 检查源Redis有没有放通相关命令,如SYNC和PSYNC,需要联系技术支持放通命令。 在线迁移,必须满足源Redis和目标Redis的网络相通、源Redis已放通SYNC和PSYNC命令这两个前提,否则,会迁移失败。 网络 检查源Redis、目标Redis、迁移任务所需虚拟机是否在同一个VPC,如果是同一个VPC,则检查安全组(Redis 3.0实例)或白名单(Redis 4.0/5.0实例)是否放通端口和IP,确保网络是连通的;如果不在同一个VPC,则需要建立VPC对等连接,打通网络。 源Redis和目标Redis必须允许迁移任务底层虚拟机访问。实例安全组或白名单配置,请参考配置安全组、配置白名单。 源Redis和目标Redis属于不同的云厂商,请参考云专线打通网络。 命令 默认情况下,一般云厂商都是禁用了SYNC和PSYNC命令,如果要放通,需要联系云厂商运维人员放通命令。 华为云内部进行迁移: 自建Redis迁移至D CS ,默认没有禁用SYNC和PSYNC命令; 华为云DCS服务之间进行迁移,如果是同一账号相同Region进行在线迁移,在执行迁移时,会自动放通SYNC和PSYNC命令; 如果是不同Region或相同Region不同账号进行在线迁移,不会自动放通SYNC和PSYNC命令,无法使用在线迁移。推荐使用备份文件导入方式迁移。 其他云厂商迁移到华为云: 一般云厂商都是禁用了SYNC和PSYNC命令,如果使用在线迁移功能,需要联系源端的云厂商运维人员放通此命令,离线迁移,推荐使用备份文件导入方式。
  • 重新启动数据同步失败 重新启动数据同步失败的处理建议: 分析源Redis是否存在大Key,如果源Redis存在大key,建议将大key打散成多个小key后再迁移。 检查目标Redis的规格是否小于迁移数据大小、是否有其他任务在执行。 如果目标Redis的实例规格小于迁移数据大小,迁移过程中,内存被占满,会导致迁移失败。 如果目标Redis存在正在执行的主备倒换,建议联系技术支持关闭主备倒换后,重新执行数据迁移。待迁移完成后,重新开启主备倒换。 提供错误信息,联系技术支持。
  • 同步数据失败,源节点:{0},目标节点:{1} 同步数据失败的处理建议: 分析源Redis是否存在大Key,如果源Redis存在大key,建议将大key打散成多个小key后再迁移。 确保目标Redis规格不小于源Redis。查看规格步骤参见查看实例信息; 参见Redis连接失败问题排查和解决。 排查源Redis规格和迁移机内存大小,迁移机的内存小,源redis数据量过大,迁移速度过慢使数据堆积在迁移机上时,也会导致该类问题,此情况建议扩容迁移机规格。
  • 执行命令异常 执行命令异常的处理建议: 错误信息中包含“listening-port”和“REPLCONF”相关,请检查源Redis是否放通SYNC和PSYNC命令,迁移任务底层资源与源Redis、目标Redis网络是否连通。 在线迁移,必须满足源Redis和目标Redis的网络相通、源Redis已放通SYNC和PSYNC命令这两个前提,否则,会迁移失败。 网络 检查源Redis、目标Redis、迁移任务所需虚拟机是否在同一个VPC,如果是同一个VPC,则检查安全组(Redis 3.0实例)或白名单(Redis 4.0/5.0实例)是否放通端口和IP,确保网络是连通的;如果不在同一个VPC,则需要建立VPC对等连接,打通网络。 源Redis和目标Redis必须允许迁移任务底层虚拟机访问。实例安全组或白名单配置,请参考配置安全组、配置白名单。 源Redis和目标Redis属于不同的云厂商,请参考云专线打通网络。 命令 默认情况下,一般云厂商都是禁用了SYNC和PSYNC命令,如果要放通,需要联系云厂商运维人员放通命令。 华为云内部进行迁移: 自建Redis迁移至DCS,默认没有禁用SYNC和PSYNC命令; 华为云DCS服务之间进行迁移,如果是同一账号相同Region进行在线迁移,在执行迁移时,会自动放通SYNC和PSYNC命令; 如果是不同Region或相同Region不同账号进行在线迁移,不会自动放通SYNC和PSYNC命令,无法使用在线迁移。推荐使用备份文件导入方式迁移。 其他云厂商迁移到华为云: 一般云厂商都是禁用了SYNC和PSYNC命令,如果使用在线迁移功能,需要联系源端的云厂商运维人员放通此命令,离线迁移,推荐使用备份文件导入方式。 错误信息包含“read error”,且为全量迁移过程中失败,数据量过大的情况下,建议开始迁移时不要选择“自动重连”模式,等到进入“增量迁移”后,再选择“自动重连”模式,且调大repl-timeout的时间值;同时建议调整源端output buffer参数,buffer参数的大小需要根据源端内存大小来定,比如源端24G的内存大小,可以调整为2G的buffer,命令: client-output-buffer-limit slave 2gb 2gb 600 。 错误信息中包含“write: connection reset by peer”,可能原因目标Redis内存规格太小导致内存写满,无法同步数据,建议扩大目标Redis实例规格,至少与源端实例规格持平。 错误信息中包含“read: connection reset by peer”,源Redis为主备,且迁移过程中,频繁发生主备倒换,请分析源Redis是否存在大Key,如果源Redis存在大key,建议将大key打散成多个小key后再迁移。也可强行关闭主备倒换,等数据迁移完毕后再开启主备倒换,命令:config set slave-priority 0。如果目标Redis为proxy集群,请排查pipeline阈值大小,建议调整proxy节点pipeline阈值为5W,命令: proxy.config set client-max-pipeline 50000。 提供错误信息,联系技术支持。
  • 如何迁移? SFS的文件系统需要挂载到弹性云服务器、容器或裸金属服务器上,对于SFS和OBS之间的数据迁移,可以理解为服务器与OBS或者容器与OBS之间的数据迁移,其中服务器或容器中的数据存放在所挂载的SFS文件系统中。 所以,SFS文件系统挂载到服务器或容器之后,便可以登录服务器或容器,利用OBS提供的各种工具、API或SDK进行数据迁移。例如,如果希望将SFS中的数据迁移到OBS中,则需要在服务器或容器中使用OBS的上传功能将数据上传至OBS;反之,使用OBS的下载功能即可将数据从OBS迁移到SFS(需要读写权限)。 OBS提供如表1所示的方式帮助用户迁移数据。请根据操作系统类型和实际情况选择合适的方式,并参考对应指导文档中的上传/下载相关章节完成数据迁移。 不同方式支持的操作系统、迁移数据量、操作简易程度存在差异,推荐您使用obsutil工具进行数据迁移。 为了节省您的开支,建议您配置内网DNS,通过华为云内网完成数据迁移。具体配置方法,请参见通过内网访问OBS。 表1 OBS提供的数据迁移工具 工具 支持的操作系统类型 (支持的具体版本参考对应方式的指导文档) 指导文档 管理控制台 Windows 控制台指南 OBS Browser+ Windows OBS Browser+工具指南 obsutil(推荐) Windows/Linux obsutil工具指南 SDK All SDK参考 API All API参考
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 backup_count Integer 备份总个数。请求失败时,字段为空。 backup_list Array of backup_list objects 当前Project ID下的所有图的备份列表。请求失败时,字段为空。 表5 backup_list 参数 参数类型 描述 id String 备份ID。 name String 备份名称。 backup_method String 备份方法,取值为auto,manual或者import。 graph_id String 备份关联的图ID。 graph_name String 备份关联的图Name。 graph_status String 备份关联的图状态。 graph_size_type_index String 备份关联的图规格。 data_store_version String 备份关联的图版本。 arch String 备份关联的图CPU架构。 status String 备份状态。 backing_up:备份中 success:备份成功 failed:备份失败 start_timestamp Long 备份开始时间戳。 start_time String 备份开始时间。 end_timestamp Long 备份结束时间戳。 end_time String 备份结束时间。 size Long 备份文件大小,单位为MB。 duration Long 备份时间,单位为秒。 encrypted Boolean 是否加密。true表示加密,默认值为"false",不加密。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误码。 error_msg String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误信息。
  • 响应示例 状态码: 200 成功响应示例 { "backup_count" : 2, "backup_list" : [ { "id" : "ada3e720-ab87-48cb-bff7-3ec5ae1a9652", "name" : "ges060803_nodelete-20210608135513", "backup_method" : "manual", "graph_id" : "4c5f882d-a813-4d78-a8e3-6d3212ddd121", "graph_name" : "ges060803_nodelete", "graph_status" : "200", "graph_size_type_index" : "1", "data_store_version" : "2.2.21", "arch" : "x86_64", "status" : "success", "start_timestamp" : 1623160513000, "start_time" : "2021-06-08T13:55:13", "end_timestamp" : 1623160568000, "end_time" : "2021-06-08T13:56:08", "size" : 1, "duration" : 54, "encrypted" : false }, { "id" : "7ed3f51d-816d-4651-9129-fe21b64b5c91", "name" : "ges060803_nodelete_20210609203323_auto", "backup_method" : "auto", "graph_id" : "4c5f882d-a813-4d78-a8e3-6d3212ddd121", "graph_name" : "ges060803_nodelete", "graph_status" : "200", "graph_size_type_index" : "1", "data_store_version" : "2.2.21", "arch" : "x86_64", "status" : "success", "start_timestamp" : 1623242004000, "start_time" : "2021-06-09T12:33:24", "end_timestamp" : 1623242004000, "end_time" : "2021-06-09T12:33:24", "size" : 1, "duration" : 0, "encrypted" : false } ] } 状态码: 400 失败响应示例 { "error_code" : "GES.7000", "error_msg" : "The graph does not exist or has been deleted." }
  • URI GET /v2/{project_id}/graphs/{graph_id}/backups 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法请参见获取项目ID。 graph_id 是 String 图ID。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每页资源数量的最大值,默认为10。 offset 否 Integer 本次请求的起始位置,默认为0。