Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Восстановление базы из бекапа с помощью скрипта / 7 сообщений из 7, страница 1 из 1
13.07.2019, 19:04
    #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
13.07.2019, 19:38
    #39837120
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы из бекапа с помощью скрипта
Ded20Ded,

Вы можете получить инфу о бэкапах из логов исходного сервера
...
Рейтинг: 0 / 0
14.07.2019, 14:08
    #39837221
Ded20Ded
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы из бекапа с помощью скрипта
Критик, сервера находятся в разных местах, по версии тоже разные первый 2008 и второй 2014
...
Рейтинг: 0 / 0
14.07.2019, 14:12
    #39837222
Ded20Ded
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы из бекапа с помощью скрипта
Если лог файл буду передавать в месте с бекапам, то возможно
Критик, если такая возможно есть что нужно исправить? Так как больше пока ни кто не смог ни чем помочь.
...
Рейтинг: 0 / 0
14.07.2019, 16:43
    #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
14.07.2019, 18:44
    #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
15.07.2019, 15:28
    #39837493
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Восстановление базы из бекапа с помощью скрипта
Ded20Ded,

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


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