Выполнение быстрого восстановления базы данных
Если вы делаете резервные копии журнала транзакций, не используйте графический интерфейс. Даже если у вас только одна резервная копия журнала транзакций в час, вам потребуется слишком много времени, чтобы просмотреть все файлы.
Подумайте, как могла бы выглядеть ваша папка резервного копирования, если бы мы назвали наши файлы резервных копий по базе данных, дате, времени и разному расширению для каждого типа резервной копии (BAK для полных, DIF для дифференциалов и TRN для журналов транзакций):
- bak
- trn
- trn
- trn
- trn
- trn
- dif
- trn
- trn
В этом случае я выполнял полную резервную копию, а затем почасовые журналы транзакций с дифференциальными резервными копиями каждые 6 часов. (Это никогда не будет сценарием, который я использовал бы в реальном мире)
Если в 8:15 утра произойдет катастрофа, и я потеряю сервер, мне нужно восстановить полный, самый последний дифференциал и журналы транзакций, которые следуют за дифференциалом, например:
- bak
- dif
- trn
- trn
Это очень простой сценарий для написания - и, к счастью, MSSQLTips уже сделал это за вас. Просто измените переменные для имени вашей базы данных и пути, в котором находятся ваши файлы восстановления, и скрипт автоматически восстановит все файлы.
У этого сценария есть последствия
Вам нужно грамотно создать резервные копии своих баз данных. Вы хотите поместить каждую базу данных в свою собственную папку и хотите, чтобы имена файлов имели имя базы данных. Это облегчит жизнь, если я захочу быстро просмотреть какие резервные копии были сделаны.
Он принимает тот же путь к базе данных при восстановлении. Если вы из тех DBA, которым нравится постоянно менять названия и папки дисков или у вас есть разбросанные файлы повсюду, а сервера баз данных производства и разработки имеют разные буквы дисков, то жизнь будет сложнее. Существуют и другие сценарии восстановления, которые могут корректировать имена файлов и журналов во время восстановления, но они не настолько элегантны, когда речь идет о восстановлении полных файлов, различий и т-журналов.
Вы можете делать резервные копии журнала транзакций так часто, как вы хотите. Если процесс восстановления полностью автоматизирован, почему бы не делать резервные копии журнала транзакций каждую минуту? Это не будет стоить вам лишнего. Если вы выполняете резервное копирование журналов один раз в час, ваши пользователи, вероятно, почувствуют, что ежечасно загрузка занимает больше времени.
Ваше домашнее задание на этой неделе
Вам не нужно сейчас идти и строить всю эту инфраструктуру – но начните закладывать основу для этого, удостоверившись в том, что ваши файлы находятся в удобном для восстановления формате.
Затем, попробуйте скрипт MSSQLTips, чтобы убедиться в том, что вы сможете быстро восстановить базу данных. Если вы получаете ошибки, оставляйте комментарии к этой записи в блоге с описанием ошибки и, в идеале, вносите улучшения в свои скрипты. Теперь, когда наступит бедствие, вы не будете щелкать вслепую в графическом интерфейсе - вы просто откроете проверенный скрипт и нажмёте «Выполнить».