我在Amazon RDS上有一个非常大的postgres数据库(拉链时大约9GB),有时我们需要复制它并在我们的本地机器上对它进行一些测试.
进行数据库转储(pg_dump)并下载它只是太慢了,老实说我们试过几次卡住了.
有一种简单的方法可以智能地获取数据库的各个部分吗?例如,只获取过去10天的更改,然后我们可以将它们与我们拥有的本地数据库合并,或者可能将数据库放入块中等等?
我确信我不是第一个有这种需求的人,但找不到合适的方法或教程来解释最好的方法.
谢谢!
9GB压缩转储并不是那么大.你只需要做正确的事:
>从运行RDS数据库的同一AWS账户和区域中的EC2实例转储 – 而不是通过互联网;>使用目录转储格式(–format = directory或-Fd) – 它会自动压缩;>使用并行转储(例如–jobs = 16或-j16)和并行恢复;>在连接字符串中使用sslmode = disable或env PGSSLMODE =禁用pg_dump …以禁用SSL – 某些版本的AWS RDS在单个连接上具有64GB的SSL数据限制;>请记住,从快照恢复的RDS数据库非常慢,直到所有数据至少被读取一次 – 第一次读取比正常情况慢10倍,因为数据是根据需要从存档存储(S3可能)中提取的 – 不要做最近从快照恢复的数据库转储;>仅在压缩状态下成功转储后才将其移出AWS.