none
Восстановление базы данных из ldf RRS feed

  • Вопрос

  • Упал виртуальный сервер, вчера подняли новый и накатили бекап за 12.02.14 число бекап, можно ли восстановить базу имея лог ldf за 24.12.14 число 
    25 февраля 2014 г. 3:12

Ответы

  • ну тогда молитесь :) т.к. документированного способа нет...но можно попробовать:

    1) создать новую БД с именем вашей БД

    2) подсунуть копию ldf-файла (именно копию...сам файл не загубите :) )

    3) в случаи успешного рестарта, снять бэкап лога

    4) поднять ваш старый полный бэкап, попробовать накатить бэкап лога

    ЗЫ: Все системные администраторы делятся на две категории: на тех кто не делает бэкапы и тех кто их уже делает


    http://www.t-sql.ru

    25 февраля 2014 г. 5:50
    Отвечающий

Все ответы

  • А файлы mdf(ndf) есть? Есть бэкап лога?


    http://www.t-sql.ru

    25 февраля 2014 г. 4:01
    Отвечающий
  • Есть тока .ldf хотелось бы накатить этот лог на базу 
    25 февраля 2014 г. 4:43
  • А каким образом у вас остался файл .ldf и при этом нет файла .mdf? Ведь БД может существовать только если есть, как минимум оба этих файла. Вы уверены, что этот файл вообще рабочий и от вашей БД?


    http://www.t-sql.ru

    25 февраля 2014 г. 4:57
    Отвечающий
  • Все хранилось на разных дисках и по этому смогли тока вытащить .ldf за 24.02.14 и остался бекап .bak за 12.02.14 а .mdf хранился на другом системном диске который упал и уже не восстановить все крутилось на hyper-v
    25 февраля 2014 г. 5:03
  • ну тогда молитесь :) т.к. документированного способа нет...но можно попробовать:

    1) создать новую БД с именем вашей БД

    2) подсунуть копию ldf-файла (именно копию...сам файл не загубите :) )

    3) в случаи успешного рестарта, снять бэкап лога

    4) поднять ваш старый полный бэкап, попробовать накатить бэкап лога

    ЗЫ: Все системные администраторы делятся на две категории: на тех кто не делает бэкапы и тех кто их уже делает


    http://www.t-sql.ru

    25 февраля 2014 г. 5:50
    Отвечающий
  • Ну мы так и пытаемся сделать создаем новую бд восстанавливаем с бэкапа последнего и сейчас хотим подменить ему лог этот который остался, позже отпишусь что будет =(
    25 февраля 2014 г. 6:21
  • Ну мы так и пытаемся сделать создаем новую бд восстанавливаем с бэкапа последнего и сейчас хотим подменить ему лог этот который остался, позже отпишусь что будет =(

    нет, вы не читаете то, что я написал...лог нужно подменять НОВОЙ ПУСТОЙ БД...делать БЭКАП...и уже через накатывание ПОЛНЫЙ БЭКАП + БЭКАП ЛОГА восстанавливать вашу БД

    http://www.t-sql.ru

    25 февраля 2014 г. 6:33
    Отвечающий
  • Лог получилось подменить, тока при создание бэкапа лога не удается создать

    ===================================

    Действие Резервное копирование завершилось неудачно для объекта "Сервер" "SERV-ACKOH4".  (Microsoft.SqlServer.SmoExtended)

    ------------------------------
    Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.4000.0+((KJ_PCU_Main).120628-0827+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Резервное+копирование+Server&LinkId=20476

    ------------------------------
    Расположение программы:

       в Microsoft.SqlServer.Management.Smo.Backup.SqlBackup(Server srv)
       в Microsoft.SqlServer.Management.SqlManagerUI.BackupPropOptions.OnRunNow(Object sender)

    ===================================

    System.Data.SqlClient.SqlError: Не удалось открыть базу данных "base_test" вследствие недоступности файлов, нехватки памяти или места на диске. Подробности см. в журнале ошибок SQL Server. (Microsoft.SqlServer.Smo)

    ------------------------------
    Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.4000.0+((KJ_PCU_Main).120628-0827+)&LinkId=20476

    ------------------------------
    Расположение программы:

       в Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQueryWithMessage(StringCollection queries, ServerMessageEventHandler dbccMessageHandler, Boolean errorsAsMessages)
       в Microsoft.SqlServer.Management.Smo.BackupRestoreBase.ExecuteSql(Server server, StringCollection queries)
       в Microsoft.SqlServer.Management.Smo.Backup.SqlBackup(Server srv)

    25 февраля 2014 г. 7:28
  • http://msdn.microsoft.com/en-us/library/ms179314.aspx

    ну и не спросил сразу, а какая модель восстановления вообще у вашей БД?


    http://www.t-sql.ru

    25 февраля 2014 г. 8:06
    Отвечающий
  • Полная
    25 февраля 2014 г. 8:20
  • Игра с бубном вообщем идет 
    25 февраля 2014 г. 10:56
  • ну вот если бы во время делали бэкапы, то проблем бы не было :)

    бэкап лога получилось сделать?


    http://www.t-sql.ru

    25 февраля 2014 г. 11:08
    Отвечающий
  • Упал виртуальный сервер, вчера подняли новый и накатили бекап за 12.02.14 число бекап, можно ли восстановить базу имея лог ldf за 24.12.14 число 

    Насколько я помню, даже при неработающей БД (из-за поврежденного/отсутсвующего файла данных) можно сделать реззервную копию журнала транзакций, если его файл цел (фича появилась в SQL 2000, и если ее не выпилили - должно сработать).

    А при наличии этой копии - все элементарно: восстанавливаете сначала бэкап (указав, что не надо накатывать транзакции), затем - журнал транзакций.

    PS Способ, кстати - вполне документированный.


    Слава России!


    • Изменено M.V.V. _ 25 февраля 2014 г. 14:40
    25 февраля 2014 г. 14:39
  • Время вышло так ка пользователей нужно пускать в работу, пришлось восстановиться на 12 число, создали задание бэкапа и сегодня будем писать скрип что-бы бэкап копировался на хранилку воть, как то так серв просто раньше админил другой пользователей, теперь он в наших руках =)))
    26 февраля 2014 г. 10:37