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

Откуда:
Сообщений: 38
Создал резервные копии аналогично статье http://msdn.microsoft.com/ru-ru/library/ms190218(v=sql.105).aspx
В бд 2 файловые группы primari - чтение и запись, history - только чтение. Стояла задача организовать создание полного бэкапа раз в неделю, а дифференцированных каждый день. Используется простая модель восстангвления. Сделал как описано в статье: бэкап с параметром read_write_filegroups (туда попали только данные примари) и отдельно бэкап фг history. каждый день делаю диф бэкапы ,read_write_filegroup. Все делается замечательно и восстанавливается на рабочую базу. Но если я пытаюсь поднять копию базы на только созданную бд, то получаю сообщение о том, что бэкап не соответствует этой базе данных. Приходится предварительно разворачивать у копию какой нибудь старый полный бэкап со всеми фг, и потом уже на него восстанавливать, примари, историю и пот диф примари. Это так и должно быть? Или как то можно сразу получить рабочую базу используя только бэкапы фг по отдельности?
21 май 13, 17:57    [14328977]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление из частичной резервной копии  [new]
Glory
Member

Откуда:
Сообщений: 104751
sereban
Но если я пытаюсь поднять копию базы на только созданную бд, то получаю сообщение о том, что бэкап не соответствует этой базе данных. Приходится предварительно разворачивать у копию какой нибудь старый полный бэкап со всеми фг, и потом уже на него восстанавливать, примари, историю и пот диф примари. Это так и должно быть? Или как то можно сразу получить рабочую базу используя только бэкапы фг по отдельности?

Для восстановления полного бэкапа вообще не нужна никакая база
А при восстановлении поверх какой-то существующей базы нужно указывать расположение всех файлов через MOVE
21 май 13, 18:01    [14329005]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление из частичной резервной копии  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
во вновь созданной БД структура ФГ не соответствует разворачиваемой(создаётся по умолчанию одна только праймари). Допилите ручками до идентичной и ресторте.
21 май 13, 18:02    [14329019]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление из частичной резервной копии  [new]
sereban
Member

Откуда:
Сообщений: 38
stavgreengo
во вновь созданной БД структура ФГ не соответствует разворачиваемой(создаётся по умолчанию одна только праймари). Допилите ручками до идентичной и ресторте.


Не помогает
"Резервный набор данных содержит копию базы данных, отличной от существующей базы данных"
25 май 13, 16:47    [14349197]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление из частичной резервной копии  [new]
sereban
Member

Откуда:
Сообщений: 38
Бэкап primary сделан вот так (напоминаю что модель восстановления БД простая):

DECLARE @Name varchar(46), @fullname varchar(70)
SET @Name = REPLACE (REPLACE (REPLACE ('RNG_Volgograd_backup_'+convert(varchar(25),SYSDATETIME(),20)+'.fullbak', ':', ''),'-','_'),' ','_');
SET @fullname = 'E:\BACKUP\RNG_Volgograd\' + @Name;
BACKUP DATABASE [RNG_Volgograd] READ_WRITE_FILEGROUPS TO DISK = @fullname WITH NOFORMAT, NOINIT, NAME = @Name, SKIP, REWIND, NOUNLOAD, COMPRESSION, STATS = 10, CHECKSUM

Бэкап HISTORY:
BACKUP DATABASE [RNG_Volgograd] FILEGROUP = 'HISTORY' TO DISK = @fullname WITH NOFORMAT, NOINIT, NAME = @Name, SKIP, REWIND, NOUNLOAD, COMPRESSION, STATS = 10, CHECKSUM

Вот эти быкапы успешно ресторятся на существующую БД. А на новую вообще возможно их развернуть? Нигде не могу найти инфу конкретно по восстановлению на новую БД.
25 май 13, 16:52    [14349205]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление из частичной резервной копии  [new]
mike909
Member

Откуда:
Сообщений: 662
sereban,

sereban
Приходится предварительно разворачивать у копию какой нибудь старый полный бэкап со всеми фг, и потом уже на него восстанавливать, примари, историю и пот диф примари. Это так и должно быть? Или как то можно сразу получить рабочую базу используя только бэкапы фг по отдельности?

1) Каждая файловая группа кроме имени имеет GUID, на который смотрит "Restore database".
Если создать совершенно новую БД со структурой "идентичной" восстанавливаемой, то к ней невозможно прицепить файловые группы от другой БД - ни копированием файлов, ни частичным backup_ом. Следовательно - создавать новую БД, в которую потом пытаться восстановить другую БД не имеет никакого смысла.
2) Все метаданные хранятся в группе [PRIMARY]. Для восстановления частичных backup_ов необходимо сначала восстановить Backup с группой [PRIMARY], а затем уже все остальные, если в них есть необходимость.

PS. В Вашем случае backup READ_WRITE файловых групп с логом является базовым backup_ом, к которому добавив backup всех Read_Only файловых групп без лога, получим полный backup БД.
25 май 13, 19:26    [14349506]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление из частичной резервной копии  [new]
sereban
Member

Откуда:
Сообщений: 38
mike909
sereban,

