恢复DWS表级粒度的快照
集群粒度的快照和Schema粒度的快照,可以指定恢复快照备份集中的单表或多表。恢复表快照支持以下方式:
- 恢复单表到原集群:可以指定快照备份集中的单表恢复到原集群。通常用户在业务操作中,对某个表中的数据进行了错误操作或者误删,需要对此表数据回滚到指定快照时,使用该功能。
- 恢复单表/多表到新集群:可以指定快照备份集中的单表/多表恢复到新集群。通常用户在业务操作中,对某个表中的数据进行了错误操作或者误删,需要对此表找回数据时使用该功能,找到最新包含该表数据的快照,将数据恢复到一个新集群中。在不破坏原集群表数据的同时,对比新老集群的数据,针对性恢复数据。
约束与限制
- 恢复单表/多表到新集群仅9.1.0及以上集群版本支持。
- 当备份设备为NFS时,仅支持恢复表级快照到原集群,不支持恢复到新集群。
- 集群状态和快照状态都为“可用”时,用户才可以进行表恢复。
- 不支持状态为“只读”的集群进行单表恢复。
- 暂不支持细粒度恢复绝对表空间或相对表空间下的表。
- 低版本的集群细粒度快照,可跨版本恢复到9.1.0集群版本的新集群中。
- 9.1.0版本集群细粒度快照,可恢复到9.1.0版本的异构新集群中,即新老集群在节点数和规格上都可以不一致。
- 仅支持细粒度的单表/多表快照恢复到新集群。
Schema粒度快照前提条件
用户需手动打开细粒度快照的开关:
- 在左侧导航栏中,单击“专属集群 > 管理 > 快照管理”(或在集群列表中,单击指定集群的名称,进入“集群详情”页面,在上侧导航栏切换至“快照”页签)。
- 进入“快照管理”页面,单击右上角的“创建快照”,也可在集群管理页面选择指定集群所在行操作列“更多 > 创建快照”。
- 在快照级别栏单击
,并单击“设置”。
- 在快照列表页面单击“细粒度快照开关”,打开或关闭细粒度快照。开启细粒度快照开关后,创建的自动或手动快照可用于进行表恢复。
恢复单表到原集群
- 登录DWS管理控制台。
- 在左侧导航栏中,选择“专属集群 >管理 > 快照管理”。
- 快照列表中,在指定快照所在行“操作”列,单击“恢复表”,进入恢复表页面。
- 在恢复表页面参见表1进行恢复操作。
表1 恢复单表参数说明 参数名称
参数描述
样例值
数据库名称
下拉框选择需要恢复的数据库。
- 集群粒度的快照需要选择指定的数据库。
- Schema粒度的快照此选项为备份时所选数据库。
gaussdb
Schema
勾选要恢复的表所在的Schema。
public
原始Table
下拉框选择要恢复的表的名称。
确保要恢复的原表在备份集中存在,否则会导致恢复操作失败。
-
目标Schema
下拉框选择恢复的新表所在的Schema。
系统会在原数据库中建立一个名为“原schema名_dws_backup”的Schema。
public_dws_backup
目标Table
下拉框选择恢复的新表的名称。
恢复的表名为“原表名+backupKey”组合(可选择原schema和原表名进行覆盖恢复),请确保此表名不存在,如果存在会drop恢复表名的表。
输入的表名长度不超过63个字符,以字母或下划线开头,中间字符可以是字母、数字、下划线,区分大小写。
-
图1 表级恢复 - 确认无误后,单击“立即恢复”按钮,集群开始对选择的表进行恢复。
恢复单表/多表到新集群
- 登录DWS管理控制台。
- 在左侧导航栏中,选择“专属集群 >管理 > 快照管理”(或在集群列表中,单击指定集群的名称,进入“集群详情”页面。在上侧导航栏切换至“快照”页签)。默认显示用户所有的快照。
- 在快照列表中,找到所需恢复的快照,在该快照所在行的“操作”列,单击“恢复”按钮。
- 恢复级别选择“表级”。
图2 表级恢复
- 选择恢复新集群的基本信息,详情请参见创建DWS存算一体集群。
- 选择节点规格和节点数量时,在支持细粒度异构恢复下,新建集群可以跟原集群规格和节点数不一致。
- 单表/多表恢复新集群,集群版本仅可选9.1.0及以上集群版本。
- 单表/多表选择。下拉框选择数据库名称,数据库配置选择“自定义”时,可以设置以下配置参数,如果选择“默认配置”,以下参数将使用它们的默认值,配置完成后勾选恢复表列表(可多选)。
恢复到新集群会新建数据库,如果新建的数据库与快照的数据库在配置上存在差异,可能会导致恢复失败。请在恢复之前确认原数据库的配置,如果跟默认配置不一致,可自定义修改。图3 数据库自定义配置
表2 数据库自定义参数 参数名称
参数描述
取值范围
默认值
模板名
即从哪个模板创建新数据库。GaussDB(DWS)采用从模板数据库复制的方式来创建新的数据库。初始时,GaussDB(DWS)包含两个模板数据库template0、template1,以及一个默认的用户数据库gaussdb。
已有数据库的名称、template0、template1
template0
字符编码
- 指定数据库使用的字符编码,可以是字符串(如“SQL_ASCII”)、整数编号。
- 不指定时,默认使用模板数据库的编码。模板数据库template0和template1的编码默认与操作系统环境相关。
- template1不允许指定字符编码,因此若要创建数据库时指定字符编码,请使用template0创建数据库。
- 如果需要指定encoding,需要和template参数搭配使用,且template取值为template0。
(常用取值)GBK、UTF8、Latin1、SQL_ASCII
SQL_ASCII
字符集
指定新数据库使用的字符集。例如,通过lc_collate = 'zh_CN.gbk'设定该参数。该参数的使用会影响到对字符串的排序顺序(如使用ORDER BY执行,以及在文本列上使用索引的顺序)。默认是使用模板数据库的排序顺序。
有效的排序类型
C
字符分类
指定新数据库使用的字符分类。例如,通过lc_ctype = 'zh_CN.gbk'设定该参数。该参数的使用会影响到字符的分类,如大写、小写和数字。默认是使用模板数据库的字符分类。
有效的字符分类
C
类型
指定兼容的数据库的类型。
ORA、TD、MySQL
ORA
- 单击“下一步:确认配置”。
- 确认无误后,单击“立即恢复”按钮,集群开始对选择的表进行恢复新集群。