将 60 天之前的 Postgres 表数据存档到 s3 并从表中删除

Abh*_*mar 7 postgresql

我在 AWS RDS 上有一个 postgresql 表。我们的表的大小已经增大,现在我们想在表上实施灾难恢复。我们希望将超过 60 天的数据推送到 S3 存储桶并从表中删除这些数据。

\n\n

我已经排除了

\n\n
    \n
  1. AWS数据管道,pg_dump,因为它转储整个数据库/表。

  2. \n
  3. 排除了分区,因为这意味着 AWS 上有更多空间 [意味着更多的托管费用]

  4. \n
\n\n

我正在考虑使用 psql 中的复制命令和 select 将数据提取到文件中并上传如下内容:

\n\n
psql -hmyhostname.us-east-1.rds.amazonaws.com \xe2\x80\x94dmydatabasename -UmyUserName -c "copy(SELECT * FROM event WHERE event.\xe2\x80\x9dcreatedAT\xe2\x80\x9d < NOW() - INTERVAL \xe2\x80\x9960 days\' LIMIT 1) to stdout" > /tmp/Oldder_data_than_60days.sql\n
Run Code Online (Sandbox Code Playgroud)\n\n

可能还有另一种方法可以通过复制表、删除新数据然后获取 pg_dump 来实现此目的。

\n\n

我不确定我应该使用什么方法或者是否有更好的方法?

\n\n

另外,一旦上传到 s3 完成,有效删除这百万条记录而不会对生产表造成性能问题的最佳方法是什么。

\n