Questions tagged «pg-dump»

1
如何获得有效且完整的PostgreSQL数据库备份和测试
我希望我能就如何确保像使用MS SQL Server一样获得完整的Postgres备份获得明确的答案,然后照顾孤立的用户。 从我所读的文章中(可能是错误的),找到一个好的PostgreSQL博客一直是一项艰巨的挑战,因此请随时向我推荐一些博客,我需要弄清楚该应用程序的工作方式,以便我可以信任自己的备份和Slony复制。我有一个开发人员在选择s时通过custom,directory和tarformat 从PgadminIII还原了我的备份,OID但他说其中两个没有加载,tar但只是目录,而不是数据。我现在真的很困惑。 我正在使用PGAdminIII,它具有pg_dump和pg_dumpall选项。我想备份所有需要测试的东西,以便将该数据库还原到某个地方,并确认是的,我们需要的所有数据和备份都正确。最终我想写一个自动恢复脚本,但一次只写一天。 pg_dumpall显然有一个-globals应该备份所有内容的选项,但是的帮助pg_dumpall显示-g, --globals-only dump only global objects, no databases,而不是--globals选项。 我以为pg_dumpall至少会备份外键,但这似乎还是一个“选项”。根据文档,即使pg_dumpall我需要使用一个-o选项来备份外键,我也无法想象我何时不想备份外键,这作为默认选项会更有意义。 我将如何照顾孤立的用户并确认我拥有一切?我想将备份文件实际还原到另一台服务器上,并验证一切正常。如果有人对如何在PostgreSQL中进行真正的备份并还原提出任何建议,我将不胜感激。 我有一台PostgreSQL服务器,但是我仍然无法理解为什么OID默认情况下该应用程序不会备份s!好像有99.9%的时间需要。 更新1: Postgres 文档中提到globals我正在寻找的选项似乎是此版本的默认选项,但仍需要该-o选项。如果有人可以验证或给我一个示例命令,将所有需要的一切还原到其他地方的单个数据库,我将不胜感激。 编辑:被网站要求通过编辑我的问题来显示此问题的独特性。这个问题引起了问题,并弄清了备份中的OID,全局变量和非全局变量之间的差异,以及测试了还原建议以确保备份良好,而不是仅仅备份。根据答案,我能够备份,找出全局变量/ oid,并使用cron作业每晚在Postgres上开始测试还原过程。谢谢您的帮助!

2
恢复转储时禁用所有约束和表检查
我已经获得了PostgreSQL数据库的转储,其中包括: pg_dump -U user-name -d db-name -f dumpfile 然后我继续使用以下命令在另一个数据库中还原: psql X -U postgres -d db-name-b -f dumpfile 我的问题是数据库包含引用约束,检查和触发器,并且其中某些(特别是看起来是检查的)约束在恢复期间失败,因为未按照导致遵守这些检查的顺序来加载信息。例如,在表中插入行可能与CHECK调用plpgsql函数检查条件是否存在于其他不相关的表中的函数相关联。如果后一个表未psql在前一个表之前加载,则会发生错误。 以下是产生这样的数据库的SSCCE,该数据库一旦被转储pg_dump就无法恢复: CREATE OR REPLACE FUNCTION fail_if_b_empty () RETURNS BOOLEAN AS $$ SELECT EXISTS (SELECT 1 FROM b) $$ LANGUAGE SQL; CREATE TABLE IF NOT EXISTS a ( i INTEGER NOT NULL ); …

4
如何使pg_dump跳过扩展名?
这是在9.3上,但我可以记住从7.x开始发生的类似事情。所以我创建数据库并将plpgsql扩展安装到其中。稍后,我创建一个pg_dump,然后将其恢复到数据库之前,请确保它也具有plpgsql扩展名。然后在还原时会发生这种情况: pg_restore: creating EXTENSION plpgsql pg_restore: creating COMMENT EXTENSION plpgsql pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry 2053; 0 0 COMMENT EXTENSION plpgsql pg_restore: [archiver (db)] could not execute query: ERROR: must be owner of extension plpgsql Command was: COMMENT ON EXTENSION plpgsql …

4
删除Postgres数据库中的所有数据
我已经使用--data-only和--column-inserts标志从生产服务器上创建了一个新的数据库转储,因此在暂存服务器上执行还原时,我只有一堆插入语句可插入数据。 pg_dump -h localhost -U adminuser --data-only --column-inserts maindb > maindb.sql 从生产转储中还原数据之前,如何先删除登台服务器数据库中的所有数据? 我只想删除所有数据,所以不必删除和创建数据库以及所有其他东西。我只想删除数据并插入所有新数据。 由于多种原因,我没有选择删除和​​创建数据库的选项。我将必须删除所有数据并仅插入,因此无论如何查找该方法,我都愿意这样做,但是显然需要帮助。 我还需要自动执行此过程。将自动执行“从生产数据库中转储数据”,然后“在暂存数据库上删除数据”,然后“将数据还原到暂存数据库”。我只需要“在登台数据库上删除数据”部分的帮助。 我在PostgreSQL 9.5.2上运行


3
pg_restore:[存档]在文件头中找不到魔术字符串
我正在使用PostgreSQL 9.1,并希望还原使用生成的备份文件pg_dump: sudo pg_dump -h 127.0.0.1 -U postgres --clean --inserts -E UTF8 -f out.sql database_name 此命令生成一个有效的sql文件,该文件首先删除任何现有的数据库对象,然后生成所有表,索引,序列等,最后插入数据。 当我尝试使用以下方法还原生成的备份文件时:(添加换行符仅用于显示目的) sudo pg_restore -d database_name -h 127.0.0.1 -U postgres --format=c --clean --create out.sql 它失败并打印: pg_restore: [archiver] did not find magic string in file header 是什么原因呢?

1
postgres-没有角色的pg_dump和pg_restore
我正在尝试在不具有接收数据库上适当角色的情况下还原转储。 如前所述这里也是在这里,你需要有--no-owner作为一个选项,无论是在pg_dump或pg_restore或两者 我使用以下命令行创建我的转储 "C:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" --no-owner -Ft --dbname=postgresql://avo******:AV0******?@127.0.0.1:5432/BI_DB > K:\BI\backup\sort\bck_%timestamp%.tar 恢复线如下 "C:\Program Files\PostgreSQL\9.3\bin\pg_restore.exe" --host localhost --port 5432 --username "postgres" --dbname "BI_TEST2" --no-password --no-owner --role=postgres --exit-on-error --verbose "D:\D\avo\backup\bck_04042017_1410.tar" 如您所见,两者都有--no-owner选择,但最终,我在下面出现了错误 令我感到困扰的是下面的日志 pg_restore: [programme d'archivage (db)] Erreur pendant le traitement de la TOC (« PROCESSING TOC ») : pg_restore: [programme d'archivage (db)] Erreur …


1
为什么postgresql pg_dump将视图导出为表?
我正在使用PostgreSQL 9.3 pg_dump工具使用以下方法仅提取公共模式定义: pg_dump -s -n public -h host -U postgres --dbname=db > ./schema.sql 但是当我检查schema.sql我们的一种观点时,它出现在CREATE TABLE声明中而不是CREATE VIEW声明中。 但是,如果我pg_dump使用以下特定视图: pg_dump -s -t myview -h host -U postgres --dbname=db > ./schema.sql 然后schema.sql包含实际的视图定义。 那么,为什么会这样呢?感谢大伙们!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.