恢复GaussDB库/表到指定时间点
操作场景
GaussDB支持使用已有的实例级自动备份,恢复库、表数据到指定时间点。
GaussDB支持使用已有的表级自动备份,恢复表数据到指定时间点。
GaussDB支持将备份恢复到新实例、当前实例和已有实例。
注意事项
- 恢复指定库或表仅支持V2.0-3.200及以上版本实例,暂不支持单副本实例。
- 节点扩容,版本升级,恢复自身期间,对应时间点无法恢复。
- 实例故障,发生CN剔除等场景无法产生归档日志,对应时间点无法恢复。
- 如果您要将数据库备份恢复到新实例:
- 数据库引擎、数据库大版本,与原实例相同,不可修改。
- 数据库密码需重新设置。
- 恢复到当前实例会在当前实例上新创库或表来恢复指定库或表的数据,恢复过程中源数据库可用,归档日志正常进行。
- 删除实例会默认删除所有归档日志,不支持选择保留。删除实例后,重建实例或恢复实例不支持恢复任意时间点。
- 库级恢复及同库同schema下的表级恢复不支持重名,如果待恢复的实例中有相同名称的库或表,会导致恢复失败,恢复时需要对库/表重命名。
- 在原实例中执行ALTER DATABASE SET TABLESPACE和ALTER TABLE SET TABLESPACE时,需要等到原实例触发一次差量备份或全量备份,才能正常进行表级数据恢复。
- 最多支持100个库或表恢复,超过阈值建议使用实例级恢复。
- 表级恢复不支持列存表、自定义类型表、同义词、临时表(包括全局)、unlogged表、私有用户的表、账本数据库。
- 表级恢复目前只支持恢复与表相关的堆数据、索引数据和自增列数据,与表相关联的其他如:外键信息、触发器、SQL限流规则等暂不支持恢复。
- 表级恢复后行级访问控制和动态脱敏信息会丢失。
- 库表级备份恢复不支持选择系统库(postgres,template0,template1,templatem,templatea,templatepdb)库及其下的表。
- 库表级备份恢复不支持选择系统SCHEMA(例如public)及其下的表。
- B兼容模式下带有on update timestamp列的表不支持物理表级恢复。
- 库表级备份恢复不支持选择M兼容库及其下的表。
- 单副本实例不支持库表级备份恢复。
- 基于快照备份的PITR不支持恢复库表。
- 实例若开启了透明加密,版本小于V2.0-8.200不支持库表级恢复。
- 如果打开并行恢复功能,那么恢复过程中,所有主、备副本会同时从存储服务器下载备份数据,与默认的串行恢复相比,存储服务器带宽消耗量增加到N倍(N等于每个分片的副本个数)。因此,为了防止OBS带宽达到上限导致恢复速度反而下降的情况,当待恢复集群的分片个数大于5个时,建议先咨询运维当前OBS服务器空闲带宽,然后再决定是否开启并行恢复功能。
- 集中式版实例只支持并行恢复。
- 数据库内核版本小于V2.0-1.4时,不支持开启并行恢复。
- 恢复已有实例为白名单特性,您可以在管理控制台右上角,选择新建工单,提交开通白名单的申请。
恢复库/表到指定时间点
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 在页面左上角单击
,选择 ,进入云数据库 GaussDB信息页面。
- 在“实例管理”页面,选择指定的实例,单击实例名称。
- 在左侧导航栏中选择“备份恢复”页签,选择实例级备份或表级备份。
- 选择实例级备份,单击“恢复到指定时间点”,选择恢复到库或表。
- 选择表级备份,单击“恢复到表级指定时间点”,恢复到指定表。
- 选择恢复到新实例,单击“确定”。
- 数据库大版本与原实例备份时的大版本相同。例如:V2.0-3.200.x的实例仅可以恢复到V2.0-3.200.y版本的实例。
- 存储空间大小默认和备份时实例磁盘空间相同,且必须大于或等于备份时实例存储空间大小。
- 数据库密码需重新设置。
- 恢复新实例需要和原实例的备份介质、CPU架构类型、操作系统类型和版本、实例类型(分布式版、集中式版)、部署形态、副本一致性协议、事务一致性保持一致。
- 存在M兼容库的情况下,新实例M兼容库表名大小写敏感参数需与原实例相同,默认大小写敏感。
- 新实例的规格默认和原实例相同,如果需要修改规格,新实例的规格必须大于或等于原实例的规格。
- 原实例的参数不会直接恢复到新实例上,恢复新实例页面选择目标参数模板,恢复完成后单击新实例名称,在“参数管理”页面手动修改参数值。
- 跳转到恢复到新实例的页面,设置新实例相关参数,选择恢复的数据后,单击“立即购买”,恢复库/表数据。
表1 基础配置 参数
描述
计费模式
云数据库GaussDB提供包年/包月、按需计费两种计费模式。
- 包年/包月是一种预付费模式,即先付费再使用,按照订单的购买周期进行结算,因此在购买之前,必须确保账户余额充足。
对于分布式混合部署形态的实例,包年/包月模式受限开放,如需使用,可以在管理控制台右上角,选择新建工单,提交开通申请。
- 按需计费是一种后付费模式,即先使用再付费,即开即停,按照云数据库实际使用时长计费。以自然小时为单位整点计费,不足一小时按实际使用时长计费。
区域
租户当前所在区域,也可在页面左上角切换。
不同区域内的产品内网不互通,且创建后不能更换,请谨慎选择。
表2 实例选配 参数
描述
实例名称
实例名称长度在4个到64个字符之间,必须以字母开头(区分大小写),可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。
产品类型
云数据库GaussDB提供基础版和企业版两种类型。
基础版不支持部分高级特性,相比企业版性能相当但价格更低,主要面向对高级特性无诉求的用户。
基础版和企业版的具体差异请参见GaussDB基础版和企业版的差异。
数据库引擎版本
选择购买实例的GaussDB数据库版本。
说明:- V2.0-8.102 及以上版本的实例使用Huawei Cloud EulerOS 操作系统。
- 基于Huawei Cloud EulerOS 操作系统的实例,无法与欧拉操作系统的实例搭建容灾关系。
实例类型
- 分布式版:分布式形态能够支撑较大的数据量,且提供横向扩展的能力,可以通过扩容的方式提高实例的数据容量和并发能力。
- 集中式版:适用于数据量较小,且长期来看数据不会大幅度增长,但是对数据的可靠性,以及业务的可用性有一定诉求的场景。
部署形态
- 分布式版
- 独立部署:将数据库组件部署在不同节点上。适用于可靠性、稳定性要求较高,实例规模较大的场景。
- 混合部署:将数据库多个组件部署在同一个节点上。仅V2.0-3.223及以上版本的基础版实例支持混合部署形态,混合部署不支持磁盘自动扩容。
- 集中式版
- 高可用(1主2备):采用一主两备三节点的部署模式,包含一个分片。
- 单副本:采用单节点的部署模式,仅包含一个CMS和一个DN组件。仅V2.0-2.2及以上版本实例支持单副本部署形态。由于部署在单台机器上,因此无法保障可用性(SLA),不适用于生产环境,建议用于研发测试环境。
- 1主1备1日志:采用一主一备一日志三节点的部署模式,包含一个分片,三个副本。仅V2.0-3.200及以上版本实例支持1主1备1日志部署形态。仅资源类型为“ECS”时可选。
注意:- 单副本:由于部署在单台机器上,因此无法保障可用性(SLA)。
是否支持日志节点
仅分布式版实例支持该参数。
勾选此参数后,分布式实例将会部署为一主一备一日志形态。集中式版实例默认已支持一主一备一日志形态,您可以在购买实例时,选择部署形态为“1主1备1日志”,无需额外设置该参数。
事务一致性
仅分布式版实例支持该参数。
- 强一致性:应用更新数据时,用户都能查询到全部已经成功提交的数据,对性能有影响。
- 最终一致性:应用更新数据时,不同用户查询到的数据可能不相同,有可能是更新后的值,也有可能是更新前的值,但经过一段时间后,查询到的数据均是更新后的值,该类型通常具有较高的性能。注意,不支持分布式事务强一致性读,不支持insert into select * from等依赖于查询结果的事务一致性,不支持拆分成多语句的写操作,不支持涉及多个节点执行的写操作,不支持搭建容灾。
切换策略
仅分布式版独立部署实例支持该参数。
该参数受限开放,如需使用您可以在管理控制台右上角,选择新建工单,提交申请。默认选择为数据高可靠,实例购买后如需修改切换策略,请参考修改切换策略。
- 数据高可靠:对数据一致性要求高的系统推荐选择数据高可靠,在故障切换的时候优先保障数据一致性。
- 业务高可用:对业务在线时间要求高的系统推荐使用业务高可用,在故障切换的时候优先保证数据库可用性。
在业务高可用场景下需要谨慎修改如下数据库参数,参数如何修改,可参见修改实例参数:
- recovery_time_target:修改该参数会导致实例频繁进行强制切换,请在技术人员指导下进行修改。
- audit_system_object:修改该参数会导致丢失DDL审计日志,请在技术人员指导下进行修改。
副本集数量
仅分布式版实例支持该参数。
每个分片下数据节点DN的数量,包括主DN和备DN。每个分片下3副本的部署方案,3副本就是1主2备的部署方式。
分片数量
仅分布式版实例可选。一个分片指的是一组DN副本集,分片内的DN数量与“副本集数量”参数有关,例如副本集数量为3,则一个分片就包含一主两备三个DN节点。可选1~128。
实例购买后可扩容至256,如何扩容请参见分片数量扩容。
协调节点数量
仅分布式版实例可选。数据库中包含的协调节点(CN,Coordinator Node)数量。可选1~128,实例购买后可扩容至256,如何扩容请参见协调节点数量扩容。
建议CN节点数量应不少于2。当CN节点数量为1时,业务高可靠性较低,只能用于测试,不能用于生产环境。
协调节点的作用:
- 负责接收来自应用的访问请求,并向客户端返回执行结果。
- 负责分解任务,并调度在各分片上并行执行。
可用区
可用区指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。可用区只支持部署在一个或者三个可用区。建议选择三个可用区。
支持在智能边缘云IEC场景中部署GaussDB实例,需要选择IEC专属本地可用区,如需使用可以在管理控制台右上角,选择新建工单,联系华为工程师咨询。
表3 资源选配 参数
描述
性能规格
实例的CPU和内存。不同性能规格对应不同连接数。
关于性能规格详情,请参见数据库实例规格。
存储类型
实例的存储类型决定实例的读写速度。最大吞吐量越高,读写速度越快。
GaussDB支持“超高IO”和“极速型SSD”存储类型。- 超高IO:超高性能云硬盘,可用于企业关键性业务,适合高吞吐、低时延的工作负载。
- 极速型SSD:适用于需要超大带宽和超低时延的场景。
说明:极速型SSD存储类型仅针对特定用户开放,如需配置白名单权限,您可以在管理控制台右上角,选择“新建工单”,提交开通白名单的申请。
存储空间
申请的存储空间会有必要的文件系统开销,这些开销包括索引节点和保留块,以及数据库运行必需的空间。
创建实例时,磁盘空间支持单分片起配值为40GB,步长为4GB。若实例所选的磁盘空间较小,当业务流量较大时,磁盘空间容易占满,实例状态变为只读,请评估好业务流量选择合适的磁盘空间。
实例购买成功后可进行扩容,具体请参见磁盘扩容。
赠送备份空间
免费赠送存储空间等量的备份空间,超出免费备份空间部分采用按需计费方式。
磁盘加密
说明:- 创建按需计费的磁盘加密实例,需要确保用户具有如下权限:
- 创建包周期实例开启磁盘加密功能时,若首次使用RAM共享的KMS密钥,需要根据页面提示,创建委托。
- 使用RAM共享的KMS秘钥创建实例时,还需要为用户配置如下权限:
- iam:agencies:listAgencies
- iam:agencies:createAgency
- iam:roles:listRoles
- iam:permissions:listRolesForAgency
- iam:permissions:grantRoleToAgency
- kms:cmk:createGrant
如果使用共享KMS密钥,对应的CTS事件为createGrant,仅密钥所有者能够感知到该事件。
透明加密
表4 网络配置 参数
描述
虚拟私有云
GaussDB实例所在的虚拟专用网络,可以对不同业务进行网络隔离。需要创建或选择所需的虚拟私有云。如果没有可选的虚拟私有云,GaussDB默认为用户分配资源。
GaussDB实例创建完成后不支持切换虚拟私有云,请谨慎选择所属虚拟私有云。
如何创建虚拟私有云,请参见创建虚拟私有云基本信息及默认子网。
您还可以通过共享VPC功能,使用其他账号共享的VPC和子网。
共享VPC是基于资源访问管理(Resource Access Manager,简称RAM)服务的机制,VPC的所有者可以将VPC内的子网共享给其他账号使用,以实现网络资源的共享和统一管理,提升资源管控效率、降低运维成本。
有关VPC子网共享的更多信息,请参见《虚拟私有云用户指南》的“共享VPC”相关内容。
子网
通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性。子网在可用区内才会有效,创建GaussDB实例的子网默认开启DHCP功能,不可关闭。创建实例时GaussDB支持自动分配IP的方式。
如果可用区使用智能边缘云IEC场景中的本地可用区,需要创建对应可用区的子网,配套使用。
说明:- 默认子网支持的IP数为256,分布式实例最大规模需要IP数为1286,推荐选用2048规模的子网。
安全组
控制网络出/入方向及端口的访问。购买实例时,所选的安全组需要按照如下策略进行配置。
- 购买分布式版实例时,请确保入方向规则TCP协议端口包含:40000-60480,20050,5000-5001,2379-2380,6000,6001,6500,<database port> - (<database port> + 100)。(例如设置的数据库端口为8000,则安全组中需要包含8000-8100),安全组出方向请确保全部放通。
- 购买集中式实例时,请确保入方向规则TCP协议端口包含:20050,5000-5001,2379-2380,6000,6500,<database port> - (<database port> + 100)。(例如设置的数据库端口为8000,则安全组中需要包含8000-8100)。
安全组限制实例的安全访问规则,加强GaussDB与其他服务间的安全访问。请确保所选取的安全组允许客户端访问数据库实例。如果创建时不需要指定安全组,您可以在管理控制台右上角,选择“新建工单”,提交开通白名单的申请。
如果没有可选的安全组,GaussDB默认为您分配安全组资源。
数据库端口
数据库对外开放的端口,默认为8000,可选范围为:1024~39989。如下端口被系统占用,不可设置: 2378~2380、2400、4999~5001、5100、5500、5999~6001、6009~6010、6500、8015、8097、8098、8181、9090、9100、9180、9187、9200、12016、12017、20049、20050、21731、21732、32122~32126、39001。
单内网地址策略
是否开启单内网地址策略,如果开启,实例将只有一个内网地址绑定主节点,如果发生主备倒换,内网地址不会发生变化;如果不开启,每个节点都会绑定一个内网地址,如果发生主备倒换,内网地址会发生变化。
单内网地址约束限制如下:
- 仅支持V2.0-3.207及以上的集中式版实例。
- 仅创建时支持修改,创建后不支持切换单内网地址策略。
表5 实例管理 参数
描述
管理员账户名
数据库的登录名称,默认为root。
管理员密码
需要输入高强度密码并定期修改,以提高安全性,防止出现密码被暴力破解等安全风险。
设置的密码需满足以下几个条件:
- 8~32个字符。
- 至少包含大写字母(A-Z),小写字母(a-z),数字(0-9),非字母数字字符(限定为~!@#%^*-_=+?,)四类字符中的三类字符。
管理员密码不支持找回,请妥善保管密码。
实例创建成功后,如需重置密码,请参见重置管理员密码。
确认密码
必须和管理员密码相同。
表6 更多配置 参数
描述
参数模板
数据库参数模板就像是数据库引擎配置值的容器,参数模板中的参数可应用于一个或多个相同类型的数据库实例。实例创建成功后,参数模板可进行修改。
用户可以在实例创建完成之后根据业务需要进行调整。具体请参见编辑参数模板。
企业项目
对于已成功关联企业项目的用户,仅需在“企业项目”下拉框中选择目标项目。
如果需要自定义企业项目,请前往企业项目管理服务进行创建。关于如何创建项目,详见《企业项目管理用户指南》。
M兼容表名大小写
在M-Compatibility模式的数据库中,控制查询用户表名(含表别名)、用户视图名、Schema名(即内部库名)以及information_schema系统视图中上述对象对应字段值的大小写敏感性。
须知:- M兼容表名大小写仅支持在创建时配置,创建后无法修改。默认值:区分大小写。
- 目标实例与原实例参数不一致,可能会导致以下操作失败:容灾搭建、备份恢复、导入导出、逻辑解码。
- 仅支持V2.0-8.203及以上版本的集中式版实例。
时区
由于世界各国家与地区经度不同,地方时也有所不同,因此会划分为不同的时区。时区可在购买实例时选择。
标签
可选配置,对数据库的标识。使用标签可以方便识别和管理用户拥有的数据库服务资源。每个实例最多支持20个标签配额。
如用户的组织已经设定GaussDB的相关标签策略,则需按照标签策略规则为实例添加标签。标签如果不符合标签策略的规则,则可能会导致实例创建失败,请联系组织管理员了解标签策略详情。
- 包年/包月是一种预付费模式,即先付费再使用,按照订单的购买周期进行结算,因此在购买之前,必须确保账户余额充足。
- 查看恢复结果。
为用户重新创建一个和该备份数据相同的实例。可看到实例由“创建中”变为“正常”,说明恢复成功。
恢复成功的新实例是一个独立的实例,与原有实例没有关联。
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 在页面左上角单击
,选择 ,进入云数据库 GaussDB信息页面。
- 在“实例管理”页面,选择指定的实例,单击实例名称。
- 在左侧导航栏中选择“备份恢复”页签,选择实例级备份或表级备份。
- 选择实例级备份,单击“恢复到指定时间点”,选择恢复到库或表。
- 选择表级备份,单击“恢复到表级指定时间点”,恢复到指定表。
- 选择恢复到当前实例,勾选确认信息,单击“下一步”。
- 恢复时的实例要与备份时实例版本号和节点配置相同。
- 选择该选项时,会在当前实例上创建新的库或表数据,恢复过程中源数据库可用。
- 库级(database,例如db1)恢复到当前实例后,需要等待数据库自动执行一次全量备份或差量备份,等待的时间与备份策略有关,后续其他恢复流程才能恢复出db1的实际数据。如果恢复实例到指定时间点时选择的时间点是本次库级恢复完成后至下次备份前的某个时间点,会导致db1无法恢复。
- 建议先进行手动备份后再进行恢复操作。
- 在跳转页面中,选择恢复的数据,单击“提交”。
- 查看恢复结果。
在“实例管理”页面,可查看目标实例状态为“恢复中”,恢复完成后,实例状态由“恢复中”变为“正常”。
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 在页面左上角单击
,选择 ,进入云数据库 GaussDB信息页面。
- 在“实例管理”页面,选择指定的实例,单击实例名称。
- 在左侧导航栏中选择“备份恢复”页签,选择实例级备份或表级备份。
- 选择实例级备份,单击“恢复到指定时间点”,选择恢复到库或表。
- 选择表级备份,单击“恢复到表级指定时间点”,恢复到指定表。
- 选择恢复到已有实例,勾选确认信息,选择恢复到的目标实例,单击“下一步”。
- 选择该选项时,会在目标实例上新创库、表,恢复过程中数据库可以正常使用。
- 建议先对目标实例进行手动备份后再进行恢复操作。
- 目标实例需要具有与原实例备份时相同的引擎类型、引擎版本、操作系统、资源类型、实例拓扑、CPU架构、事务一致性(分布式版)、副本一致性(集中式版)、M兼容表名大小写(集中式版)。
- 目标实例的存储空间需要大于等于原实例备份时的存储空间大小(分布式独立部署实例分片存储空间大小不一致情况下:原实例存储空间大小=最大分片级存储空间大小*分片数,目标实例存储空间大小=最小分片级存储空间大小*分片数)。
- 目标实例的性能规格需要大于等于原实例备份时的性能规格。
- 目标实例不能包含只读节点。
- 正在执行全量备份或差量备份的目标实例,不支持恢复。如果不需要本次备份,可以停止备份后再执行恢复。
- 存在M兼容库的情况下,新实例M兼容库表名大小写敏感参数需与原实例相同,默认大小写敏感。
- 在跳转页面中选择恢复的数据,单击“提交”。
- 查看恢复结果。
在“实例管理”页面,可查看目标实例状态为“恢复中”,恢复完成后,实例状态由“恢复中”变为“正常”。恢复完成后系统会自动进行一次实例级全量备份。