sereban
Приходится предварительно разворачивать у копию какой нибудь старый полный бэкап со всеми фг, и потом уже на него восстанавливать, примари, историю и пот диф примари. Это так и должно быть? Или как то можно сразу получить рабочую базу используя только бэкапы фг по отдельности?

1) Каждая файловая группа кроме имени имеет GUID, на который смотрит "Restore database".
Если создать совершенно новую БД со структурой "идентичной" восстанавливаемой, то к ней невозможно прицепить файловые группы от другой БД - ни копированием файлов, ни частичным backup_ом. Следовательно - создавать новую БД, в которую потом пытаться восстановить другую БД не имеет никакого смысла.
2) Все метаданные хранятся в группе [PRIMARY]. Для восстановления частичных backup_ов необходимо сначала восстановить Backup с группой [PRIMARY], а затем уже все остальные, если в них есть необходимость.

PS. В Вашем случае backup READ_WRITE файловых групп с логом является базовым backup_ом, к которому добавив backup всех Read_Only файловых групп без лога, получим полный backup БД.


Насчет 1) Догадывался. 2) и PS. Это и так было понятно. У меня всего 2 ФГ. Одна READ_WRITE в первом бэкапе (primary), другая Read_Only во втором (history).

Подскажите, какие действия я должен сделать чтобы поднять бэкап? Согласно 2): "Для восстановления частичных backup_ов необходимо сначала восстановить Backup с группой [PRIMARY]". Я именно это и пытаюсь сделать в первую очередь, в результате получаю все тоже сообщение об ошибке.
25 май 13, 21:04    [14349649]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление из частичной резервной копии  [new]
sereban
Member

Откуда:
Сообщений: 38
Пытался при помощи SSMS - нифига. Пробовал еще так:
RESTORE DATABASE Volgograd_test_backup
READ_WRITE_FILEGROUPS -- пробовал еще так FILEGROUP='PRIMARY'
FROM DISK = 'E:\BACKUP\RNG_Volgograd\RNG_Volgograd_backup_2013_05_19_225446.fullbak' -- текст создания быкапа описан выше для READ_WRITE_FILEGROUPS
WITH
-- и так пробовал PARTIAL,
-- и так REPLACE,
--MOVE 'RNG_Volgograd' TO 'D:\RNG\Volgograd_test_backup\Volgograd_test_backup.mdf',
-- MOVE 'RNG_Volgograd_History' TO 'D:\RNG\Volgograd_test_backup\Volgograd_test_backup_History.ndf',
-- MOVE 'RNG_Volgograd_log' TO 'D:\RNG\Volgograd_test_backup\Volgograd_test_backup_log.ldf',
NORECOVERY -- и так RECOVERY

В результате одно и тоже сообщение
25 май 13, 21:11    [14349662]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление из частичной резервной копии  [new]
mike909
Member

Откуда:
Сообщений: 662
sereban
В результате одно и тоже сообщение

И какая, если не секрет ?
sereban
"Резервный набор данных содержит копию базы данных, отличной от существующей базы данных"

Т.е. Вы упорно хотите восстановить backup в свежесозданную БД ?
Попробуйте все-таки указать новое имя БД.
restore database NewUniqueNameBD filegroup='primary'
from disk='...'
with recovery,
move 'logical_file_name_Primary' TO 'operating_system_file_name'
,move 'LogFileName' TO 'operating_system_file_name'

А еще, что вернет
restore filelistonly from disk='BackupFileName' -- ???
25 май 13, 23:03    [14349920]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление из частичной резервной копии  [new]
sereban
Member

Откуда:
Сообщений: 38
mike909
sereban
В результате одно и тоже сообщение

И какая, если не секрет ?
sereban
"Резервный набор данных содержит копию базы данных, отличной от существующей базы данных"

Т.е. Вы упорно хотите восстановить backup в свежесозданную БД ?
Попробуйте все-таки указать новое имя БД.
restore database NewUniqueNameBD filegroup='primary'
from disk='...'
with recovery,
move 'logical_file_name_Primary' TO 'operating_system_file_name'
,move 'LogFileName' TO 'operating_system_file_name'

А еще, что вернет
restore filelistonly from disk='BackupFileName' -- ???


Спасибо конечно. Но, раз Вы знали, почему нельзя было просто посоветовать восстанавливать в НОВУЮ ("несуществующую") БД. Сразу стало бы все понятно. даже не знал что так можно.

Я уже зае.....ся копаться в BOL и на msdn, хоть бы где-нибудь было написано про это.

В общем, СПАСИБО, получилось)
25 май 13, 23:38    [14349981]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление из частичной резервной копии  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
sereban
Но, раз Вы знали, почему нельзя было просто посоветовать восстанавливать в НОВУЮ ("несуществующую") БД?
FacePalm.JPG чёрт возьми.

Певое сообщение: 14329005
Glory
Для восстановления полного бэкапа вообще не нужна никакая база
Певое сообщение от mike909: 14349506
mike909
1) ... Следовательно - создавать новую БД, в которую потом пытаться восстановить другую БД не имеет никакого смысла.
Но ваш ответ следом: 14349649
sereban
Насчет 1) Догадывался
<бьётся головой об стену>
26 май 13, 14:10    [14350647]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить