恢复GaussDB库/表到指定时间点
操作场景
GaussDB支持使用已有的实例级自动备份,恢复库、表数据到指定时间点。
GaussDB支持使用已有的表级自动备份,恢复表数据到指定时间点。
GaussDB支持将备份恢复到新实例、当前实例和已有实例。
注意事项
- 恢复指定库或表仅支持V2.0-3.200及以上版本实例,暂不支持单副本实例。
- 节点扩容,版本升级,恢复自身期间,对应时间点无法恢复。
- 实例故障,发生CN剔除等场景无法产生归档日志,对应时间点无法恢复。
- 如果您要将数据库备份恢复到新实例:
- 数据库引擎、数据库大版本,与原实例相同,不可修改。
- 数据库密码需重新设置。
- 恢复到当前实例会在当前实例上新创库或表来恢复指定库或表的数据,恢复过程中源数据库可用,归档日志正常进行。
- 删除实例会默认删除所有归档日志,不支持选择保留。删除实例后,重建实例或恢复实例不支持恢复任意时间点。
- 库级恢复及同库同schema下的表级恢复不支持重名,如果待恢复的实例中有相同名称的库或表,会导致恢复失败,恢复时需要对库/表重命名。
- 在原实例中执行ALTER DATABASE SET TABLESPACE和ALTER TABLE SET TABLESPACE时,需要等到原实例触发一次差量备份或全量备份,才能正常进行表级数据恢复。
- 最多支持100个库或表恢复,超过阈值建议使用实例级恢复。
- 库级恢复时,unlogged表和临时表(包括全局)仅恢复表结构,不恢复表数据。
- 表级恢复不支持段页式表、列存表、包含自定义类型表、同义词、临时表(包括全局)、密态表、透明加密表、unlogged表、压缩表、私有用户的表、账本数据库。
- 表级恢复目前只支持恢复与表相关的堆数据、索引数据和自增列数据,与表相关联的其他如:外键信息、触发器、SQL限流规则等暂不支持恢复。
- 表级恢复后行级访问控制和动态脱敏信息会丢失。
- 库表级备份恢复不支持选择系统库(postgres,template0,template1,templatem,templatea,templatepdb)库及其下的表。
- 实例级备份恢复到指定时间点支持选择系统SCHEMA(例如public)及其下的表,而表级备份恢复到指定时间点不支持选择系统SCHEMA(例如public)及其下的表。
- B兼容模式下带有on update timestamp列的表不支持物理表级恢复。
- 库表级备份恢复不支持选择M兼容库及其下的表。
- 单副本实例不支持库表级备份恢复。
- 基于快照备份的PITR不支持恢复库表。
- 实例若开启了透明加密,版本小于V2.0-8.200不支持库表级恢复。
- 节点扩容时,数据重分布期间产生的备份不支持细粒度恢复。
- 全量备份恢复到库表时,可以选择的库表有一定延迟,请先评估恢复的时间点表信息是否存在。
- 库表级恢复时,会在实例上创建与源库表结构相同但名称不同的库或表。实例磁盘剩余空间需大于要恢复出来的库表的大小。
- 恢复已有实例为白名单特性,您可以在管理控制台右上角,选择新建工单,提交开通白名单的申请。
恢复库/表到指定时间点
- 登录云数据库GaussDB控制台。
- 在“实例管理”页面,选择指定的实例,单击实例名称。
- 在左侧导航栏中选择“备份恢复”页签,选择实例级备份或表级备份。
- 选择实例级备份,单击“恢复到指定时间点”,选择恢复到库或表。
- 选择表级备份,单击“恢复到表级指定时间点”,恢复到指定表。
- 选择恢复到新实例,单击“确定”。
- 数据库大版本与原实例备份时的大版本相同。例如:V2.0-9.0.0之前版本,V2.0-1.4.x的实例仅支持恢复到V2.0-1.4.y版本的实例。V2.0-9.0.0及之后版本(正式版本为V2.0-9.0.0.SPCXXXX、热补丁版本为V2.0-9.0.0.HPXXXX、冷补丁为V2.0-9.0.0.SPHXXXX),仅当SPC、HP或SPH后的前两位数字一致时,支持互相恢复。
- 存储空间大小默认和备份时实例磁盘空间相同,且必须大于或等于备份时实例存储空间大小。
- 数据库密码需重新设置。
- 恢复新实例需要和原实例的备份介质、CPU架构类型、操作系统类型和版本、实例类型(分布式版、集中式版)、部署形态、副本一致性协议、事务一致性保持一致。
- 存在M兼容库的情况下,新实例M兼容库表名大小写敏感参数需与原实例相同,默认大小写敏感。
- 新实例的规格默认和原实例相同,如果需要修改规格,新实例的规格必须大于或等于原实例的规格。
- 原实例的参数不会直接恢复到新实例上,恢复新实例页面选择目标参数模板,恢复完成后单击新实例名称,在“参数管理”页面手动修改参数值。
- 跳转到恢复到新实例的页面,设置新实例相关参数,选择恢复的数据后,单击“立即购买”,恢复库/表数据。
表1 实例管理 参数
参数说明
实例名称
实例名称长度在4个到64个字符之间,必须以字母开头(区分大小写),可以包含字母、数字、中划线、下划线和中文,不能包含其他特殊字符。
单击“随机生成”可生成随机实例名称。
设置密码
支持创建后设置和现在设置两种方式。
- 若选择创建后设置,您在使用root账号登录数据库前,需要先通过重置密码的方式设置密码,否则无法使用root账号登录数据库。重置密码操作请参考重置GaussDB实例管理员密码。
- 若选择现在设置,请填写管理员密码及确认密码。
管理员账户名
数据库的登录名称,默认为root。
管理员密码
设置密码选择现在设置时,需要填写该参数。需要输入高强度密码并定期修改,以提高安全性,防止出现密码被暴力破解等安全风险。
确认密码
设置密码选择现在设置时,需要填写该参数。必须和管理员密码相同。
- 查看恢复结果。
为用户重新创建一个和该备份数据相同的实例。可看到实例由“创建中”变为“正常”,说明恢复成功。
恢复成功的新实例是一个独立的实例,与原有实例没有关联。
- 登录云数据库GaussDB控制台。
- 在“实例管理”页面,选择指定的实例,单击实例名称。
- 在左侧导航栏中选择“备份恢复”页签,选择实例级备份或表级备份。
- 选择实例级备份,单击“恢复到指定时间点”,选择恢复到库或表。
- 选择表级备份,单击“恢复到表级指定时间点”,恢复到指定表。
- 选择恢复到当前实例,勾选确认信息,单击“下一步”。
- 恢复时的实例要与备份时实例版本号和节点配置相同。
- 选择该选项时,会在当前实例上创建新的库或表数据,恢复过程中源数据库可用。
- 库级(database,例如db1)恢复到当前实例后,需要等待数据库自动执行一次全量备份或差量备份,等待的时间与备份策略有关,后续其他恢复流程才能恢复出db1的实际数据。如果恢复实例到指定时间点时选择的时间点是本次库级恢复完成后至下次备份前的某个时间点,会导致db1无法恢复。
- 建议先进行手动备份后再进行恢复操作。
- 如当前实例正在执行全量备份或差量备份,不支持恢复。如果不需要本次备份,可以停止备份后再执行恢复。
- 在跳转页面中,选择恢复的数据,单击“提交”。
- 查看恢复结果。
在“实例管理”页面,可查看目标实例状态为“恢复中”,恢复完成后,实例状态由“恢复中”变为“正常”。
- 登录云数据库GaussDB控制台。
- 在“实例管理”页面,选择指定的实例,单击实例名称。
- 在左侧导航栏中选择“备份恢复”页签,选择实例级备份或表级备份。
- 选择实例级备份,单击“恢复到指定时间点”,选择恢复到库或表。
- 选择表级备份,单击“恢复到表级指定时间点”,恢复到指定表。
- 选择恢复到已有实例,勾选确认信息,选择恢复到的目标实例,单击“下一步”。
- 选择该选项时,会在目标实例上新创库、表,恢复过程中数据库可以正常使用。
- 建议先对目标实例进行手动备份后再进行恢复操作。
- 目标实例需要具有与原实例备份时相同的引擎类型、引擎版本、操作系统、资源类型、实例拓扑、CPU架构、事务一致性(分布式版)、副本一致性(集中式版)、M兼容表名大小写(集中式版)。
- 目标实例的存储空间需要大于等于原实例备份时的存储空间大小(分布式独立部署实例分片存储空间大小不一致情况下:原实例存储空间大小=最大分片级存储空间大小*分片数,目标实例存储空间大小=最小分片级存储空间大小*分片数)。
- 目标实例的性能规格需要大于等于原实例备份时的性能规格。
- 目标实例不能包含只读节点。
- 正在执行全量备份或差量备份的目标实例,不支持恢复。如果不需要本次备份,可以停止备份后再执行恢复。
- 存在M兼容库的情况下,新实例M兼容库表名大小写敏感参数需与原实例相同,默认大小写敏感。
- 在跳转页面中选择恢复的数据,单击“提交”。
- 查看恢复结果。
在“实例管理”页面,可查看目标实例状态为“恢复中”,恢复完成后,实例状态由“恢复中”变为“正常”。恢复完成后系统会自动进行一次实例级全量备份。