Я ищу решение для резервного копирования моих схем Cloud SQL (и файлов облачного хранилища).
Сначала я попытался использовать Cloud Scheduler для вызова googleapis (https://cloud.google.com/sql/docs/postgres/import-export/exporting), чтобы сделать экспорт базы данных. Проблема в том, что мне нужны определенные аргументы резервного копирования, и мне нужно экспортировать определенные схемы в базу данных PostgreSQL. У каждого из моих клиентов есть схема, и я хотел бы иметь возможность восстановить схему, не восстанавливая всю базу данных. Googleapis, похоже, не поддерживает экспорт конкретных схем (пока), поэтому я хотел бы вызвать pg_dump напрямую.
Та же проблема с использованием автоматического резервного копирования в Cloud SQL. Я не могу восстановить определенную схему в базе данных, и мне нужно хранить резервные копии как минимум в течение месяца.
Однако мне еще предстоит найти способ вызвать pg_dump, например, Облачные функции. Итак, в настоящее время я подумываю использовать свой собственный ноутбук с Windows 10 для вызова pg_dump и настройки ежедневной задачи в Windows. Я бы предпочел использовать Google Cloud вместо собственного ноутбука.
Если у кого-то есть идеи, как мне построить инфраструктуру резервного копирования, я буду очень признателен.
Подключите свой экземпляр cloudql к прокси> https://cloud.google.com/sql/docs/postgres/sql-proxy
тогда эти команды должны выполнять свою работу
pg_dump -U postgres -h localhost -p [PORT] [DBNAME] -n public --format=p >publicBackup.sql
psql -U postgres -h localhost -p [PORT] [DBNAME] -c "drop schema public cascade;"
psql -U postgres -h localhost -p [PORT] [DBNAME] -n public -1 -f ./publicBackup.sql
Вы можете выполнить эту работу из любого контейнера, у которого есть прокси-соединение с вашей базой данных.
Как вы упомянули, в документации говорится, что резервные копии работают только с экземплярами и базами данных, а не с конкретными схемами. Здесь ничего нового.
Я знаю, что это может быть не лучший вариант, но из-за этих ограничений вы рассматривали возможность обновления / изменения вашего дизайна? Одна база данных на каждого клиента, поэтому резервное копирование не станет головной болью. По крайней мере, пока они не выпустят что-то для резервного копирования или экспорта отдельных схем.
Ваши счета не пострадают, потому что они взимают плату за хранение, а не за базу данных или схему. Однако это может занять больше времени, чем вы ожидали.