将数据库文件与数据库同步 - PostgreSQL

时间:2016-03-24 17:06:45

标签: database postgresql

首先请原谅我的英语。这有点不好。第二,原谅我的无知,我是postgres中最新的

当我尝试在另一个数据库上建立备份数据库时,我遇到了麻烦。我只需要转储数据库以获取一个表,但我只有/var/lib/pgsql/data/base/中的文件

我在这里尝试: 我使用OID 227763创建了一个名为“test”的数据库,因此我将旧数据库的文件与另一个OID放在这个新数据库中。我修复了文件夹和文件权限,但是当我登录“test”并运行select * from pg_tables;时,表格似乎不对我而言。当我尝试在PhpPgAdmin上创建表时,我得到了

  

错误:关系已存在

我正在尝试这样做,因为我需要知道哪些文件是我想要的表。我将登录数据库并运行SELECT oid,* from pg_class;以获取OID。

我在/var/lib/pgsql/data/global/pg_database

中找到了旧的OID数据库

如果有人可以帮助我,我会感谢你。

1 个答案:

答案 0 :(得分:0)

备份和还原整个数据库或单个表的方法有很多种。听起来你需要使用pgDump而不是处理单个文件。如果不是在备份模式下,并且如果没有复制整个事物+存档日志,则文件级副本可能会损坏您的数据库。

如果必须按文件复制,请确保关闭数据库以确保最大安全性。

对我来说,如果我有一个表备份,我会使用pg_dump

pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}

如果愿意,可以使用-t标志列出单个表。