从快照中还原表 - Amazon Redshift

从快照中还原表

您可以从快照还原单个表而不是还原整个集群。在从快照还原单个表时,您需要指定源快照、数据库、架构和表名,以及目标数据库、架构和已还原表的新表名。

新表名不能是现有表的名称。要将现有表替换为从快照还原的表,请先重命名或删除现有表,然后再从快照还原表。

使用源表的列定义、表属性和列属性(外键除外)创建目标表。为了防止因依赖项而导致发生冲突,目标表不从源表继承外键。不向目标表应用任何依赖项(例如,源表上的视图或授予的权限)。

如果源表的拥有者存在,那么该数据库用户是已还原的表的拥有者,前提是该用户拥有足够的权限,可成为指定的数据库和模式中关系的拥有者。否则,已还原的表由在启动集群时创建的管理员用户所有。

已还原的表将返回在执行备份时其所处的状态。这包括由 Amazon Redshift 对可序列化隔离的符合性定义的事务可见性规则,这意味着数据将立即对在备份后启动的进行中事务可见。

从快照还原表受以下限制:

  • 您只能将表还原到当前正在运行的活动集群,并且只能从针对该集群制作的快照还原表。

  • 一次只能还原一个表。

  • 无法从在调整集群大小之前拍摄的集群快照还原表。一个例外是,如果节点类型没有更改,则可以在弹性大小调整后还原表。

  • 不向目标表应用任何依赖项(例如,源表上的视图或授予的权限)。

  • 如果为正在还原的表启用行级安全性,Amazon Redshift 将还原已启用行级安全性的表。

从快照还原表
  1. 登录 AWS Management Console,然后通过以下网址打开 Amazon Redshift 控制台:https://console.aws.amazon.com/redshiftv2/

  2. 在导航菜单上,选择集群,然后选择还原表要使用的集群。

  3. 对于操作,请选择还原表以便显示还原表页面。

  4. 输入要使用的快照、源表和目标表的相关信息,然后选择还原表

例 示例:使用 AWS CLI 从快照中还原表

以下示例使用 restore-table-from-cluster-snapshot AWS CLI 命令从 my-source-table 上的 sample-database 架构中还原 my-snapshot-id 表。您可以使用 AWS CLI 命令 describe-table-restore-status 查看还原操作的状态。此示例将快照还原到具有新表名 mycluster-examplemy-new-table 集群。

aws redshift restore-table-from-cluster-snapshot --cluster-identifier mycluster-example --new-table-name my-new-table --snapshot-identifier my-snapshot-id --source-database-name sample-database --source-table-name my-source-table