Автоматическое восстановление является средством, позволяющим сохранить работоспособность системы при возникновении ошибок. Database Engine выполняет автоматическое восстановление каждый раз после его перезапуска после возникновения ошибки или после его останова. Процесс автоматического восстановления проверяет, требуется ли восстановление базы данных. Если да, то каждая база данных возвращается в ее последнее согласованное состояние при использовании протокола транзакций.
В процессе автоматического восстановления Database Engine проверяет протокол транзакций от последней контрольной точки до точки, в которой произошел отказ системы или был выполнен останов Database Engine. (Контрольная точка- это самая последняя точка, при которой все изменения данных были записаны в базу данных из оперативной памяти. По этой причине контрольная точка обеспечивает физическую согласованность данных.) Протокол транзакций содержит подтвержденные транзакции (транзакции, которые были успешно выполнены, но их изменения пока еще не записаны в базу данных) и неподтвержденные транзакции (транзакции, которые не были успешно выполнены до появления сбоя или останова системы). Database Engine повторяет все подтвержденные транзакции, следовательно, делает изменения в базе данных постоянными и отменяет часть неподтвержденных транзакций, которые выполнялись до контрольной точки.
Database Engine вначале выполняет автоматическое восстановление базы данных master, после этого восстанавливаются все другие системные базы данных. Затем восстанавливаются базы данных, созданные пользователями.