对正在运行的数据库运行还原。怎么了?

时间:2019-02-09 11:05:53

标签: sql postgresql psql restore zcat

我跑步时会发生什么:

zcat /mnt/Postgres/restoreFile.gz | psql my_db

在工作数据库上执行ALTER TABLE和其他标准操作后,duplicated keys出现问题。当我停止它并尝试将其插入数据库时​​,由于duplicates keysequences导致出现constraints错误。似乎所有数据都在其中,但是序列如何。该数据库真正发生了什么?

1 个答案:

答案 0 :(得分:1)

普通的Postgres备份由表设计(如create table)和数据(如insert)语句组成。如果您运行两次,大多数设计语句将失败。只要数据定义允许重复行,insert语句就会成功。

因此,将数据库还原到生产服务器通常会导致在没有主键的表中有很多重复的行。备份后所做的某些设计更改(例如更改表的所有者)可能会被撤消。