首先请原谅我的英语。这有点不好。第二,原谅我的无知,我是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
如果有人可以帮助我,我会感谢你。
答案 0 :(得分:0)
备份和还原整个数据库或单个表的方法有很多种。听起来你需要使用pgDump而不是处理单个文件。如果不是在备份模式下,并且如果没有复制整个事物+存档日志,则文件级副本可能会损坏您的数据库。
如果必须按文件复制,请确保关闭数据库以确保最大安全性。
对我来说,如果我有一个表备份,我会使用pg_dump
pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
如果愿意,可以使用-t标志列出单个表。