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

Откуда:
Сообщений: 17
HELP!!! На MSSQL7.0 полетела база данных (suspect). Файл mdf имеет размер 0, а файл ldf - 1.3Gb. Как восстановить данные? Использовал следующее, но не помогло:
EXEC sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
GO
BEGIN TRAN
UPDATE master..sysdatabases
SET status = status | 32768
WHERE name = 'MyDatabase'
IF @@ROWCOUNT = 1
BEGIN
COMMIT TRAN
RAISERROR('emergency mode set', 0, 1)
END
ELSE
BEGIN
ROLLBACK
RAISERROR('unable to set emergency mode', 16, 1)
END
GO
EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
GO
-- Restart SQL Server at this point.
DBCC REBUILD_LOG('MyDatabase','C:\MyDatabase.ldf')
GO
DBCC CHECKDB('<db_name>', REPAIR_ALLOW_DATA_LOSS)
GO
ALTER DATABASE MyDatabase SET MULTI_USER
GO
-- Set database options and recovery model as desired.
GO
25 апр 06, 19:38    [2602204]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
Остановите SQL сервер и попробуйте восстановить mdf-файл с помощью какой-либо утилиты по восстановлению потерянных файлов, например, R-Studio. Если получится - запустите SQL-сервер. Если база останется в suspect, то в FAQ найдете, как восстанавливать базу по mdf без ldf.

Вообще-то, нужно периодически делать бекап базы данных.
25 апр 06, 20:21    [2602321]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
А еще в таких случаях очень не рекомендуется запускать ремонтные скрипты, смысл которых вы не понимаете, можно лишиться последнего шанса на восстановление.
25 апр 06, 20:24    [2602336]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
злой шаман
А еще в таких случаях очень не рекомендуется запускать ремонтные скрипты, смысл которых вы не понимаете, можно лишиться последнего шанса на восстановление.
+1
25 апр 06, 20:29    [2602343]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
ICS-support
Member

Откуда:
Сообщений: 17
Содержимое скрипта "приблизительно" понимаю, просто других идей больше не было. За R-Studio спасибо, завтра обязательно попробую.
25 апр 06, 23:39    [2602626]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
ICS-support
Member

Откуда:
Сообщений: 17
Восстановить с помощью R-Studio не удалось.
Prolog
Если база останется в suspect, то в FAQ найдете, как восстанавливать базу по mdf без ldf.

Как я понимаю, скрипт приведенный выше и производит восстановление ldf по mdf (пересоздает лог). У меня mdf - 0 kb. Возможна ли обратная операция - восстановить data по log-у.
26 апр 06, 10:40    [2603379]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
ICS-support
Восстановить с помощью R-Studio не удалось.
Prolog
Если база останется в suspect, то в FAQ найдете, как восстанавливать базу по mdf без ldf.

Как я понимаю, скрипт приведенный выше и производит восстановление ldf по mdf (пересоздает лог). У меня mdf - 0 kb. Возможна ли обратная операция - восстановить data по log-у.
В вашем случае нет. Даже LogExplorer не поможет.
26 апр 06, 10:42    [2603387]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
Glory
Member

Откуда:
Сообщений: 104760
ICS-support
Восстановить с помощью R-Studio не удалось.
Prolog
Если база останется в suspect, то в FAQ найдете, как восстанавливать базу по mdf без ldf.

Как я понимаю, скрипт приведенный выше и производит восстановление ldf по mdf (пересоздает лог). У меня mdf - 0 kb. Возможна ли обратная операция - восстановить data по log-у.

А что ваш ldf файл не бэкапился с момента создания базы ?
Т.е. включает в себя информацию о всех выполненых командах create/alter ?
26 апр 06, 10:42    [2603388]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
ICS-support
Member

Откуда:
Сообщений: 17
Выглядело все следующим образом: была создана чистая база на которой подняли из бэкапа пустые таблицы, хр.процедуры и т.д. Через пол года работы был снят полный бэкап базы (Database - Complete). Еще через год работы все поломалось. В свойствах базы данных Recovery model: Simple.
26 апр 06, 11:15    [2603608]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
Glory
Member

