Вы можете получить доступ к отдельным базам данных из полного дампа кластера баз данных в текстовом формате (pg_dumpall), используя некоторую обработку текста, подобную этой:
awk '/^\\connect database_name/ {flag=1;print;next}
/^\\connect/ {flag=0}
flag { print }' \
< all_databases.sql \
> database_name.sql
Это получит из файла pg_dumpall все, что находится между "\connect database_name
" и следующим "\connect
". Но это не очень эффективно.
Но я бы порекомендовал выводить каждую базу данных отдельно, как это:
# Dumping global data (for example roles)
pg_dumpall -g > /var/lib/pgsql/backups/globals.sql
#Dumping indidual databases in tar (uncompressed binary) format
for dbname in
`
psql -qXtc "
select datname from pg_catalog.pg_database
where datname<>'template0'" template1
`
do
pg_dump -b -F t "$dbname" > "/var/lib/pgsql/backups/$dbname.dump"
done
Я предполагаю, что вы имеете в виду "Могу ли я восстановить только одну базу данных из pg_dumpall всего кластера баз данных?"