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

Откуда:
Сообщений: 228
Кому нибудь доводилось работать с этим сервисом? Меня интересует возможно самый главный вопрос.
25 окт 11, 13:44    [11495243]     Ответить | Цитировать Сообщить модератору
 SQL VSS Writer  [new]
=Ozzy=
Member

Откуда:
Сообщений: 228
Извиняюсь. Не получилось дописать вопрос. Он заключается в следующем.
Как можно восстановить БД с другим именем. SetRestoreOptions вроде требует строку вида "New component name=new name". Перепробывал все варианты, но ничего не работает. Второй вопрос по этой же теме. Я забэкапил БД на одной машине с помощью VSS а хочу восстановить на другой с помощью VSS. Вот только беда в том, что в метаданных храниться логический путь типа host\instance. Решение нашел, но оно тупое. Я просто меняю в xml файле имя БД, имя instance или host и все работате. Но есть ли другое, красивое решение???? Заранее спасибо.
25 окт 11, 13:49    [11495303]     Ответить | Цитировать Сообщить модератору
 SQL VSS Writer  [new]
=Ozzy=
Member

Откуда:
Сообщений: 228
Буду очень благодарен помощи.
25 окт 11, 16:32    [11497091]     Ответить | Цитировать Сообщить модератору
 Re: SQL VSS Writer  [new]
Exploder13
Member

Откуда:
Сообщений: 3
У меня недавно тоже была такая задача - восстановить забэкапленую базу данных на другой инстанс. К сожалению, другого пути, кроме как правка метаданных, скорее всего, не существует.
По поводу SetRestoreOptions. Мне удалось с помощью строки "New Component Name"="<New name>" переименовать базу данных. Но тут и сама Микрософт пишет, что - цитирую: "The SQL writer currently does not support “Rename across Instances” to move a database to a new instance." Т.е. нельзя помувить базу в другой инстанс путем её переименования.
31 окт 11, 13:09    [11525923]     Ответить | Цитировать Сообщить модератору
 Re: SQL VSS Writer  [new]
=Ozzy=
Member

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

Спасибо за помощь. Видимо людей работавших тесно с SQLWriter можно на пальцах сосчитать.
Вот только как я не пробовал устанавливать SetRestoreOptions переименование не проходило.
Если написать SetRestoreOptions("New Component Name=test001"), то в xml просто появиться строчка
setRestoreOptions= "New Component Name=test001". Далее writer перестает отвечать. Работаю с SQL 2008 R2 и Denali.
Если можно рад был бы небольшому коду где именно выставляются эти опции. Может я какие-нибудь кавычки пропустил.
Я перерыл весь интернет, но документации кроме "SQL Writer in SQL Server 2005: A Guide for SQL Server Backup Application Vendors" не существует. А там практически ничего толком не описано. К кому обращаться даже не знаю и не понимаю я людей из microsoft. Как можно пользоваться недокументированным продуктом? Для кого он?
31 окт 11, 16:34    [11527932]     Ответить | Цитировать Сообщить модератору
 Re: SQL VSS Writer  [new]
Exploder13
Member

Откуда:
Сообщений: 3
У меня код такой:
static const wchar_t options[] = L"\"New Component Name\"=\"MyDb_Restored\"";
VssComponents->SetRestoreOptions(AsWindowsGuid(WriterClassId), Type, LogicalPath.c_str(), Name.c_str(), options);

После восстановления базы (оригинальное имя которой MyDb), имя у нее стало MyDb_Restored.
1 ноя 11, 11:33    [11531324]     Ответить | Цитировать Сообщить модератору
 Re: SQL VSS Writer  [new]
=Ozzy=
Member

Откуда:
Сообщений: 228
Спасибо огромное. Буду пробывать.
По поводу перемещения в другой instance, host. Разработчик SQLWriter написал, что нет такой возможности, но она появиться в ближайшем будущем. А изменение xml файла это не протестированная возможность, которая может и не работать.
1 ноя 11, 19:23    [11535492]     Ответить | Цитировать Сообщить модератору
 Re: SQL VSS Writer  [new]
pim_85
Member

Откуда:
Сообщений: 2
Exploder13
У меня код такой:
static const wchar_t options[] = L"\"New Component Name\"=\"MyDb_Restored\"";
VssComponents->SetRestoreOptions(AsWindowsGuid(WriterClassId), Type, LogicalPath.c_str(), Name.c_str(), options);

После восстановления базы (оригинальное имя которой MyDb), имя у нее стало MyDb_Restored.


я пробивал, і вот що я получул:

Sqllib error: OLEDB Error encountered calling ICommandText::Execute. hr = 0x80040e14. SQLSTATE: 42000, Native Error: 3013
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 10.0
Error message: RESTORE DATABASE is terminating abnormally.
SQLSTATE: 42000, Native Error: 3119
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 10.0
Error message: Problems were identified while planning for the RESTORE statement. Previous messages provide details.
SQLSTATE: 42000, Native Error: 3156
Error state: 4, Severity: 16
Source: Microsoft SQL Server Native Client 10.0
Error message: File 'WSS_Content_log' cannot be restored to 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.FARM\MSSQL\DATA\WSS_Content_log.LDF'. Use WITH MOVE to identify a valid location for the file.
SQLSTATE: 42000, Native Error: 1834
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 10.0
Error message: The file 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.FARM\MSSQL\DATA\WSS_Content_log.LDF' cannot be overwritten. It is being used by database 'WSS_Content'.
SQLSTATE: 42000, Native Error: 3156
Error state: 4, Severity: 16
Source: Microsoft SQL Server Native Client 10.0
Error message: File 'WSS_Content' cannot be restored to 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.FARM\MSSQL\DATA\WSS_Content.mdf'. Use WITH MOVE to identify a valid location for the file.
SQLSTATE: 42000, Native Error: 1834
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 10.0
Error message: The file 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.FARM\MSSQL\DATA\WSS_Content.mdf' cannot be overwritten. It is being used by database 'WSS_Content'.
12 сен 12, 13:42    [13151612]     Ответить | Цитировать Сообщить модератору
 Re: SQL VSS Writer  [new]
pim_85
Member

Откуда:
Сообщений: 2
ну а вообще, это хорошо, что есть такие как вы, которые работают с VSS SQL Writer ... а то документация довольно слабанька и к тому с ошибками, спросить не у кого ... все приходится делать самому и копаться в той каши.

Из доки:

VSS allows the backup application(requestor) to specify a new restore target using the IVssComponent::SetNewTarget call. In both PreRestore() and PostRestore(), the SQL writer checks if there is at least one new target specified. It is the backup application’s responsibility to physically copy the file(s) to the new location during the actual file restore/copy time.


ну нет такого метода, хоть убейте: IVssComponent::SetNewTarget !!!
12 сен 12, 14:04    [13151777]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить