从文件系统备份中恢复PostgreSQL数据库
我有一个PostgreSQL 8.3数据目录备份.我需要将此备份中的数据库复制到新的PostgreSQL实例中.由于旧服务器的问题,我不能做数据库的pg_dump.
我已经找出了有问题的数据库的目录.例如,在MySQL中,您通常会关闭服务器,复制目录并重新启动它,数据库将可用.现在这不适用于PostgreSQL,我怀疑是因为数据库没有在global / pg_database文件中列出.当PostgreSQL启动时,此文件似乎是自动生成的,那么如何告诉系统数据库在那里?
请注意,在PostgreSQL中,您的群集数据目录是一个独立的单元,根据文档
here,无法可靠地部分恢复.
您最好的希望是使用旧服务器的完整数据目录并在其上启动服务器,然后从您从那里获得的数据库转储进行恢复: >获取一个适合新主机上配置的postgresql.conf(通过旧文件 – 您在此处更改的文件 – 以及新数据目录来定位自己) sudo -u postgres postgres -D old_data_directory >再次使用通常的用户名转储旧数据库postgres: sudo -u postgres pg_dump -p /path/to/socket/for/old/directory database_name > dump_file.sql >将dump_file.sql改编为新服务器的用户名等;在那里创建具有适当所有权的空数据库 sudo -u postgres psql -p /path/to/socket/for/new/directory new_database_name 这应该让你设定,或至少显示到达那里的良好途径. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |