我有一个在Ubunto 18.04上运行的postgres 10数据库。 转储备份太旧而无法使用。 硬件崩溃后,我设法保存了旧磁盘上的所有目录和文件,但是无法使用该磁盘。 在运行18.04的其他计算机上安装了新的postgres 10。 试图将文件复制到新的postgres环境-收到大量致命错误消息。 我究竟做错了什么?谢谢
答案 0 :(得分:0)
感谢您的回答。我找到了解决方案,然后我很乐意分享它:
如果您有数据库的[目录备份]并且想要恢复它。 更好的方法是使用Postgres Backup和Restore。此答案仅适用于没有良好PG备份或更新后的PG的人。
请确保您的计算机上已安装Postgres。如果该数据库被其他用户使用-请确保在测试无效的PG服务器上进行所有还原。
Postgres数据目录通常看起来像这样(Ubuntu 18.04 Postgres 10): Postgres 10 data directory structure
将用户切换到postgres(这不是必需的,但是使事情变得容易得多):
su postgres
确保Postgres已停止。
pg_ctl stop
移动当前目录进行备份。 $ PGDATA应该指向数据目录。 在我的安装中,它是“ / var / lib / postgresql / 10 / main /”。确保[target_dir]存在
cd $PGDATA
mv -r . [target_dir]
将备份目录复制到$ PGDATA
cp -r [directory backup] $PGDATA
更改权限(postgres不喜欢其他权限...)
chmod -R 0700 $PGDATA
检查是否没有文件或目录丢失...
启动postgres
pg_ctl start
祝你好运!