- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个在 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 ... ...
所以这对我来说似乎不是权限问题,因为
任何寻找的人的解决方案:
我终于得到了这个工作使用:
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 指南来执行此操作是出路。希望对您有所帮助。
关于django - 将 postgres 转储迁移到 RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36311692/
我正在为我的应用程序使用 Tank-Auth。我唯一的问题是激活和重置帐户密码。 用于登录、注册、注销;我对这些代码没有问题; $route['login'] = "/auth/login"; $ro
我是一名优秀的程序员,十分优秀!