Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 восстановить базу данных из .dbf файлов  [new]
DrillDrive
Member

Откуда: Таллинн , Эстония
Сообщений: 254
Всем добрый вечер.

Я счас установил sql server. Теперь нужно восстановить все необходимые БД из .dbf файлов. Почему так получилось , что я не сделал заранее .bak файлы на все пространства таблиц , я не знаю. Раньше я считал , что это не обязательно и что этот процесс нельзя автоматизировать типа в случае крайней необходимости , чтобы через определённый промежуток времени определённые БД создавала/обновляла бэкапы в соответствующей папке
C:\Program Files\Microsoft SQL Server\<servername>\MSSQL\Backup
, чтобы не пришлось постоянно делать это вручную. Но теперь уже слишком поздно: пробный срок предыдущего релиза sql server истёк и я после этого я уже не смог сделать бэкапы на эти файлы даже через консоль sqlcmd. Остались так эти файлы БД в формате .dbf , которые нужно восстановить. То как восстановить пользовательские файлы БД я возможно смогу путём и импорта на сервер БД через sql management studio , но как мне заменить системные БД на те , что остались от предыдущие релиза вроде master , tempdb(список файликов на скрине изображен) и.т.д. Или подобное делать мне нафиг не нужно/не рекомендуется ?

К сообщению приложен файл. Размер - 104Kb
4 мар 17, 07:05    [20262390]     Ответить | Цитировать Сообщить модератору
 Re: восстановить базу данных из .dbf файлов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
DrillDrive
Или подобное делать мне нафиг не нужно/не рекомендуется ?
Зависит от того, какая ваша ценная информация лежит в системных базах. Например, настройки логинов, репликаций и т.д.
Если ничего ценного нет, то можно не восстанавливать.

DrillDrive
восстановить пользовательские файлы БД я возможно смогу путём и импорта на сервер БД через sql management studio
Возможно, сможете.
Я не понимаю мотивов не делать бакапы.
Любая база рано или поздно перестанет работать, как вы планировали восстановить её в этом случае?
4 мар 17, 11:54    [20262626]     Ответить | Цитировать Сообщить модератору
 Re: восстановить базу данных из .dbf файлов  [new]
DrillDrive
Member

Откуда: Таллинн , Эстония
Сообщений: 254
народ , я перепутал. Не .dbf файлы БД находятся в mssql , а .mdf . Извиняюсь. Но вы я надеюсь вопрос понимаете все равно. ))
5 мар 17, 01:33    [20263747]     Ответить | Цитировать Сообщить модератору
 Re: восстановить базу данных из .dbf файлов  [new]
DrillDrive
Member

Откуда: Таллинн , Эстония
Сообщений: 254
alexeyvg,

автор
Я не понимаю мотивов не делать бакапы.


Всё очень просто. Просто я раньше не знал их важности при работе с серверами. Теперь знаю. Но все равно считаю , что базу можно восстановить из файлов базы данных .mdf , не только из бэкапов только и всего.

Ок. я уже решился восстановить эти системные файлы , что том скрине. Но вопрос: как заменить те файлы БД на те , что у меня в списке ? А то просто так напролом их переместить в папку DATA и заменить текущие это не правильный способ , да и не выйдет (из за ограничения прав доступа).

Прошу ответьте. Скажите , куда копать ).
5 мар 17, 03:50    [20263798]     Ответить | Цитировать Сообщить модератору
 Re: восстановить базу данных из .dbf файлов  [new]
Massa52
Member

Откуда:
Сообщений: 388
DrillDrive,
Может статья поможет?
https://heap.tech/lore/id2
5 мар 17, 07:06    [20263868]     Ответить | Цитировать Сообщить модератору
 Re: восстановить базу данных из .dbf файлов  [new]
iljy
Member

Откуда:
Сообщений: 8711
DrillDrive
alexeyvg,

автор
Я не понимаю мотивов не делать бакапы.


Всё очень просто. Просто я раньше не знал их важности при работе с серверами. Теперь знаю. Но все равно считаю , что базу можно восстановить из файлов базы данных .mdf , не только из бэкапов только и всего.

Ок. я уже решился восстановить эти системные файлы , что том скрине. Но вопрос: как заменить те файлы БД на те , что у меня в списке ? А то просто так напролом их переместить в папку DATA и заменить текущие это не правильный способ , да и не выйдет (из за ограничения прав доступа).

Прошу ответьте. Скажите , куда копать ).


Вы можете объяснить, зачем вам нужно восстанавливать системные базы? Если не можете, значит вам это не нужно. Что касается пользовательских, то да, их можно просто присоединить (если прав хватит и версия сервера будет такая же или новее), но бакапов это не заменяет.
5 мар 17, 09:15    [20263910]     Ответить | Цитировать Сообщить модератору
 Re: восстановить базу данных из .dbf файлов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
DrillDrive
Не .dbf файлы БД находятся в mssql , а .mdf
Расширения файлов не имеют значения.
DrillDrive
Просто я раньше не знал их важности при работе с серверами
А при работе с не-серверами бакапы не нужны, что ли?
Я повторю - любая информация на дисках рано или поздно гарантированно пропадает.
Бакапы не нужны только в том случае, если хранимая информация вам не нужна, независимо от того, серверы это, телефоны, игровые ПК и т.д.
DrillDrive
А то просто так напролом их переместить в папку DATA и заменить текущие это не правильный способ
Если бакапов нет, то это правильный способ, почему нет? Но может не сработать.
DrillDrive
да и не выйдет (из за ограничения прав доступа).
В любом случае для восстановления данных права нужны.
Как вы планируете восстановить данные, не имея на это прав? Обратитесь тогда к тому, кто имеет эти права на сервере.
DrillDrive
Ок. я уже решился восстановить эти системные файлы , что том скрине.
Мне кажется, это не нужно.
Но дело ваше. Только внимательно сравните версии, вплоть до номера билда, они должны совпадать.
Для подстановки пользовательских баз достаточно, что бы совпали старшие номера версий.
5 мар 17, 13:06    [20264253]     Ответить | Цитировать Сообщить модератору
 Re: восстановить базу данных из .dbf файлов  [new]
