Перенос базы sql на другой диск
В этом разделе описывается перемещение отсоединенной базы данных в другое местоположение и ее повторное присоединение к тому же или другому экземпляру сервера в SQL Server. Однако рекомендуется переносить базы данных с помощью процедуры запланированного переноса ALTER DATABASE, а не путем отсоединения и присоединения. Дополнительные сведения см. в статье Move User Databases.
Не рекомендуется подключать или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Перемещение системных баз данных
Чтобы переместить данные системной базы данных или файл журнала в рамках запланированного перемещения (операции запланированного обслуживания), следуйте следующим указаниям: К ним относятся системные базы данных model , msdb и tempdb .
Эта процедура применима ко всем системным базам данных, кроме master и Resource . Шаги по перемещению базы данных master см. далее в этой статье. Базу данных Resource нельзя переместить.
Запишите существующее расположение файлов базы данных, которые нужно переместить, проверив представление каталога sys.master_files.
Убедитесь, что учетная запись службы для SQL Server ядро СУБД имеет полные разрешения на новое расположение файлов. Дополнительные сведения см. в статье Настройка учетных записей службы Windows и разрешений. Если учетная запись службы ядро СУБД не может управлять файлами в новом расположении, экземпляр SQL Server не запустится.
Для перемещения каждого файла базы данных выполните следующую инструкцию.
До перезагрузки службы база данных продолжает использовать файлы данных и журнала в существующем расположении.
Остановите экземпляр SQL Server для выполнения обслуживания. Дополнительные сведения см. в статье Iniciar, parar, pausar, retomar e reiniciar os serviços SQL Server.
Скопируйте файл (файлы) базы данных в новое расположение. Обратите внимание, что этот шаг не является обязательным для системной базы данных tempdb , эти файлы будут автоматически создаваться в новом расположении.
Перезапустите экземпляр SQL Server или сервер. Дополнительные сведения см. в статье Iniciar, parar, pausar, retomar e reiniciar os serviços SQL Server.
Проверьте изменения в файле с помощью следующего запроса. Системные базы данных должны сообщать о новых физических расположениях файлов.
Поскольку на шаге 5 вместо того чтобы переместить файлы базы данных, вы скопировали их, теперь можно безопасно удалить неиспользуемые файлы базы данных из их предыдущего расположения.
Рекомендации
Чтобы обеспечить целостность работы пользователей и приложений при перемещении базы данных на другой экземпляр сервера, необходимо повторно создать некоторые или все метаданные базы данных. Дополнительные сведения см. в статье Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера (SQL Server).
Некоторые функции компонента Компонент SQL Server Database Engine изменяют способ, с помощью которого Компонент Database Engine хранит информацию в файлах базы данных. Эти функции зависят от конкретных выпусков SQL Server. База данных, содержащая данные функции, не может быть перемещена в выпуск SQL Server , который их не поддерживает. Используйте динамическое административное представление sys.dm_db_persisted_sku_features для просмотра всех функций текущей базы данных, зависящих от выпуска.
Для выполнения процедур, описанных в этой статье, необходимо логическое имя файлов базы данных. Это имя можно получить из столбца name представления каталога sys.master_files .
Начиная с SQL Server 2008 R2, полнотекстовые каталоги интегрированы в базу данных, а не хранятся в файловой системе. Полнотекстовые каталоги теперь перемещаются автоматически при перемещении базы данных.
Убедитесь, что у учетной записи Служб баз данных SQL Server есть разрешения для нового расположения файлов в файловой системе. Дополнительные сведения см. в статье Настройка разрешений файловой системы для доступа к компоненту ядра СУБД.
Перенос системных баз данных¶
Но, остались еще системные базы данных (спрятаны в разделе System Databases). Это msdb, model и tempdb, которые в общем-то тоже будет неплохо перенести на быстрый и отказоустойчивый диск. Тем более, что среди них есть одна, очень для нас важная база - tempdb. Именно через нее проходят все запросы, прежде чем попасть в пользовательскую МБД. Перенести системные базы ничуть не сложнее, чем пользовательские. И для этого надо:
1. Используя Microsoft SQL Server Management Studio, выполнить следующий скрипт:
Его также можно скачать из этого описания и запустить непосредственно на SQl-сервере.
2. Останавливаем службу SQL.
3. Копируем из старого каталога (помним наш пример: C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS2012\MSSQL\DATA) все файлы, указанные в скрипте выше, в новый каталог, который мы прописали в том же скрипте.
4. Обязательно добавляем учетную запись группы безопасности. Подробно о том, как это сделать, читайте в конце данной статьи, в разделе "Предоставление разрешения на доступ к файловой системе идентификатору безопасности службы".
5. Запускаем службу SQL.
6. Убедиться, что мы все сделали правильно, можно, посмотрев в свойствах каждой системной БД раздел Files (Файлы). Там должны быть новые пути к обоим файлам (самой БД и логу).
A. Перемещение базы данных tempdb
В следующем примере показано перемещение файлов базы данных tempdb и журнала на новое место в рамках запланированного перемещения.
Воспользуйтесь этой возможностью, чтобы проверить оптимальный размер и размещение файлов tempdb . Дополнительные сведения см. в статье об оптимизации производительности базы данных tempdb в SQL Server.
Так как tempdb повторно создается при каждом запуске экземпляра SQL Server, вам не нужно физически перемещать файлы данных и журналов. Файлы создаются в новом расположении во время перезагрузки службы на шаге 4. До перезагрузки службы tempdb продолжает использовать файлы данных и файлы журнала, расположенные в существующем расположении.
Определение логических имен файлов базы данных tempdb и их текущего местоположения на диске.
Убедитесь, что учетная запись службы для SQL Server ядро СУБД имеет полные разрешения на новое расположение файлов. Дополнительные сведения см. в статье Настройка учетных записей службы Windows и разрешений. Если учетная запись службы ядро СУБД не может управлять файлами в новом расположении, экземпляр SQL Server не запустится.
Измените местоположение каждого файла с помощью ALTER DATABASE .
До перезагрузки службы tempdb продолжает использовать файлы данных и файлы журнала, расположенные в существующем расположении.
База данных (далее — БД) в MS SQL Server занимает достаточно много места на жесткой диске и иногда требуется перенести ее на другой раздел или диск.
Для того, чтобы это сделать необходимо:
1. Войти в консоль MS SQL Server Managmet Studio (Пуск — Программы — MS SQL Server)
2. В окне «Object Explorer» раскрыть список (+) баз данных (Databases)
3. Для начала определите, где хранятся файлы БД. Для этого нажмите правой кнопкой мыши на БД, которую мы хотим перенести (для примера возьмем БД «test«) и выберите пункт Properties (Свойства):
перейдите в раздел «Files«, в колонке «Path» отображается путь, где хранятся файлы БД (test) и лог-файла (test_log):
4. Открепляем БД. Для этого нажимаем правой кнопкой мыши на БД и выбрираем «Tasks» — «Detach«:
5. В окне «Detach Database» ставим галки «Drop Connections» и «Update Statistics«:
Нажать кнопку «ОК«. После чего БД исчезнет в списке баз данных (Databases)
6. Переносим БД (test) и лог-файла (test_log) в новый раздел (например, в раздел D:\data\)
7. Нажимаем правой кнопкой мыши на «Databases» и выбираем пункт «Attache» (Прикрепить):
7. В окне «Attach Databases» указываем новый путь к файлам БД. Для этого нажимаем кнопку «Add«:
8. Выбираем нашу БД «test.mdf«:
Процедура восстановления после сбоя
Если файл необходимо переместить в новое место из-за аппаратного сбоя, выполните следующие действия.
Если базу данных запустить нельзя, она находится в подозрительном режиме или в невосстановленном состоянии, то файл может быть перемещен только членом предопределенной роли sysadmin.
Остановите работу экземпляра SQL Server , если он запущен.
Запустите экземпляр SQL Server в режиме восстановления «только master», запустив из командной строки одну из следующих команд.
В случае с экземпляром по умолчанию (MSSQLSERVER) выполните следующую команду.
В случае с именованным экземпляром выполните следующую команду.
Для каждого перемещаемого файла используйте команды sqlcmd или SQL Server Management Studio для выполнения следующей инструкции.
Дополнительные сведения об использовании программы sqlcmd см. в статье Использование программы sqlcmd.
Завершите работу программы sqlcmd или SQL Server Management Studio.
Остановите экземпляр SQL Server.
Переместите файл или файлы в новое расположение.
Запустите экземпляр SQL Server. Например, выполните команду NET START MSSQLSERVER .
Проверьте изменения в файле с помощью следующего запроса.
Дальнейшие действия после перемещения системной базы данных msdb
Если база данных msdb перемещена, а Database Mail настроена, выполните следующие дополнительные действия.
Убедитесь, что компонент Service Broker включен для msdb базы данных, выполнив следующий запрос.
Если компонент Service Broker не включен msdb , его необходимо повторно включить, чтобы Database Mail функционировать. Дополнительные сведения см. в статье об ALTER DATABASE . SET ENABLE_BROKER.
Убедитесь, что значение is_broker_enabled теперь равно 1.
Перемещение базы данных master
Чтобы переместить базу данных master , выполните следующие действия.
Убедитесь, что учетная запись службы для SQL Server ядро СУБД имеет полные разрешения на новое расположение файлов. Дополнительные сведения см. в статье Настройка учетных записей службы Windows и разрешений. Если учетная запись службы ядро СУБД не может управлять файлами в новом расположении, экземпляр SQL Server не запустится.
Через меню Пуск найдите и запустите диспетчер конфигурации SQL Server. Дополнительные сведения об ожидаемом расположении см. в статье о диспетчере конфигурации SQL Server.
В узле служб SQL Server щелкните правой кнопкой мыши экземпляр SQL Server (например, SQL Server (MSSQLSERVER)) и выберите пункт "Свойства".
В диалоговом окне Свойства SQL Server (instance_name) выберите вкладку Параметры запуска.
В поле Существующие параметры выберите параметр -d . В поле "Указание параметра запуска" измените параметр на новый путь к файлу master данных . Для сохранения изменений выберите Обновить.
В поле Существующие параметры выберите параметр -l . В поле "Указание параметра запуска" измените параметр на новый путь к файлу master журнала . Для сохранения изменений выберите Обновить.
Значение параметра для файла данных должно соответствовать параметру -d , а значение для файла журнала — параметру -l . В следующем примере показаны значения параметров для местоположения файла данных master по умолчанию.
-dC:\Program Files\Microsoft SQL Server\MSSQL.MSSQLSERVER\MSSQL\DATA\master.mdf
-lC:\Program Files\Microsoft SQL Server\MSSQL.MSSQLSERVER\MSSQL\DATA\mastlog.ldf
Если файл данных базы данных master планируется переместить в E:\SQLData , значения параметров необходимо изменить следующим образом:
Нажмите ОК, чтобы окончательно сохранить изменения и закрыть диалоговое окно Свойства SQL Server (имя_экземпляра) .
Остановите экземпляр SQL Server, щелкнув правой кнопкой мыши имя экземпляра и выбрав команду "Остановить".
Скопируйте файлы master.mdf и mastlog.ldf в новое расположение.
Повторно запустите экземпляр SQL Server.
Проверьте правильность изменений файла для базы данных master , выполнив следующий запрос.
На этом этапе среда SQL Server должна выполняться как обычно. Однако корпорация Майкрософт рекомендует также изменить запись реестра, указанную в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance_ID\Setup , где instance_ID имеет вид MSSQL13.MSSQLSERVER . В этом кусте измените значение SQLDataRoot на новый путь. Невозможность обновления реестра может привести сбою исправления и обновления.
Поскольку на шаге 9 вместо того чтобы переместить файлы базы данных, вы скопировали их, теперь можно безопасно удалить неиспользуемые файлы базы данных из их предыдущего расположения.
Перенос пользовательской базы данных¶
1. Договариваемся с творческой частью коллектива, что в определенное время все перестают работать с базой. А именно, прекращают что-то туда добавлять и/или изменять.
2. Останавливаем сервисы, которые работают с МБД в автоматическом режиме, например:
- DB Import - импорт новостных лент
- DDB - распределенная база данных
- Sch_to_DB - репликация расписаний
иначе, есть вероятность потерять часть информации.
3. Запускаем Microsoft SQL Server Management Studio.
4. Самым первым делом всегда делаем бэкап базы!
5. Далее, смотрим, где лежат файлы нужной нам базы данных (в нашем примере это будет МБД под названием "RADIO-DB"). Для этого, нажимаем на ней ПКМ и открываем Properties (Свойства). Заходим в раздел Files (Файлы) и смотрим раздел Path (Путь):
6. Далее, нажимаем ПКМ на целевой базе и выбираем пункт Tasks\Detach (Задачи\Отсоединить):
7. В открывшемся окне ставим обе галочки и нажимаем ОК. После чего, МБД пропадет из списка:
8. Через обычный проводник заходим в каталог, где лежат нужные нам файлы. В нашем примере, это C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS2012\MSSQL\DATA.
9. Копируем эти файлы в новый каталог на новый диск и снова открываем Microsoft SQL Server Management Studio.
10. Нажимаем ПКМ на разделе Databases (Базы данных), выбираем пункт Attach (Присоединить) и в открывшемся окне нажимаем кнопку Add (Добавить) и выбираем нужный нам файл RADIO-DB.mdf уже из нового каталога:
Убеждаемся, что пути у нас теперь новые и нажимаем ОК.
Всё, пользовательская база данных переехала на новый диск. Не нужно ничего перезапускать и т.д. Убеждаемся, что рабочие места переподключились к МБД и разрешаем им снова работать в штатном режиме.
Примеры
Дальнейшие действия после перемещения системной базы данных
Если все системные базы данных перемещаются на новый диск или том либо на другой сервер с другой буквой диска, выполните следующие обновления.
Измените путь к журналу агента SQL Server. Если этого не сделать, то агент SQL Server не сможет запуститься.
Измените расположение по умолчанию для базы данных. Создание новой базы данных может завершиться ошибкой, если буква диска и путь, указанные в качестве места расположения по умолчанию, не существуют.
Измените путь к журналу агента SQL Server.
В SQL Server Management Studio в обозревателе объектов разверните Агент SQL Server.
Щелкните правой кнопкой мыши Журналы ошибок и выберите Настроить.
В диалоговом окне Настройка журналов ошибок агента SQL Server задайте новое расположение для файла SQLAGENT.OUT. По умолчанию он расположен в папке C:\Program Files\Microsoft SQL Server\MSSQL\.\MSSQL\Log\\ .
Измените расположение по умолчанию для базы данных
В SQL Server Management Studio подключитесь к нужному экземпляру SQL Server в обозреватель объектов. Щелкните экземпляр правой кнопкой мыши и выберите пункт Свойства.
В диалоговом окне Свойства сервера выберите пункт Настройки базы данных.
На панели Места хранения, используемые базой данных по умолчаниюможно просмотреть текущие места хранения, используемые по умолчанию для новых файлов данных и файлов журнала.
Остановите и запустите службу SQL Server, чтобы завершить изменение.
Предоставление разрешения на доступ к файловой системе идентификатору безопасности службы¶
С помощью проводника Windows перейдите в папку файловой системы, в которой находятся файлы базы данных. Правой кнопкой мыши щелкните эту папку и выберите пункт Свойства.
На вкладке Безопасность щелкните Изменитьи затем ― Добавить.
В диалоговом окне Выбор пользователей, компьютеров, учетных записей служб или групп щелкните Расположения, в начале списка расположений выберите имя своего компьютера и нажмите кнопку ОК.
В поле Введите имена объектов для выбора введите имя идентификатора безопасности службы. В качестве идентификатора безопасности службы компонента Компонент Database Engine используйте NT SERVICE\MSSQLSERVER для экземпляра по умолчанию или NT SERVICE\MSSQL$InstanceName — для именованного экземпляра.
В поле имен Группа или пользователь выберите имя идентификатора безопасности службы, а затем в поле Разрешения для установите флажок Разрешить для параметра Полный доступ.
Вот теперь, точно всё. Спасибо за внимание!
P.S. В зависимости от конкретной ОС, конкретной версии SQL сервера, вашей кармы и наличия солнечных вспышек, что-то может пойти не так. Прежде чем приступать к вышеописанным действиям, убедитесь, что:
а) оно вам действительно надо
б) вы морально готовы
ц) вы понимаете, что вы делаете
д) у вас вся ночь впереди, чтобы переустановить SQL заново и развернуть бэкап.
detach_db2.PNG Просмотреть (31,7 КБ) Станислав Середницкий, 22/03/2018 17:27
detach_db.PNG Просмотреть (62,9 КБ) Станислав Середницкий, 22/03/2018 17:28
detach_db3.PNG Просмотреть (87,3 КБ) Станислав Середницкий, 22/03/2018 17:56
attach_db.PNG Просмотреть (84,4 КБ) Станислав Середницкий, 22/03/2018 18:05
System_DB_files_moving.sql Просмотреть (993 байта) Станислав Середницкий, 22/03/2018 18:49
sql_conf_man.PNG Просмотреть (31,7 КБ) Станислав Середницкий, 22/03/2018 19:14
start_param.PNG Просмотреть (15,3 КБ) Станислав Середницкий, 22/03/2018 19:18
SQL Serverпозволяет переносить в новое место файлы данных, журнала и полнотекстового каталога пользовательской базы данных; новое место указывается при помощи предложения FILENAME инструкции ALTER DATABASE . Этот метод подходит для перемещения файлов базы данных в пределах одного экземпляра SQL Server. Для переноса базы данных на другой экземпляр SQL Server или другой сервер применяются операции резервного копирования и восстановления или отключения и подключения.
В этой статье рассматривается перемещение файлов пользовательской базы данных. Сведения о перемещении файлов системной базы данных см. в разделе Перемещение системных баз данных.
Процедура запланированного перемещения
Для запланированного перемещения файлов журнала или данных выполните следующие действия.
Для каждого перемещаемого файла выполните следующую инструкцию.
Выполните следующую инструкцию, чтобы перевести базу данных в автономный режим.
Для выполнения этого действия требуется эксклюзивный доступ к базе данных. Если открыто другое соединение к базе данных, инструкция ALTER DATABASE будет заблокирована до тех пор, пока не будут закрыты все соединения. Чтобы переопределить это поведение, используйте предложение WITH . Например, чтобы автоматически выполнить откат и разорвать все остальные соединения с базой данных, выполните инструкцию:
Переместите файл или файлы в новое расположение.
Выполните следующую инструкцию:
Проверьте изменения в файле с помощью следующего запроса.
Процедура восстановления после сбоя
Если нужно перенести файл из-за сбоя оборудования, необходимо выполнить приведенные ниже действия для его перемещения на новое место. Эта процедура применима ко всем системным базам данных, кроме master и Resource . В следующих примерах используется командная строка Windows и служебная программа sqlcmd.
Если базу данных нельзя запустить или она находится в подозрительном режиме или в невосстановленном состоянии, то файл могут перемещать только члены, имеющие предопределенную роль администратора.
Убедитесь, что учетная запись службы для SQL Server ядро СУБД имеет полные разрешения на новое расположение файлов. Дополнительные сведения см. в статье Настройка учетных записей службы Windows и разрешений. Если учетная запись службы ядро СУБД не может управлять файлами в новом расположении, экземпляр SQL Server не запустится.
Остановите работу экземпляра SQL Server , если он запущен.
Запустите экземпляр SQL Server в режиме восстановления «только master», запустив из командной строки одну из следующих команд. При использовании параметра запуска 3608 SQL Server прекращается автоматический запуск и восстановление любой базы данных, кроме master . Дополнительные сведения см. в разделах Параметры запуска и TF3608.
В задаваемых для них параметрах учитывается регистр символов. Команды завершаются ошибкой, если параметры заданы не так, как показано.
В случае с экземпляром по умолчанию (MSSQLSERVER) запустите следующую команду:
В случае с именованным экземпляром запустите следующую команду:
Сразу после запуска службы с флагом трассировки 3608 и /f запустите подключение к серверу sqlcmd, чтобы утвердить доступное отдельное подключение. Например, при локальном выполнении программы sqlcmd на том же сервере, что и экземпляр по умолчанию (MSSQLSERVER), а также для подключения с помощью встроенной проверки подлинности Active Directory выполните следующую команду:
Чтобы подключиться к именованному экземпляру на локальном сервере с помощью встроенной проверки подлинности Active Directory выполните следующее:
Дополнительные сведения о синтаксисе sqlcmd см. в разделе о служебной программе sqlcmd.
Для каждого перемещаемого файла используйте команды sqlcmd или SQL Server Management Studio для выполнения следующей инструкции. Дополнительные сведения об использовании программы sqlcmd см. в статье Использование программы sqlcmd. После открытия сеанса sqlcmd выполните следующую инструкцию по одному разу для перемещения каждого файла:
Завершите работу программы sqlcmd или SQL Server Management Studio.
Остановите экземпляр SQL Server. Например, в командной строке выполните команду NET STOP MSSQLSERVER .
Скопируйте файл (файлы) в новое расположение.
Повторно запустите экземпляр SQL Server. Например, в командной строке выполните команду NET START MSSQLSERVER .
Проверьте изменения в файле с помощью следующего запроса.
Поскольку на шаге 7 вместо того чтобы переместить файлы базы данных, вы скопировали их, теперь можно безопасно удалить неиспользуемые файлы базы данных из их предыдущего расположения.
Процедура
Перемещение базы данных при помощи операций отсоединения и присоединения
Отсоединение базы данных. Дополнительные сведения см. в разделе Отсоединение базы данных.
Переместите в «Проводнике» или окне командной строки файлы отсоединенной базы данных и журналов в новое место.
Перенос файлов журналов обязателен, даже если нужно создать новые файлы журналов. В некоторых случаях для повторного присоединения базы данных требуются файлы ее существующих журналов. Поэтому всегда храните все файлы отсоединенных журналов, пока база данных не будет успешно присоединена без них.
При попытке присоединить базу данных, не указывая файл журнала, операцией присоединения будет произведен поиск файла журнала в его исходном месте. Если копия журнала все еще хранится в исходном месте, она будет присоединена. Чтобы избежать применения исходного файла журнала, либо укажите путь к новому файлу журнала, либо удалите исходную его копию (после его копирования в новое место).
Присоединение скопированных файлов. Дополнительные сведения см. в статье Attach a Database.
Пример
В следующем примере создается копия базы данных AdventureWorks2012 с именем MyAdventureWorks . Инструкции Transact-SQL выполняются в окне редактора запросов, подключенном к экземпляру сервера, к которому выполнено присоединение.
Отсоедините базу данных AdventureWorks2012 . Для этого выполните следующие инструкции Transact-SQL .
Скопируйте любым образом файлы базы данных (AdventureWorks208R2_Data.mdf и AdventureWorks208R2_log) в папки C:\MySQLServer\AdventureWorks208R2_Data.mdf и C:\MySQLServer\AdventureWorks208R2_Log.ldf, соответственно.
При работе с производственными базами данных помещайте базу данных и журналы транзакций на отдельные диски.
При копировании файлов по сети на диск удаленного компьютера укажите имя удаленного места в формате UNC. Имя UNC имеет следующий формат: \\ имя_сервера \ имя_общего_хранилища \ путь \ имя_файла. Как и при записи файлов на жесткий диск локального компьютера, для записи (или считывания) файла на диск удаленного компьютера учетной запись пользователя, которая используется экземпляром SQL Server, должны быть предоставлены соответствующие разрешения.
Присоедините перемещенную базу данных и, возможно, ее журнал, выполнив следующие инструкции Transact-SQL :
В среде SQL Server Management Studioтолько что присоединенная база данных отображается в обозревателе объектов не сразу. Чтобы отобразить базу данных, щелкните в обозревателе объектов пункт Вид , а затем Обновить. Теперь, раскрыв в обозревателе объектов узел Базы данных , можно увидеть в списке присоединенную базу данных.
В некоторых случаях, возникает необходимость перенести файлы баз данных на другой диск. Например, базы лежат в каталоге по умолчанию на системном диске С:, который:
- Имеет маленький размер
- Сильно нагружен ОС и системными запросами
- Довольно медленный
- Помирает
Все эти факторы влияют как на отказоустойчивость, так и на скорость обработки запросов SQl-сервером, а следовательно и на работоспособность комплекса в целом!
Теперь, когда вы прониклись важностью момента, можно приступить к практическим действиям. Итак:
Перенос самой системной базы данных master¶
Да, еще у нас осталась самая системная из всех системных баз - master
- путь, прописанный для этой базы, будет путем по умолчанию для всех вновь создающихся баз на данном сервере. Впрочем, для пользователей Digispot это не очень актуально. Тем более, что мы уже умеем менять пути любым базам.
1. Для изменения пути к БД master, нам понадобится оснастка SQL Server Configuration Manager (Диспетчер конфигурации SQL Server). Запускаем ее и открываем свойства SQL Server:
2. В свойствах SQL Server`а открываем вкладку Startup Parameters (Параметры запуска):
и по очереди меняем все указанные пути на новые.
- каждая строка начинается со своего символа -d, -e или -l. Ни в коем случае не меняйте их и не удаляйте!
3. Каждое изменение пути подтверждаем нажатием кнопки Update.
4. Теперь останавливаем сервис, копируем файлы master.mdf и mastlog.ldf из старого каталога в новый. После чего запускам сервис. ERRORLOG можно не копировать. Он создастся заново.
Перемещение для запланированного обслуживания дисков
Чтобы переместить файл во время процесса запланированного обслуживания дисков, необходимо выполнить нижеприведенные шаги.
Для каждого перемещаемого файла выполните следующую инструкцию.
Остановите работу экземпляра SQL Server или выключите систему для проведения работ по обслуживанию дисков. Дополнительные сведения см. в статье Iniciar, parar, pausar, retomar e reiniciar os serviços SQL Server.
Переместите файл или файлы в новое расположение.
Проверьте изменения в файле с помощью следующего запроса.
Перемещение базы данных Resource
Расположение базы данных Resource — \:\Program Files\Microsoft SQL Server\MSSQL\.\\MSSQL\Binn\\ . Эту базу данных нельзя переместить.
Примеры
В следующем примере файл журнала базы данных AdventureWorks2012 переносится в новое место во время запланированного перемещения.
В этой статье описывается перемещение системных баз данных в SQL Server. Эта операция может пригодиться в следующих ситуациях:
Восстановление после сбоя. Например, база данных находится в подозрительном режиме, или ее работа была прекращена из-за сбоя оборудования;
Перемещение для запланированного обслуживания дисков.
Следующие процедуры применяются к перемещению файлов базы данных в одном экземпляре SQL Server. Чтобы переместить базу данных в другой экземпляр SQL Server или на другой сервер, используйте операцию резервного копирования и восстановления.
Для выполнения процедур, описанных в этой статье, необходимо логическое имя файлов базы данных. Это имя можно получить из столбца name представления каталога sys.master_files .
При перемещении системной базы данных с последующим перестроением базы данных master необходимо снова переместить системную базу данных, поскольку вследствие операции перестроения все системные базы данных устанавливаются в расположение по умолчанию.
Читайте также: