AWS postgres копирование данных из одной базы данных в другую ежедневно? - PullRequest
1 голос
/ 03 апреля 2020

Я хочу создать автоматизированное задание, которое может копировать всю базу данных в другую, обе находятся в AWS RDS Postgres, как я могу это сделать?

Спасибо.

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Вы можете использовать базу данных создать / восстановить снимок .

Вот пример для командной строки:

aws rds create-db-snapshot \
    --db-instance-identifier mydbinstance \
    --db-snapshot-identifier mydbsnapshot 

aws rds restore-db-instance-from-db-snapshot \
    --db-instance-identifier mynewdbinstance \
    --db-snapshot-identifier mydbsnapshot

Те же API такие как CreateDBSnapshot доступны для нескольких языков через AWS SDK.

0 голосов
/ 04 апреля 2020

В прошлом я успешно выполнял скрипт, который выгружает данные с одного Postgres сервера и передает их на другой сервер. В основном это было так: псевдокод :

psql target-database -c "truncate foo"
pg_dump source-database --data-only --table=foo | psql target-database

Команда pg_dump выводит обычные SQL команды, которые можно передать в принимающую команду psql, которая затем вставляет данные.

Чтобы понять, как это работает, запустите pg_dump для одной таблицы, а затем посмотрите на вывод. Вам нужно настроить команду, чтобы получить именно то, что вы хотите (например, используя --no-owner, чтобы избежать отправки настроек доступа).

...