Откуда:
Сообщений: 104760
В свойствах базы данных Recovery model: Simple.
Бай-бай, база
26 апр 06, 11:19    [2603636]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
ICS-support
Member

Откуда:
Сообщений: 17
Всем большое спасибо.
26 апр 06, 11:22    [2603666]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
ICS-support
Member

Откуда:
Сообщений: 17
Еще проблемы. На восстановленой базе (боченок желтого цвета) при попытке просмотреть таблицы получаю ошибку:

Error 823: I/O error (bad page ID) detected during read of BUF pointer = 0x11475140,page ptr=0x20aaa000, pageid=(0x1:0x11), dbid=8,status=0x801, file=c:\......MDF.

При попытке проделать следующее:
Use master
go
sp_dboption 'IVSDatabase', 'single_user', 'true'
go
USE IVSDatabase
GO
DBCC CHECKALLOC('IVSDatabase', REPAIR_ALLOW_DATA_LOSS)
go

получаю сообщение от QA:
The database already is single user.
Server: Msg 8909, Level 16, State 1, Line 1
Table Corrupt: Object ID 773577794, index ID 4, page ID (1:295). The PageId in the page header = (1:318).
Server: Msg 8966, Level 16, State 1, Line 1
Could not read and latch page (1:295) with latch type SH. sysindexes failed.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Помогите сохранить информацию из таблиц.
26 апр 06, 14:11    [2604943]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Восстановление mdf из ldf.  [new]
Pashok__
Member

Откуда:
Сообщений: 5
Случилась беда, и требуется сабж,
База за все время не восстанавливалась из бэкапа.
как это осуществить? MSSQL 2008.
3 сен 09, 15:57    [7613814]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
newalex
Member

Откуда: Москва
Сообщений: 33
если стоит simple - то токка бекап , всё ничего другого,но если ldf большой разер значит не симпле ? и значит есть шанс ?
____________________________
я не волшебник, я только учусь
3 сен 09, 23:50    [7615768]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
guesturi
Member

Откуда:
Сообщений: 23
Microsoft SQL Server 2005 - 9.00.3033.00 (Intel X86) Dec 6 2006 17:53:12 Copyright (c) 1988-2005 Microsoft Corporation Express Edition on Windows NT 5.1 (Build 2600: Service Pack 3)


Если есть файл *.LDF - можно ли востановить MDF?
также остался вчерашний bak

если да, то как?
В свойствах базы данных Recovery model: Simple.
7 окт 09, 10:50    [7751880]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
[quot newalex]если стоит simple - то токка бекап , всё ничего другого,но если ldf большой разер значит не симпле ? и значит есть шанс ?

штатными средствами - нет шанса. Штатными средствами полный бэкап нужен все равно.

а тип recovery можно посмотреть в свойствах базы... simple или не simple.
вообще, администратор БД всегда должен знать какая модель восстановления у баз. Ибо стратегия резервного копирования и восстановления - первый шаг при работе с любой базой
7 окт 09, 13:06    [7752973]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
guesturi
Microsoft SQL Server 2005 - 9.00.3033.00 (Intel X86) Dec 6 2006 17:53:12 Copyright (c) 1988-2005 Microsoft Corporation Express Edition on Windows NT 5.1 (Build 2600: Service Pack 3)


Если есть файл *.LDF - можно ли востановить MDF?
также остался вчерашний bak

если да, то как?
В свойствах базы данных Recovery model: Simple.


восстановить Вы сможете только вчерашний bak, т.е. базу в состоянии на момент вчерешнего полного бэкапа.

Ремарка: когда люди делают 1 полный бэкап 1 раз в день, предполагается, что они понимают и согласны, что потеря изменений за день является приемлемой. Если это не так, то надо пересматривать сколько и какие бэкапы делать, и когда.
7 окт 09, 13:11    [7753012]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление mdf из ldf.  [new]
guesturi
Member

Откуда:
Сообщений: 23
я так и думал, bak делается раз в день, так как данные внесенные за день важны, но потеря не является смертельной, будем восстанавливать из бумажных носителей (хвала бюрократии)

Спасибо.
7 окт 09, 13:30    [7753213]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить