powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановление базы из бекапа с помощью скрипта
7 сообщений из 7, страница 1 из 1
Восстановление базы из бекапа с помощью скрипта
    #39837115
Ded20Ded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, всем, подскажите как лучше ежедневно восстанавливать базу на втором сервере
1. На сервере 1 делаю ночной полный бекап, копирую бекап на сервер 2 (там хранятся три последних архива) нужно восстановить последний архив через план обслуживания если можно.
Нашел на просторах интернета скрипт, но увы он не работает помогите его поправить. Спасибо!

USE Master
GO
DECLARE @backup_filename varchar(100);

DECLARE @files table (ID int IDENTITY, FileName varchar(100))
insert into @files execute xp_cmdshell 'dir "D:\Arhive-SQL\tkdb\" /b'
set @backup_filename = 'D:\Arhive-SQL\tkdb\' + (select top 1 FileName from @files where FileName is not null order by ID desc )
RESTORE DATABASE [DataBase]
FROM DISK = @backup_filename WITH FILE = 1,
MOVE 'DB_Clients' TO 'E:\DATA\DB_Clients.mdf',
MOVE 'DB_Clients_log' TO 'E:\DATA\DB_Clients.ldf',
NOUNLOAD, REPLACE, STATS = 10
GO

В результате на SQL 2014 - ошибка

SQL Server заблокировал доступ к процедура "sys.xp_cmdshell" компонента "xp_cmdshell", поскольку он отключен в результате настройки конфигурации безопасности сервера. Использование "xp_cmdshell" может быть разрешено администратором при помощи хранимой процедуры sp_configure. Дополнительные сведения о включении "xp_cmdshell" см. в электронной документации по "xp_cmdshell".
Сообщение 8114, уровень 16, состояние 12, строка 8
Ошибка при преобразовании типа данных varchar к nvarchar.

Прочитал в интернете что xp_cmdshell лучше не включать, т.к. образуется огромная бреш в безопасности
...
Рейтинг: 0 / 0
Восстановление базы из бекапа с помощью скрипта
    #39837120
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ded20Ded,

Вы можете получить инфу о бэкапах из логов исходного сервера
...
Рейтинг: 0 / 0
Восстановление базы из бекапа с помощью скрипта
    #39837221
Ded20Ded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик, сервера находятся в разных местах, по версии тоже разные первый 2008 и второй 2014
...
Рейтинг: 0 / 0
Восстановление базы из бекапа с помощью скрипта
    #39837222
Ded20Ded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если лог файл буду передавать в месте с бекапам, то возможно
Критик, если такая возможно есть что нужно исправить? Так как больше пока ни кто не смог ни чем помочь.
...
Рейтинг: 0 / 0
Восстановление базы из бекапа с помощью скрипта
    #39837233
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ded20DedДобрый день, всем, подскажите как лучше ежедневно восстанавливать базу на втором сервере
1. На сервере 1 делаю ночной полный бекап, копирую бекап на сервер 2 (там хранятся три последних архива) нужно восстановить последний архив через план обслуживания если можно.
Нашел на просторах интернета скрипт, но увы он не работает помогите его поправить. Спасибо!

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
USE Master
GO
DECLARE @backup_filename varchar(100);

DECLARE @files table (ID int IDENTITY, FileName varchar(100))
insert into @files execute xp_cmdshell 'dir "D:\Arhive-SQL\tkdb\" /b'
set @backup_filename = 'D:\Arhive-SQL\tkdb\' + (select top 1 FileName from @files where FileName is not null order by ID desc )
RESTORE DATABASE [DataBase]
FROM DISK = @backup_filename WITH FILE = 1,
MOVE 'DB_Clients' TO 'E:\DATA\DB_Clients.mdf',
MOVE 'DB_Clients_log' TO 'E:\DATA\DB_Clients.ldf',
NOUNLOAD, REPLACE, STATS = 10
GO



В результате на SQL 2014 - ошибка

SQL Server заблокировал доступ к процедура "sys.xp_cmdshell" компонента "xp_cmdshell", поскольку он отключен в результате настройки конфигурации безопасности сервера. Использование "xp_cmdshell" может быть разрешено администратором при помощи хранимой процедуры sp_configure. Дополнительные сведения о включении "xp_cmdshell" см. в электронной документации по "xp_cmdshell".
Сообщение 8114, уровень 16, состояние 12, строка 8
Ошибка при преобразовании типа данных varchar к nvarchar.

Прочитал в интернете что xp_cmdshell лучше не включать, т.к. образуется огромная бреш в безопасности

// Нашел на просторах интернета скрипт, но увы он не работает помогите его поправить

дык, тебе сам сервер всё "объяснил" и "рассказал", что ещё нужно ? :)

Использование "xp_cmdshell" может быть разрешено администратором при помощи хранимой процедуры sp_configure

Код: sql
1.
2.
3.
4.
5.
6.
sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'xp_cmdshell',1
reconfigure with override
go
...
Рейтинг: 0 / 0
Восстановление базы из бекапа с помощью скрипта
    #39837247
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так ли надо лезть в файловую систему на TSQL
Вы ж этот скрипт джобом запускаете?
Ну так и сделайте лишний шаг для поиска последнего файла.
Например на powershell это будет типа

$lastBackup=dir 'D:\Arhive-SQL\tkdb' | sort name -Descending | select -First 1 -ExpandProperty FullName
Тепеть этот файл можно будте или переименовать или будет сделать линк
mklink 'D:\Arhive-SQL\tkdb\yourBackupFile.bak' $lastBackup

а потом спокойно восстанавливайтесь с D:\Arhive-SQL\tkdb\yourBackupFile.bak
не забудьте его (линк) удалить потом

Далее в вашем RESTORE скрипте нет шага "убить все активные сессии" -- alter database [DataBase] set offline with rollback immediate
Так и задумано? ибо если останется хоть одна сессия RESTORE вернет ошибку
...
Рейтинг: 0 / 0
Восстановление базы из бекапа с помощью скрипта
    #39837493
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ded20Ded,

если этот второй сервер тестовый, то я бы просто включил эту процедуру,
если боевой, то можно восстанавливать, например, через SSIS, там есть средства работы с файловой системой
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановление базы из бекапа с помощью скрипта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]