postgresql 数据库有哪些作用?

问题描述 投票:0回答:1

我在一台计算机上创建了数据库的备份

postgres@machine1$ pg_dump mydb > mydb.dump.sql

然后,在第二台计算机上创建 mydb 数据库后,我从转储中恢复它

postgres@machine2$ psql -d mydb -f mydb.dump.sql 

问题在于,当遇到目标系统上尚不存在的角色时,恢复会引发错误。

有什么方法可以获取源系统上 mydb 使用的角色列表吗?然后,如果不是太多,我将在恢复数据库之前在目标上手动创建任何丢失的。

我不希望源系统上的所有角色都可以通过 psql \du 获得。源系统可能包含比 mydb 使用的角色更多的角色。

我正在使用 postgresql 12。

postgresql roles restore postgresql-12
1个回答
0
投票

角色对于您可以使用的数据库集群来说是全局的:

pg_dumpall

-r --仅限角色

仅转储角色,不转储数据库或表空间

这将使用如下命令提取数据库集群中的角色文件:

pg_dumpall -r -f database_roles.sql

您需要根据需要添加适当的主机、用户和端口参数。用户需要有足够的权限才能读取包含密码的pg_authid

© www.soinside.com 2019 - 2024. All rights reserved.