скрипт sql для восстановления БД из сетевой папки

1. wildwilduser 13 25.03.22 09:31 Сейчас в теме
Добрый день.
Пытаюсь написать скрипт для восстановления бд.
Имеем боевой MS SQL с ежедневными бекапами файлов вида Имябазы_ДатаСоздания.bak
Хотим восстанавливать каждую ночь этот архив для экспериментов, чтобы были актуальные данные.
Папка с архивами в сети доступна, служба второго SQL сервера запускается под доменной учеткой с настроенными правами доступа до этой папки.
Нагуглил с разных мест и собрал следующий скрипт.
Люди добрые покритикуйте, сами мы в этом не разбираемся.
Может чего убавить или прибавить, может вообще не так это делается?
Заранее благодарен.

-- allow changes to advanced options
EXEC sp_configure 'show advanced options', 1
GO
-- Upd ate currently configured values for advanced options.
RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
-- Upd ate currently configured values for advanced options.
RECONFIGURE
GO
EXEC xp_cmdshell 'NET USE X: \\srv1\sql\erpvirsrv\upp'
GO
-- To disable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 0
GO
-- Upd ate currently configured values for advanced options.
RECONFIGURE
GO

DECLARE @f table (fn varchar(255));
DECLARE @FileName varchar(100);
INS ERT INTO @f;
EXEC xp_cmdshell 'dir X:\*.bak /B /O-D /TC | findstr /n $';

SE T @FileName = (SEL ECT TOP 1 replace(fn, '1:', '') FR OM @f WH ERE fn like '1:%');

USE [master]
ALT ER DATABASE [upp] SE T SINGLE_USER WITH ROLLBACK IMMEDIATE
SE T @Path = concat('X:\', @FileName);
RESTORE DATABASE [upp] FR OM DISK = N@Path WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5
ALT ER DATABASE [upp] SE T MULTI_USER
GO
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. wildwilduser 13 31.03.22 13:29 Сейчас в теме
ни у кого никаких мыслей нет?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот