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 パラメータを使用して作成されたことを示します。BACKUP YES パラメータを使用して Amazon Redshift の既存のテーブルを変更することはできません。
3. テーブルがバックアップなしのテーブルとして作成された場合は、BACKUP NO パラメータを指定せずにテーブルを再作成します。
4. 不足しているテーブルのディープコピーを実行します。
関連情報
CREATE TABLE AS パラメータ
Amazon Redshift スナップショット