如何比较两个 Amazon RDS 快照?
How to compare two Amazon RDS snapshots?
我有每天拍摄一次的 Amazon RDS 快照。
我只想找到所做的更改(只需要增量)。有什么方法可以找到对快照所做的差异吗?
您只能使用 Amazon RDS 快照做两件事:
- 将其恢复到新的 Amazon RDS 数据库,或
- 将数据库(或选定的表)导出到 Amazon S3 中的 parquet 文件
参见:Announcing Amazon Relational Database Service (RDS) Snapshot Export to S3
"export to parquet" 选项将使您能够使用 Amazon Athena 查询文件。您可以编写一个 SQL 查询来执行一些奇特的 OUTER JOIN
命令来查找在一个导出中但不在另一个导出中的数据。
一个更简单的方法可能是在所需的数据库表上添加一个 modified_timestamp
字段,并使用 触发器在数据为 added/changed[= 时更新日期32=]。这意味着您可以随时 运行 对数据库进行查询,并且只需要查询特定时间以来带有 modified_timestamp
的行。 (此功能将根据您使用的数据库引擎而有所不同。我已经在 PostgreSQL 中完成了,但您需要检查 if/how 在其他数据库引擎中是否可行。)
我有每天拍摄一次的 Amazon RDS 快照。
我只想找到所做的更改(只需要增量)。有什么方法可以找到对快照所做的差异吗?
您只能使用 Amazon RDS 快照做两件事:
- 将其恢复到新的 Amazon RDS 数据库,或
- 将数据库(或选定的表)导出到 Amazon S3 中的 parquet 文件
参见:Announcing Amazon Relational Database Service (RDS) Snapshot Export to S3
"export to parquet" 选项将使您能够使用 Amazon Athena 查询文件。您可以编写一个 SQL 查询来执行一些奇特的 OUTER JOIN
命令来查找在一个导出中但不在另一个导出中的数据。
一个更简单的方法可能是在所需的数据库表上添加一个 modified_timestamp
字段,并使用 触发器在数据为 added/changed[= 时更新日期32=]。这意味着您可以随时 运行 对数据库进行查询,并且只需要查询特定时间以来带有 modified_timestamp
的行。 (此功能将根据您使用的数据库引擎而有所不同。我已经在 PostgreSQL 中完成了,但您需要检查 if/how 在其他数据库引擎中是否可行。)