使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

为什么我的 Amazon Redshift 快照缺少一些表?

1 分钟阅读
0

我从 Amazon Redshift 集群恢复了一个快照,但该快照缺少一些表。如何备份缺少的表?

简短描述

如果创建表时将其指定为无备份表,则 Amazon Redshift 快照中不会包含这些表。验证是否由于创建表时使用了 BACKUP NO 参数而导致 Amazon Redshift 排除了您的表。然后,执行深层复制。

解决方法

要从 Amazon Redshift 快照备份缺少的表,请执行以下步骤:

1.    查看快照中缺少的表的数据定义语言 (DDL)。

2.    如果表的 DDL 不可用,请以超级用户身份运行以下查询:

SELECT DISTINCT Rtrim(n.nspname) AS schema_name,
                Rtrim(name)      AS table_name,
                backup
FROM   stv_tbl_perm t
       join pg_class c
         ON t.id = c.oid
       join pg_namespace n
         ON n.oid = c.relnamespace
ORDER  BY 1,2;

上述查询可识别已连接的数据库中未在快照中备份的表。它查询 STV_TBL_PERM,这是仅对超级用户账户可见的系统表。有关超级用户专属视图的更多信息,请参阅系统表及视图中的数据可见性

**注意:**备份列的值为 0 表示创建表时使用了 BACKUP NO 参数。您无法将 Amazon Redshift 中现有的表改为使用 BACKUP YES 参数。

3.    如果您的表已创建为无备份表,则不使用 BACKUP NO 参数重新创建表。

4.    为缺少的表执行深层复制


相关信息

CREATE TABLE AS 参数

Amazon Redshift 快照

AWS 官方
AWS 官方已更新 2 年前