最小的PostgreSQL数据文件集

问题描述 投票:2回答:1

背景:我运行依赖于PostgreSQL数据库的端到端测试。我需要这些测试快速,可并行化,确定性和隔离。

因此,我想尽快重复创建数据库 - 包括模式,数据和索引。我创建了一个基本图像:

  1. 启动PostgreSQL实例
  2. 运行SQL语句
  3. 运行VACCUM FULL
  4. 停止实例
  5. tar在/var/lib/postgresql/data中的文件

对于每个测试,我然后快速解压该图像并运行PostgreSQL实例。


问题:这一切都有效,但磁盘文件似乎比必要的大。一个相当小的数据库仍然是64MB大小。

如何为文件级还原实现较小的文件集?缩小现有文件的大小?从备份中排除一些文件?

postgresql automated-tests snapshot
1个回答
0
投票

感谢您说明您的用例:

我运行依赖于PostgreSQL数据库的端到端测试。我需要这些测试快速,可并行化,确定性和隔离。

因此,我想尽快重复创建数据库 - 包括模式,数据和索引。

最初的想法 - 通过路径定位特定的文件集并恢复它们 - 是脆弱的,因为路径可以并且确实随着不同的PostgreSQL版本而改变。

正如评论中所讨论的,更加确定的方法是使用更通用的容器技术;一个很好的被践踏和suitable for the use caseDocker。还有various other container options

Docker的文档有一个how to set up a container running PostgreSQL的例子。

© www.soinside.com 2019 - 2024. All rights reserved.