gpt4 book ai didi

django - 将 postgres 转储迁移到 RDS

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:57 25 4
gpt4 key购买 nike

我有一个在 digital ocean 上运行的 Django postgres 数据库 (v9.3.10),我正在尝试将它迁移到 Amazon RDS (postgres v 9.4.5)。 RDS 是一个 300GB 的 db.m3.xlarge 实例。我已经将 Digital Ocean 数据库转储为:

sudo -u postgres pg_dump -Fc -o -f /home/<user>/db.sql <dbname>

现在我正尝试通过以下方式迁移它:

 pg_restore -h <RDS endpoint> --clean -Fc -v -d <dbname> -U <RDS master user> /home/<user>/db.sql

我看到的唯一错误是:

  pg_restore: [archiver (db)] Error from TOC entry 2516; 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';

除此之外,一切似乎都很顺利,然后就停滞了。转储文件约为 550MB,并且有几个表具有多个索引,否则非常标准。

AWS 接口(interface)上的读取和写入 IOPS 接近于 0,CPU、内存和存储也是如此。我是 AWS 的新手,知道可能需要调整参数组才能更好地完成这项工作。任何人都可以就此或将 Django 数据库迁移到 RDS 的更好方法提出建议吗?

编辑:

查看数据库用户,DO 数据库看起来像:

Role Name   Attr                                           Member Of
<user> Superuser {}
postgres Superuser, Create role, Create DB, Replication {}

RDS 看起来像:

Role Name      Attr                     Member Of
<user> Create role, Create DB {rds_superuser}
rds_superuser Cannot login {}
rdsadmin ... ...

所以这对我来说似乎不是权限问题,因为 在每种情况下都具有 super 用户权限。

任何寻找的人的解决方案:

我终于得到了这个工作使用:

cat <db.sql> | sed -e '/^COMMENT ON EXTENSION plpgsql IS/d' > edited.dump
psql -h <RDS endpoint> -U <user> -e <dname> < edited.dump

对于可靠的备份/恢复机制来说,它并不理想,但考虑到它只是一个评论,我想我可以没有。我唯一的其他观察是对远程主机运行 psql/pg_restore 很慢。希望新database migration service将添加一些东西。

最佳答案

考虑到您转储的数据库文件约为 550MB,我认为使用 Amazon 指南来执行此操作是出路。希望对您有所帮助。

Importing Data into PostgreSQL on Amazon RDS

关于django - 将 postgres 转储迁移到 RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36311692/

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