PostgreSQL поддерживает логические бэкапы. Вы можете использовать pg_dump функция логического бэкапа для экспорта файлов бэкапа и последующего импорта в RDS с помощью psql.
Вы можете получить доступ RDS инстансы через EIP или с ECS через частную сеть.
Для получения подробностей см 5.
Версия клиента PostgreSQL должна совпадать с версией движка БД вашего экземпляра RDS for PostgreSQL. База данных PostgreSQL или клиент предоставят pg_dump и psql.
Перед миграцией существующей базы данных PostgreSQL в RDS, вам необходимо сначала экспортировать данные.
pg_dump --username=<DB_USER> --host=<DB_ADDRESS> --port=<DB_PORT> --format=plain --file=<BACKUP_FILE><DB_NAME>
Введите пароль к базе данных, как будет предложено.
Если экспортированный SQL‑файл использует INSERT‑операторы, вы можете легко редактировать и изменять файл. Однако скорость импорта данных может быть медленнее, чем при использовании COPY‑операторов. Рекомендуется выбирать подходящий формат операторов по мере необходимости.
Для получения дополнительной информации смотрите Опции pg_dump.
Примеры:
$ pg_dump --username=root --host=192.168.151.18 --port=5432 --format=plain --file=backup.sql my_db
Пароль для пользователя root:
$ pg_dump --username=root --host=192.168.151.18 --port=5432 --format=plain --inserts --file=backup.sql my_db
Пароль для пользователя root:
$ pg_dump --username=root --host=192.168.151.18 --port=5432 --format=plain --schema-only --file=backup.sql my_db
Пароль для пользователя root:
$ pg_dump --username=root --host=192.168.151.18 --port=5432 --format=plain --data-only --file=backup.sql my_db
Пароль для пользователя root:
После выполнения команд в любом из приведённых выше примеров backup.sql файл будет создан следующим образом:
[rds@localhost ~]$ ll backup.sql-rw-r-----. 1 rds rds 2714 Sep 21 08:23 backup.sql
pg_dump --username=<DB_USER> --host=<DB_ADDRESS> --port=<DB_PORT> --format=plain --file=<BACKUP_FILE> <DB_NAME> --table=<TABLE_NAME>
Введите пароль к базе данных, как запрошено.
Примеры:
$ pg_dump --username=root --host=192.168.151.18 --port=5432 --format=plain --file=backup.sql my_db --table=test
Пароль для пользователя root:
$ pg_dump --username=root --host=192.168.151.18 --port=5432 --format=plain --file=backup.sql my_db --table=test1 --table=test2
Пароль для пользователя root:
$ pg_dump --username=root --host=192.168.151.18 --port=5432 --format=plain --file=backup.sql my_db --table=ts_*
Пароль для пользователя root:
$ pg_dump --username=root --host=192.168.151.18 --port=5432 --format=plain --file=backup.sql my_db -T=ts_*
Пароль для пользователя root:
После выполнения команд в любом из приведенных выше примеров, a backup.sql файл будет создан следующим образом:
[rds@localhost ~]$ ll backup.sql-rw-r-----. 1 rds rds 2714 Sep 21 08:23 backup.sql
Если целевая база данных не существует, выполните следующую команду для создания базы данных:
# psql --host=<RDS_ADDRESS> --port=<DB_PORT> --username=root --dbname=postgres -c "создать базу данных<DB_NAME>;"
# psql --host=<RDS_ADDRESS> --port=<DB_PORT> --username=root --dbname=<DB_NAME> --file=<BACKUP_DIR>/backup.sql
Введите пароль для RDS DB instance when prompted.
Пример:
# psql --host=172.16.66.198 --port=5432 --username=root --dbname=my_db --file=backup.sql
Пароль для пользователя root:
my_db=> \l my_db
В этом примере база данных с именем my_db была импортирована.
my_db=> \l my_dbList of databasesName | Owner | Encoding | Collate | Ctype | Access privileges------+-------+----------+-------------+-------------+-----------my_db | root | UTF8 | en_US.UTF-8 | en_US.UTF-8 |(1 row)