gpt4 book ai didi

postgresql - 将数据库从生产恢复到开发

转载 作者:行者123 更新时间:2023-11-29 14:16:05 25 4
gpt4 key购买 nike

我们在生产服务器上有名为“itreport”的数据库,在开发服务器上有名为“itreport_dev”的数据库。

1) 在生产服务器上,数据库“itreport”中存在 52 个用户。2)在开发服务器上,60 个用户存在于数据库“itreport_dev”中。3)我已经转储了生产服务器数据库“itreport”。转储文件名为backup_12082017.sql

我的问题是 如果我将上述转储(备份)文件恢复到开发服务器数据库 'itreport_dev,存在的用户(60)将存在于开发数据库中?

如果不是,我们必须在恢复过程中提供什么选项?

要在开发服务器上执行哪些前置步骤和后置步骤?

最佳答案

简短回答:不,角色不是单一数据库备份的一部分。

如果您使用 pg_dump 只转储数据库,它只会恢复表和数据。没有任何角色。丢失角色拥有的任何对象最终将由执行恢复的用户拥有(该用户应该是 super 用户)

如果您执行 pg_dumpall 角色,所有数据库都将被备份。

可以使用pg_dumpall -r 单独备份角色

如果您执行 pgdumpall --clean,resore 将销毁并替换转储中也存在的开发服务器上的任何数据库和角色。任何不在两者中的名称都不会受到影响,(特殊角色“postgres”和模板数据库也不受影响)

pgdumpall 备份是 SQL 备份,应该使用 psql 恢复

su postgres -c psql < all-database-backupfile.sql

zcat all-database-backupfile.sql.gz | su postgres -c psql

等等

(对于 windows 使用 runas 而不是 su,我不确定所需的确切语法)

关于postgresql - 将数据库从生产恢复到开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47707063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com