Когда проводить восстановление
Когда проводить восстановление
При восстановлении приходится учитывать больше факторов, чем при простой архивации. Эти факторы в основном связаны с «глубиной» восстановления, которое принципиально отличается от простого воссоздания базы данных «на пустом месте», и действующих при этом ограничений.
Меньше всего неудобств причиняет простое восстановление данных. Эта операция может выполняться при наличии активных пользователей, подключенных к базе данных, и даже если у этих пользователей открыты незавершенные транзакции. Такое стало возможным благодаря механизму контроля версий, действующему в PostgreSQL. Восстановление данных может выполняться во время работы без перезапуска сервера. После того как модификации будут синхронизированы с базой данных, они немедленно становятся доступными для подключившихся пользователей.
Восстановление, связанное с удалением и воссозданием структурных элементов базы данных (таблиц, представлений и т. д.), также может выполняться во время работы системы. В этом варианте возникает больше проблем, чем при восстановлении данных, поскольку объекты ненадолго удаляются из системы, а это может вызвать временные трудности в приложениях, предполагающих существование этих объектов. Характер этих ограничений зависит от природы приложения, работающего с базой.
Больше всего трудностей возникает при восстановлении, требующем удаления всей базы данных. Такие операции выполняются только в то время, когда к базе данных не подключены пользователи. Если в момент выполнения команды DROP DATABASE имеются активные подключения, попытка удаления базы завершается неудачей.
Возможно, при удалении и воссоздании особо интенсивно используемой базы данных следует завершить систему PostgreSQL и перезапустить ее с запретом подключений TCP/IP; тем самым предотвращаются внешние подключения к серверу до завершения работы.