Мне пришлось восстановить некоторые производственные базы данных на другой диск на той же машине Microsoft SQL Server 2005. Это сработало нормально, и приложение, использующее базы данных, снова в сети.
Однако я не восстановил системные (или стандартные?) Базы данных, которые SQL Server создает самостоятельно (модель, мастер и т. Д.). У меня вопрос, какова роль этих баз данных? и насколько важно их восстановить?
master и msdb store содержат процедуры, функции, таблицы, представления и другие объекты, которые определяют всю систему. Например, master содержит такие вещи, как информация о логинах, местонахождении файлов для баз данных, системные хранимые процедуры и многое другое. msdb изначально был в основном о вакансиях, предупреждениях. Информация о конфигурации dbmail и многое другое было добавлено за эти годы.
Модель - это своего рода образец базы данных, которая выступает в качестве отправной точки при создании новой базы данных. Объекты, которые находятся в модели, будут скопированы в новую базу данных. Раньше люди использовали это поведение чаще (например, 10 или 15 лет назад), поэтому они могли включать определенную процедуру или таблицу в каждую созданную ими базу данных, но это имеет свои проблемы и вышло из употребления. НО, вроде как приложение, модель не страшно но она вам все равно нужна.
tempdb - это база данных, которая предоставляет временное хранилище для временных таблиц (#sometablename и ## someothertablename), табличных переменных (если они достаточно большие), операций сортировки и группирования (например, GROUP BY или DISTINCT) и, возможно, других, более загадочных вещей . Обычно вы никогда не восстанавливаете базу данных tempdb. Он перестраивается с нуля каждый раз, когда вы перезагружаете сервер.
В последних версиях SQL Server есть еще одна скрытая системная база данных, которая называется «база данных ресурсов». У вас никогда не должно быть причин возиться с этим.
Если вам интересно, «pubs», Adventurworks и AdventureworksDW не являются системными базами данных, это просто обычные пользовательские базы данных, которые функционируют как примеры, и их можно удалить, не влияя на поведение сервера.
Системные базы данных обычно восстанавливаются только тогда, когда произошел какой-то катастрофический сбой, такой как сбой диска или сгорание центра обработки данных. Вы также можете восстановить системные базы данных, если вы переходите с одного сервера на другой и вам нужно сохранить логины, задания, dbmail и другие конфигурации (хотя есть и другие, возможно, лучшие способы сделать это).
Вы хотите создать резервную копию master, model и msdb. Резервное копирование базы данных ресурсов или tempdb не требуется. Если одна из ваших должностных функций - «dba», рекомендуется просмотреть, что вам может потребоваться для восстановления этих баз данных (это описано в статьях MSKB), потому что восстановление системной базы данных сложнее, чем восстановление базы данных пользователей. . Вы не хотите читать эти статьи базы знаний в первый раз, когда вы действительно находитесь в чрезвычайной ситуации.
При восстановлении базы данных пользователей восстанавливать системные базы данных не требуется. Уловка с восстановлением базы данных пользователей заключается в том, что вам необходимо убедиться, что пользователи, описанные в базе данных, совпадают с логинами для входа на сервер (которые хранятся в базе данных master). Для этого и предназначена системная процедура sp_change_users_login.