Перенос системных баз данных в SQL Server

Перенести базу MS SQL с неработающего компьютера : MS SQL

Есть компьютер, на котором умерла Window’s
На нём стояла программа контроля рабочего времени (старая версия [ Biotime ] примерно 2006-2007 годов выпуска).
Винда сдохла, копий нет.
Использовалась база на MSDE — Microsoft SQL Server Desktop Engine.
Диск — живой.

Если переставлять операционку — можно ли как-то перекинуть данные из старой базы?
Была-бы копия, сделанная средствами SQL — понимаю, что не вопрос (и ведь уже не помню, а почему перестал делать эти копии. Хотя раньше в аналогичной ситуации мне они (копии) помогли).

А вот в такой ситуации — не понимаю, куда бежать.
Тупо подсовывал файлы на новый компьютер — не работает.

Техподдержка ничего про нашу версию уже сказать не может (обращался пару лет назад).

В общем — если кто-то что-то подскажет — буду рад.

KirillHome
Посмотреть профиль
Где был?
Найти ещё сообщения от KirillHome

Извини, но что значит «умерла Windows»? Почему ты думаешь, что она умерла, а база — нет? Мне просто кажется, что на последний вздох можно ее оживить, а уж потом вытаскивать базу. Либо с базой ты попрощался. 🙁

Винда последние три (. ) месяца жила на «последнем издыхании».
Что в безопасном режиме, что в обычном — часть служб стартовала, но, видимо, не все.
Возможность хоть что-то запустить (проводник, диспетчер задач) успеха не имели.
Диск подсоединялся к другому компьютеру для проверки — всё работает, сбойных участков нет.

Всё это время в базу писалось и из базы читалось (клиентские программы, установленные на других компьютерах — давали возможность посмотреть отчёты из BioTime, в том числе актуальные).

Сегодня позвонили, сказали — датчики контроля рабочего времени не работают (собственно, кроме работы по связи этих датчиков с базой — ничего на этом компьютере и нет).
После перезагрузки компьютера — они не ожили.

Перенос системных баз данных в SQL Server

Системными БД в SQL являются master , msdb , model , tempdb и малоизвестная служебная БД mssqlsystemresource .
Бывает нужно перенести системные БД SQL в другую папку или на другой диск. Мне вот довелось. Делается это в 2 приема.
Сначала SQL Server нужно будет сначала перенсети master и mssqlsystemresource, а затем оставшиеся msdb, model, tempdb.

В моем примере буду переность базы из
C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLData
в
C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLData NewFolder

Запускаем SQL Server Configuration Manager

SQL Server (MSSQLSERVER) -> Properties
Вкладка Advanced, Startup Parameters
Изменяем пути
-dC:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATANewFoldermaster.mdf;-eC:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGERRORLOG;-lC:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATANewFoldermastlog.ldf

Останавливаем службу SQL

Запускаем SQL в могнопольном режиме и работаем только с базой master
Для этого в cmd набираем команду

net start MSSQLSERVER /c /m /T3608

запускаем sqlcmd -A

набираем 3 строки для изменеия пути к mssqlsystemresource.mdf

1> ALTER DATABASE mssqlsystemresource

2> MODIFY FILE (name = ‘data’, filename = ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataNewFoldermssqlsystemresource.mdf’)

На выходе ответ об успешном применении
The file «data» has been modified in the system catalog. The new path will be used the next time the database is started.

набираем 3 строки для изменеия пути к mssqlsystemresource.ldf

1> ALTER DATABASE mssqlsystemresource

2> MODIFY FILE (name = ‘log’, filename = ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataNewFoldermssqlsystemresource.ldf’)

На выходе ответ об успешном применении
The file «log» has been modified in the system catalog. The new path will be used the next time the database is started.

Выходим из sqlcmd командой QUIT

Останавливаем службу SQL

Переносим файлы .mdf и .ldf от баз mssqlsystemresource и master в новое место

Стартуем SQL как обычно

Далее переносим базы msdb, model, tempdb
в MS SQL Server Management Studio выполняем запросы:

ALTER DATABASE msdb

MODIFY FILE (name = ‘MSDBDATA’, filename = ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataNewFolderMSDBDATA.mdf’)

ALTER DATABASE msdb

MODIFY FILE (name = ‘MSDBLOG’, filename = ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataNewFolderMSDBLOG.ldf’)

ALTER DATABASE model

MODIFY FILE (name = ‘modeldev’, filename = ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataNewFoldermodel.mdf’)

ALTER DATABASE model

MODIFY FILE (name = ‘modellog’, filename = ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataNewFoldermodellog.ldf’)

ALTER DATABASE tempdb

MODIFY FILE (name = ‘tempdev’, filename = ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataNewFoldertempdb.mdf’)

ALTER DATABASE tempdb

MODIFY FILE (name = ‘templog’, filename = ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataNewFoldertemplog.ldf’)

Останавливаем SQL
Переносим файлы .mdf и .ldf в новое место
Стартуем SQL
Всё.

Перенос mdf ldf в sql server на другой компьютер

На практике MSSQL DBA бывают случаи, когда необходимо прикрепить базу SQL и журнала транзакций нет.
ЛИБО лог очень вырос и никакой shrink не помогает уменьшить его размер (модель восстановления simple)
В этом случае, после закрытия всех транзакций, можно сделать Detach базы
После чего переместить-переименовать файл журнала транзакций, и attach-нуть базу следующим скриптом

Если всё хорошо — получим сообщение вида
File activation failure. The physical file name «D:pathdb_log.ldf» may be incorrect.
New log file ‘D:pathdb_log.LDF’ was created.
SQL создаст пустой журнал транзакций на старом месте.
После чего старый лог можно удалить.

Второй способ:Метод / шаг: прикрепить файлы mdf и ldf напрямую

1.Щелкните правой кнопкой мыши «База данных» и выберите «Присоединить», чтобы открыть интерфейс подключения.

2.В интерфейсе «Присоединить базу данных» просто добавьте файл mdf и нажмите «ОК».

Создание базы данных

Базу данных можно создать двумя путями. С помощью интерфейса или SQL запроса.

Создание базы данных MS SQL Server

Для создания запроса нам нужно нажать кнопку «Создать запрос» или «New Querry»

В новом окне пишем:

Где «Magazine» — имя вашей базы. Можно использовать кириллические символы и пробел, но это не рекомендуется. Если в названии стоит пробел, то название стоит выделить в кавычки, например:

Если мы создаем базу, например, для 1С или для задач, где будут использоваться разные кодировки, то кодировка по умолчанию подойдет (latin1_general_cp1_ci_as). 1С все хранит в юникод формате.

Если же мы создаем базу под конкретную задачу, где будут использоваться только кирилические символы мы можем захотеть создать базу с кодировкой, что немного повысит производительность и сохранит место:

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector