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

Откуда:
Сообщений: 15
Доброго времени суток. Являюсь разработчиком 1С. Есть желание постоянно иметь наиболее актуальную копию базы для тестирования, при чем не по расписанию агента, а вручную - в произвольный момент времени. Как я это вижу - достаточно просто написать запрос для восстановления копии из нужного бекапа (файл/устройство). Администратор БД с таким подходом не согласен - говорит, бекапы хранятся на лентах со своим API, для написание такого скрипта/запроса уйдет много времени, все это очень сложно и требует изучения. На мой взгляд довольно странный аргумент - лента наверняка имеет некоторый драйвер, позволяющий серверу MSSQL "разговаривать" с устройством на его языке... К тому же, со слов администратора - прежде бекапы выполнялись им интерактивно последовательностью некоторых действий - из чего я делаю вывод, что SQL умеет общаться с лентой, и достаточно упаковать последовательность действий администратора в некоторый алгоритм на T-SQL... Поясните пожалуйста, действительно ли указанная причина имеет место быть и несет собой большие трудозатраты?
6 мар 18, 08:38    [21239462]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы с ленты  [new]
Mr. X
Guest
AlphaSpec,

Руками можно восстановиться через клиентскую консоль (у TSM она есть). Скриптом сильно вряд ли. Полагаю совсем никак.
6 мар 18, 08:51    [21239485]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы с ленты  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33683
Блог
Можно поменять порядок резервирования: сначала резервировать на диск, потом копировать на ленту. Вам будет доступна последняя дисковая копия.
6 мар 18, 09:10    [21239516]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы с ленты  [new]
архивариус
Member

Откуда:
Сообщений: 150
Mr. X
AlphaSpec,

Руками можно восстановиться через клиентскую консоль (у TSM она есть). Скриптом сильно вряд ли. Полагаю совсем никак.
ТС про TSM не упоминал, но для него можно и жерез GUI и скриптом, но права потребуются , скорее всего с ними будет проблема
6 мар 18, 10:13    [21239702]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы с ленты  [new]
AlphaSpec
Member

Откуда:
Сообщений: 15
архивариус,

С правами доступа вопрос решаемый. Насколько сложно для администратора БД написать такой запрос для восстановления конкретной базы из бекапа, хранящегося на ленте? Проблема обозначенная администратором БД - не является проблемой по сути?
6 мар 18, 12:07    [21240063]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы с ленты  [new]
rahzer
Member

Откуда:
Сообщений: 2293
Все зависит от:
1) Что за библиотека используется (сколько приводов, кассет и т.п.), в простейших случаях, ставится драйвер LTFS и лента видится как обычный диск и оттуда можно дергать архивы через обычный проводник
2) Зависит от ПО резервного копирования TSM\HPE Data Prjtector\EMC Networker и другие, у всех свои есть возможности и интерфейсы взаимодействия
6 мар 18, 12:36    [21240179]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы с ленты  [new]
testuser1
Guest
автор
Насколько сложно для администратора БД написать такой запрос для восстановления конкретной базы из бекапа, хранящегося на ленте? Проблема обозначенная администратором БД - не является проблемой по сути?

https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-transact-sql

RESTORE DATABASE { database_name | @database_name_var }
[ FROM <backup_device> [ ,...n ] ]
[ WITH
{

<backup_device>::= Specifies a logical or physical backup device to use for the backup operation, as follows:


{DISK | TAPE } = { 'physical_backup_device_name' | @physical_backup_device_name_var }
Allows backups to be restored from the named disk or tape device.
The device types of disk and tape should be specified with the actual name (for example, complete path and file name) of the device: DISK ='Z:\SQLServerBackups\AdventureWorks.bak' or TAPE ='\\\\.\TAPE0'

https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-devices-sql-server
6 мар 18, 12:39    [21240189]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы с ленты  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4213
AlphaSpec
Администратор БД с таким подходом не согласен - говорит, бекапы хранятся на лентах со своим API, для написание такого скрипта/запроса уйдет много времени, все это очень сложно и требует изучения.

Как он вас квалифицировано послал!
Снимаю шляпу!
+ по секрету

Механизм бекапирования / восстановления с ленты уже встроен в SQL Server.
Достаточно просто подключить соответствующий привод.
После этого у вас активизируется опция "Tape" как источника архивов.
6 мар 18, 12:57    [21240247]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление базы с ленты  [new]
архивариус
Member

Откуда:
Сообщений: 150
AlphaSpec
архивариус,

С правами доступа вопрос решаемый. Насколько сложно для администратора БД написать такой запрос для восстановления конкретной базы из бекапа, хранящегося на ленте? Проблема обозначенная администратором БД - не является проблемой по сути?

зависит от софта который вы используется, например для упомянутого TSM одна строчка в командном файле(.cmd, а не запрос TSQL), что то типа такого (восстановление последнего (активного) бэкапа ):

@echo off
@SETLOCAL

SET DV_DIR_TSM=D:\RestoreSQL
SET DV_DIR_TDPSql=C:\Program Files\Tivoli\TSM\TDPSql
SET DV_SQL=SQLserver\instance
SET DV_DB_SOURCE=1c_001
SET DV_DB_LogicalName_MDF=1c_001
SET DV_DB_LogicalName_LDF=1c_001_log
SET DV_DB_DESTINATION_DIR=D:\SQL

"%DV_DIR_TDPSql%\TDPSQLC" Restore %DV_DB_SOURCE% Full /BACKUPDESTination=TSM /BACKUPMETHod=LEGACY /INTO=%DV_DB_SOURCE%_test /LOGFile=%DV_DIR_TSM%\tdpsql-restore.log /RELocate=%DV_DB_LogicalName_MDF% /TO=%DV_DB_DESTINATION_DIR%\%DV_DB_SOURCE%_test.mdf /RELocate=%DV_DB_LogicalName_LDF% /TO=%DV_DB_DESTINATION_DIR%\%DV_DB_SOURCE%_test_log.ldf /RECOVery=Yes /REPlace /CONFIGfile="%DV_DIR_TDPSql%\tdpsqlA.cfg" /TSMOPTFile="%DV_DIR_TDPSql%\dsmA.opt"

REM use [1C_001_test]
REM alter user [1c-user] with login = [1c-user]

@ENDLOCAL

6 мар 18, 13:00    [21240257]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить