day*_*mer 32 postgresql database-backups
我试过pg_dump,然后在一台单独的机器上,我试图导入sql并填充数据库,我明白了
CREATE TABLE
ERROR: role "prod" does not exist
CREATE TABLE
ERROR: role "prod" does not exist
CREATE TABLE
ERROR: role "prod" does not exist
CREATE TABLE
ERROR: role "prod" does not exist
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
WARNING: no privileges could be revoked for "public"
REVOKE
ERROR: role "postgres" does not exist
ERROR: role "postgres" does not exist
WARNING: no privileges were granted for "public"
GRANT
Run Code Online (Sandbox Code Playgroud)
这意味着我user和roles和grant信息不在pg_dump
另一方面,我们有pg_dumpall,我读过谈话,这不会引导我到任何地方?
问题
- 我应该使用哪一个进行数据库备份?pg_dump还是pg_dumpall?
- 要求是我可以采取备份,应该能够导入任何机器,它应该工作得很好.
Cra*_*ger 54
通常的过程是:
pg_dumpall --globals-only 获得用户/角色/等pg_dump -Fc为每个数据库获取适合使用的良好压缩转储pg_restore.是的,这种糟透了.我真的很想教导pg_dump将pg_dumpall输出嵌入到-Fc转储中,但是现在不幸的是它不知道你必须自己如何做.
在写本新闻时(9.4)还有一个讨厌的警告这一做法:无论是pg_dump,还是pg_dumpall在--globals-only模式中,将倾用户访问GRANT在S DATABASE秒.
您还应该了解物理备份 - pg_dumpall,PgBarman和WAL归档,PITR等.这些可以提供更细致的"恢复",即时或单个交易.缺点是它们占用更多空间,只能在同一平台上恢复到相同的PostgreSQL版本,并备份所有数据库中的所有表,无法排除任何内容.
| 归档时间: |
|
| 查看次数: |
23453 次 |
| 最近记录: |