DrillDrive
Member

Откуда: Таллинн , Эстония
Сообщений: 254
Спасибо всем и особенно alexeyvg за вашу помощь. Я наконец-то нашёл благодаря вам , то что искал.
В результате оказалось , что системные базы данных могут быть восстановлены только из резервных
копий и они не должны быть при этом созданы версией sql server выше , чем та которая у тебя уже стоит и с какой будет идти восстановление резервной копий. А также ещё понял пару важных моментов:

  • База данных model содержит информацию о структуре объектов базы данных(их шаблоны), часть которой записывается в системных таблицах и изменяется , если в пользовательских БД произошли изменения. А БД master в свою очередь отвечает за работу с представлениями , таблицами и другими пользовательскими объектами так как без этой БД sql сервер не заработает , если не сломается. И поэтому с каждом импортом новой пользовательской БД на сервер , инфо в таблицах БД model сами будут перестраиваться и перезаписывать(инфа о объектах БД , которые загружаются на сервер сохраняется автоматом) , чтобы система адаптировалось под то количество пользовательских баз и её содержимое , что я уже имею, и поэтому мне уже не надо парится за инфу системной бд model , что я юзал в предыдущем релизе.

  • База данных master содержит всю информацию о sql server, о параметрах конфигурации его экземпляра БД , серверах подключённых к текущему экземпляру, метаданные о входах в учётную запись и прочую важную информацию пользовательских БД. Но с учётом того , что я настройки конфигурации не трогал в предыдущем релизе да и если учесть предыдующие пункты, то мне тоже восстанавливать и из master ничего не надо.

  • tempdb хранит временные и кешированные (промежуточные )объекты БД. Не велика потеря. Я ими и так не пользовался

  • про msdb и системные ресурсы тоже самое. и без .bak файлов этих баз данных восстановление будет очень кривым.

    В общем спасибо вам за то , что вы мне помогли понять это.
  • 12 мар 17, 01:56    [20286015]     Ответить | Цитировать Сообщить модератору
     Re: восстановить базу данных из .dbf файлов  [new]
    DrillDrive
    Member

    Откуда: Таллинн , Эстония
    Сообщений: 254
    автор
    будут перестраиваться и перезаписывать


    будет перестраиваться и перезаписываться.

    Оговорился
    12 мар 17, 01:59    [20286020]     Ответить | Цитировать Сообщить модератору
     Re: восстановить базу данных из .dbf файлов  [new]
    alexeyvg
    Member

    Откуда: Moscow
    Сообщений: 31983
    DrillDrive
    tempdb хранит временные и кешированные (промежуточные )объекты БД. Не велика потеря. Я ими и так не пользовался
    tempdb используют как приложения, так и само ядро сиквела.
    База tempdb создаётся заново при каждом старте SQL Server, так что её бакап и восстановление не имеет смысла, и не осуществимо технически.
    DrillDrive
    База данных model содержит информацию о структуре объектов базы данных(их шаблоны), часть которой записывается в системных таблицах и изменяется , если в пользовательских БД произошли изменения. А БД master в свою очередь отвечает за работу с представлениями , таблицами и другими пользовательскими объектами так как без этой БД sql сервер не заработает , если не сломается. И поэтому с каждом импортом новой пользовательской БД на сервер , инфо в таблицах БД model сами будут перестраиваться и перезаписывать(инфа о объектах БД , которые загружаются на сервер сохраняется автоматом) , чтобы система адаптировалось под то количество пользовательских баз и её содержимое , что я уже имею, и поэтому мне уже не надо парится за инфу системной бд model , что я юзал в предыдущем релизе.
    Ваши представления не совсем правильные, объём новой информации слишком велик, и всё перепуталось :-)

    Всё даже несколько проще.

    База данных model - это просто база, которая используется как шаблон при создании любой новой базы.
    Ничего там не меняется, если "в пользовательских БД произошли изменения"

    БД master - системная база.
    Там находится список всех остальных баз, и серверные объекты, например, список логинов или связанных серверов.
    К пользовательским объектам БД master не имеет никакого отношения.

    БД msdb хранит информацию о неких "системных", но относящихся к вспомогательным, подсистемах SQL Server.
    Например, к подсистеме SQL Server Agent (джобы), или к планам обслуживания.

    Вот исходя из этого и нужно планировать резервное копирование и восстановление системных баз.

    model - обычно не копируют, и вообще обычно её не трогают.
    master - делают резервную копию для восстановления сервера как есть, без переносов на другую машину, обновления версии и т.д. - "быстрое восстановление" существующей системы.
    tempdb - бакап не делают
    msdb - делают бакапы, для сохранения и копирования настроек вспомогательных подсистем сиквела.
    DrillDrive
    Спасибо всем и особенно alexeyvg за вашу помощь.
    Спасибо :-)
    12 мар 17, 12:24    [20286424]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить