所以,我(嗯......我是)在一个容器中运行 PostgreSQL(Ubuntu 14.04LTS 以及所有最近的更新,后端存储是“dir”,因为有说服力)。
长话短说,容器文件夹被删除了。在使用 extundelete 和 ext4magic 之后,我设法提取了一些数据库物理文件(看起来好像大多数文件都在那里......但不是 100% 确定是否以及丢失了什么)。
我有两个数据库文件的副本。一个来自 9.5.3(看起来更完整)和一个来自 9.6(我最近将容器升级到 9.6,但它似乎缺少数据文件)。
我所追求的只是尝试并提取与用户定义的函数相关的 SQL 代码。有人知道我可以尝试的方法吗?
PS:上次备份有点过时(实际上是由于不良做法),所以如果提取所需信息的任务是“合理的”和“成功的”,那将是最后的手段。
问候, G
更新 - 20/4/2017 我希望通过某种方式从恢复的数据文件中提取函数正文文本来“快速修复”......但是,这辈子没有什么是免费的 :)
从旧的备份和恢复的日志开始,我们设法覆盖了很多基础,使数据库恢复生机。
经验教训:
1.实施良好的备份/恢复策略
2.不要将备份存储在同一台物理机器上
3. 硬件故障可能具有破坏性......人为错误可能是灾难性的!