如何转储Google Cloud SQL for PostgreSQL DB以导入回常规的PostgreSQL DB?

编程入门 行业动态 更新时间:2024-10-27 17:14:30
本文介绍了如何转储Google Cloud SQL for PostgreSQL DB以导入回常规的PostgreSQL DB?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试使用pg_dump和pg_restore从Google Cloud SQL(PostgreSQL)实例导出我的数据,以便将其导入到常规Postgres数据库:

pg_dump -h sql_proxy -F t --no-owner --no-acl > backup.tar pg_restore backup.tar -c

但是,当运行pg_restore时,我收到以下错误:

PG_RESTORE:[ARCHIVER(Db)]处理TOC时出错:PG_RESTORE: [存档器(数据库)]目录条目197中的错误;1259 17010表xxx Postgres PG_RESTORE:[ARCHIVER(Db)]无法执行查询:错误: 角色"postgres"不存在 命令是:将TABLE PUBLIC.xxx Owner改为Postgres;

Pg_RESTORE:[存档器(数据库)]目录条目198中的错误;1259 17017表 XXY postgres PG_RESTORE:[ARCHIVER(Db)]无法执行查询: 错误:角色"postgres"不存在 命令是:将TABLE PUBLIC.xxy Owner更改为Postgres;

...

我尝试了几种不同的旗帜,但都没有成功。我找到了很多关于如何反过来迁移(从PostgreSQL迁移到Google Cloud SQL for PostgreSQL)的文章,Google Cloud docs只介绍了如何将数据导出,然后再次导入到云SQL数据库中。

对于如何避免上述错误以及如何在尽可能少的更改情况下迁移数据库,我将不胜感激。

推荐答案

您需要在要导入转储的实例中预先创建引用的角色。

有两种方法可以实现这一点:

  • 使用PG_Dumpall而不是PG_DUMP或
  • pg_ump pall--仅全局参数,然后恢复该转储(这将创建角色以及其他内容)

更多推荐

如何转储Google Cloud SQL for PostgreSQL DB以导入回常规的PostgreSQL DB?

本文发布于:2023-10-29 03:03:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1538543.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:常规   Cloud   Google   SQL   DB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!