大师 我需要备份和恢复一个PostgreSQL数据库。 我的操作系统版本是Ubuntu的14.04 64位,而PostgreSQL是:如何备份和恢复一个PostgreSQL数据库?
gid: ~/works $ pg_config --version
PostgreSQL 9.3.15
我用pg_dump的备份数据库:
gid: ~/works $ pg_dump -U db_name_user -F t db_name > db_name.tar
我尝试使用pg_restore的恢复数据库并获取失败:
gid: ~/works $ pg_restore -U db_name_user -F t -d db_name db_name.tar
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 3621; 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 IS 'PL/pgSQL procedural language';
pg_restore: WARNING: no privileges could be revoked for "public"
pg_restore: WARNING: no privileges could be revoked for "public"
pg_restore: WARNING: no privileges were granted for "public"
pg_restore: WARNING: no privileges were granted for "public"
WARNING: errors ignored on restore: 1
我不知道这是什么意思? 如何备份和恢复PostgreSQL数据库?
非常感谢。
------------------------ update 1 -------------------- ----
即使我补充说:“--no所有者”选项时的pg_dump和pg_restore的,我还是得到了同样的错误消息:
gid:~/works $ pg_restore -U db_name_user -O -Ft -d db_name db_name.tar
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 3621; 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 IS 'PL/pgSQL procedural language';
pg_restore: WARNING: no privileges could be revoked for "public"
pg_restore: WARNING: no privileges could be revoked for "public"
pg_restore: WARNING: no privileges were granted for "public"
pg_restore: WARNING: no privileges were granted for "public"
WARNING: errors ignored on restore: 1
您可以放心地忽略此错误。缺乏对plpgsql的评论不会影响你的代码。如果你想以超级用户的身份运行pg_restore,你不应该看到这样的警告 –