备份和恢复如何仅在没有数据的postgresql中列出(名称)数据库,角色和数据库的权限?
获取列表数据库postgresql的Bash脚本
sudo -i -u postgres psql -t -A -c 'SELECT datname FROM pg_database'
但是如何在postgresql中恢复角色和数据库的数据库和关系?
Vao Tsun回答:准备带有数据库列表的sql用于创建使用smth,如:psql -c "选择'创建数据库' || datname ||';'来自pg_database,其中没有 datistemplate和datname!=' postgres';" - 在> cdbs.sql中创建 列表中的数据库,对新集群使用psql -f cdbs.sql
但是所有恢复的数据库都拥有所有者postgres。 如何与所有者恢复数据库? 感谢
答案 0 :(得分:0)
从头顶 - 尝试:
pg_dumpall -g
pg_dump -s >to_file.sql
,然后psql -f to_file.sql
忽略创建错误。psql -c "select 'create database '||datname||';' from pg_database where not datistemplate and datname != 'postgres';" -At >cdbs.sql
,从列表创建数据库,对新集群使用psql -f cdbs.sql