# 恢复DWS表级粒度的快照
集群粒度的快照和Schema、Table粒度的快照，可以指定恢复快照备份集中的单表或多表。恢复表快照支持以下方式：
- [恢复单表到原集群]：可以指定快照备份集中的单表恢复到原集群。通常用户在业务操作中，对某个表中的数据进行了错误操作或者误删，需要对此表数据回滚到指定快照时，使用该功能。
- [恢复单表/多表到新集群]：可以指定快照备份集中的单表/多表恢复到新集群。通常用户在业务操作中，对某个表中的数据进行了错误操作或者误删，需要对此表找回数据时使用该功能，找到最新包含该表数据的快照，将数据恢复到一个新集群中。在不破坏原集群表数据的同时，对比新老集群的数据，针对性恢复数据。
#### 约束与限制
- 恢复单表/多表到新集群仅9.1.0及以上集群版本支持。
- 当备份设备为NFS时，仅支持恢复表级快照到原集群，不支持恢复到新集群。
- 集群状态和快照状态都为"可用"时，用户才可以进行表恢复。
- 不支持状态为"只读"的集群进行单表恢复。
- 暂不支持细粒度恢复绝对表空间或相对表空间下的表。

- 低版本的集群细粒度快照，可跨版本恢复到9.1.0集群版本的新集群中。
- 9.1.0版本集群细粒度快照，可恢复到9.1.0版本的异构新集群中，即新老集群在节点数和规格上都可以不一致。
- 仅支持细粒度的单表/多表快照恢复到新集群。
- 暂不支持恢复表的注释（COMMENT）和权限。
 
#### Schema和Table粒度快照前提条件
用户需手动打开细粒度快照的开关：
1. 在左侧导航栏中，单击**"集群 \> 管理 \> 快照管理"** （或在集群列表中，单击指定集群的名称，进入**"集群详情"** 页面，在上侧导航栏切换至**"快照"**页签）。
2. 进入"快照管理"页面，单击右上角的**"创建快照"** ，也可在集群管理页面选择指定集群所在行操作列**"更多 \> 创建快照"**。
3. 在快照级别栏单击![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617505387.png "点击放大")，并单击**"设置"** 。
   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617505395.png "点击放大")
   
   
4. 在快照列表页面单击**"细粒度快照开关"** ，打开或关闭细粒度快照。开启细粒度快照开关后，创建的自动或手动快照可用于进行表恢复。
   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587065806.png "点击放大")
   
   
 
 #### 恢复单表到原集群
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏中，选择**"集群 \> 管理 \> 快照管理"**。
3. 快照列表中，在指定快照所在行**"操作"** 列，单击**"恢复表"**，进入恢复表页面。
4. 在恢复表页面参见[表1]进行恢复操作。
   
    表1恢复单表参数说明 
   | 参数名称       | 参数描述                                                                                                                                                                                                                                                                                                                 | 样例值                |
   |:---|:---|:---|
   | 数据库名称     | 下拉框选择需要恢复的数据库。 - 集群粒度的快照需要选择指定的数据库。  - Schema和Table粒度的快照此选项为备份时所选数据库。   | gaussdb         |
   | Schema | 勾选要恢复的表所在的Schema。                                                                                                                                                                                                                                                                                                      | public           |
   | 原始Table   | 下拉框选择要恢复的表的名称。 确保要恢复的原表在备份集中存在，否则会导致恢复操作失败。                                                                                                                                                                                                                            | -                 |
   | 目标Schema | 下拉框选择恢复的新表所在的Schema。 系统会在原数据库中建立一个名为**"原schema名_dws_backup"**的Schema。                                                                                                                                                                                                  | public_dws_backup |
   | 目标Table  | 下拉框选择恢复的新表的名称。 恢复的表名为**"原表名+backupKey"**组合（可选择原schema和原表名进行覆盖恢复），请确保此表名不存在，如果存在会drop恢复表名的表。 输入的表名长度不超过63个字符，以字母或下划线开头，中间字符可以是字母、数字、下划线，区分大小写。                                                                        | -                |
      
   图1表级恢复   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587225768.png "点击放大")
   
   
   
5. 确认无误后，单击**"立即恢复"**，集群开始对选择的表进行恢复。
 
 #### 恢复单表/多表到新集群
1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
2. 在左侧导航栏中，选择**"集群 \> 管理 \> 快照管理"** （或在集群列表中，单击指定集群的名称，进入**"集群详情"** 页面。在上侧导航栏切换至**"快照"**页签）。默认显示用户所有的快照。
3. 在快照列表中，找到所需恢复的快照，在该快照所在行的**"操作"** 列，单击**"恢复"**。
4. **"恢复级别"** 选择**"表级"。**
   
   图2表级恢复   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617625547.png "点击放大")
   
   
   
5. 选择恢复新集群的基本信息，详情请参见[创建DWS存算一体集群](https://support.huaweicloud.com/mgtg-dws/dws_01_0019.html)。
   
   - 选择节点规格和节点数量时，在支持细粒度异构恢复下，新建集群可以跟原集群规格和节点数不一致。
   
   - 单表/多表恢复新集群，集群版本仅可选9.1.0及以上集群版本。
   
   
   
   
6. 单表/多表选择。下拉框选择**数据库名称** ，数据库配置选择**"自定义"** 时，可以设置以下配置参数，如果选择**"默认配置"** ，以下参数将使用它们的默认值，配置完成后勾选**恢复表列表** （可多选）。
   
   恢复到新集群会新建数据库，如果新建的数据库与快照的数据库在配置上存在差异，可能会导致恢复失败。请在恢复之前确认原数据库的配置，如果跟默认配置不一致，可自定义修改。
   图3数据库自定义配置   
   ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617505449.png "点击放大")
   
   表2数据库自定义参数 
   | 参数名称 | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 取值范围                                | 默认值         |
   |:---|:---|:---|:---|
   | 模板名    | 即从哪个模板创建新数据库。DWS采用从模板数据库复制的方式来创建新的数据库。初始时，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       |
      
   
   
7. 单击**"下一步：确认配置"**。
8. 确认无误后，单击**"立即创建"**，集群开始对选择的表进行恢复到新集群。
 
