我有一个大问题——我意外地从我的硬盘上卸载了整个 PostgreSQL DBMS。我也丢失了我的数据库,并且没有对包含的数据进行任何转储。但是,我确实备份了服务器上的所有文件。是否有可能以某种方式从这些文件中恢复数据库?
我使用的操作系统是 Debian 6,DBMS 版本是 PostgreSQL 8.4。
如果确实有可能,那么我应该如何实现这一目标?
附言。对不起我的英语不好。
我有一个大问题——我意外地从我的硬盘上卸载了整个 PostgreSQL DBMS。我也丢失了我的数据库,并且没有对包含的数据进行任何转储。但是,我确实备份了服务器上的所有文件。是否有可能以某种方式从这些文件中恢复数据库?
我使用的操作系统是 Debian 6,DBMS 版本是 PostgreSQL 8.4。
如果确实有可能,那么我应该如何实现这一目标?
附言。对不起我的英语不好。
确保您的备份是安全的。只要我们有,我们就可以重新开始。
恢复 PostgreSQL 服务器软件(检查包标题)
apt-get install postgresql-8.4 postgresql-client-8.4 postgresql-contrib-8.4
停止服务器
/etc/init.d/postgresql stop
恢复所有数据文件。确保所有权正确:
cd /var/lib/postgresql/8.4/
mv main main.OLD
cp -a /path/to/backup/main .
/etc/init.d/postgresql start
检查日志 (/var/log/postgresql/...) - 如果您的备份发生在数据库空闲时,您可能很幸运。
请注意,您需要 .../main/ 中的所有内容 - 数据库文件位于 main/base 中,但也需要事务日志和其他各种零碎的东西。
如果你遇到问题,检查你的权限,检查你的 postgresql.conf 文件(如果你有它,也从备份中恢复它,pg_hba.conf 等等)。如果您使用 pl/perl 或其他类似的软件包,您可能还需要安装其他一些软件包
现在。如果您遇到抱怨丢失日志文件或坏块的问题,那么这意味着备份发生在数据库写入磁盘时,并且可能存在损坏。但是,让我们保持乐观并希望最好。
如果可行,请检查一切是否正常,并立即获取您想要的任何数据库的 pg_dump。