У меня довольно большая база данных с 5+ схемами. В настоящее время я создаю резервные копии, выполняя pg_dump для создания отдельных файлов .sql для каждой схемы. Когда я выполняю восстановление, мне приходится перебирать каждую схему и запускать команду восстановления по отдельности, что отнимает много времени, а также создает проблемы, если конкретная схема дает сбой. Я могу столкнуться с ситуацией, когда некоторые схемы обновляются, а другие после сбоя могут не обновляться.
Что я хотел бы сделать, так это запустить каждое из этих восстановлений параллельно как одну транзакцию, поэтому, если одна из них выйдет из строя, все они потерпят неудачу. Кроме того, я знаю, что простым ответом на это будет отказ от резервного копирования в виде отдельных файлов .sql, к сожалению, это требование, которое я не могу изменить.
Также я должен отметить, что я запускаю эти команды postgresql из базовой версии С#. Дополнительный вариант, который я исследовал, заключался в запуске новых потоков для каждого файла .sql при восстановлении, хотя это не решает мою проблему с одной транзакцией.