powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Restore
15 сообщений из 15, страница 1 из 1
Restore
    #32022057
quickdeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня каждое утро восстанавливается бакап с помощью пакета DTS:
restore database <ИмяБД>
from
disk='D:\LastBck20021201.bck'
with...
А имя файла бакапа постоянно меняется (по текущей дате - добавляется префикс).
Проблема: можно-ли с помощью SQL оценить дату создания файла и восстановиться с последней
копии ??? Как прописать имя файла если он динамически меняется ???
Спасибо...
...
Рейтинг: 0 / 0
Restore
    #32022069
quickdeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели никто не сталкивался с такой проблемой ?
Или плохо объяснил ?
Знатоки, отзовитесь плз. !!!!
...
Рейтинг: 0 / 0
Restore
    #32022070
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия ?
...
Рейтинг: 0 / 0
Restore
    #32022071
quickdeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Microsoft SQL - 2000
...
Рейтинг: 0 / 0
Restore
    #32022072
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как прописать имя файла если он динамически меняется ???

1-ый способ
- Создаете package global variable, например, с именем RestoreBackupSQL тип данных string
- Создаете Dynamic Properties Task, например, с именем Initializing
- В Initializing: Add... - Global Variables - RestoreBackupSQL - Value - Set... - Query - вписываете запрос вида SELECT 'restore database mydb from disk=''D:\LastBck' +CONVERT(varchar, DATEADD(dd, -1, GETDATE()), 112) + '.bck'' with... '
- Создаете Execute SQL Task, например, с именем RestoreDB с любым "безобидным запросм" вроде SELECT @@ROWCOUNT
- В Initializing: Add... - Tasks - ищите среди DTSTask_DTSExecuteSQLTask_ тот, у которого в Description стоит RestoreDB - SQL Statement - Set... - Global Variable - RestoreBackupSQL
- От Initializing к RestoreDB добавялем workflow On Success


2-ой способ
Т.к. в SQL2000 появилась возможность передавать параметры в DTS package, то туже переменную RestoreBackupSQL можно инициализировать не в самом DTS, а при его запуске

dtsrun /S server_name /E /N package_name /A RestoreBackupSQL:8="restore database mydb from disk='D:\LastBckbck20020201.bck'"
Строку запуска можно сформировать процедуре или каком-либо шаге job-a.



>можно-ли с помощью SQL оценить дату создания файла и восстановиться с последней копии
Вообще-то информация о резервных копиях храниться в базе msdb. То, что хотите получить вы, выглядит примерно так

select top 1 c.physical_device_name, a.backup_start_date, a.backup_finish_date
from msdb..backupset a
inner join msdb..backupmediaset b on b.media_set_id = a.media_set_id
inner join msdb..backupmediafamily c on c.media_set_id = b.media_set_id
where a.database_name = 'mydb'
order by a.backup_finish_date desc
...
Рейтинг: 0 / 0
Restore
    #32022081
quickdeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
package global variable - это что?
...
Рейтинг: 0 / 0
Restore
    #32022094
quickdeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему в Execute SQL Task нельзя написать :
restore database Bizon from disk= 'R:\имя_db_' +CONVERT(varchar, DATEADD(dd, -1, GETDATE()), 112) + '.bck'

Не совсем понятен смысл добавления Dynamic Properties Task
Объясните плз.
...
Рейтинг: 0 / 0
Restore
    #32022105
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>package global variable - это что?
Переменные, которыми можно оперировать внутри package. Global, потому что их значения можно использовать во всех задач в пределах package(если задача позволяет)

>Не совсем понятен смысл добавления Dynamic Properties Task
Да, наверное я несколько усложнил решение, показав вам общий принцип инициализации вообще всех свойств всех объектов DTS package с помощью Dynamic Properties Task и Global Variables.

В вашем конкретном случае в Execute SQL Task можно написать :
DECLARE @backupfilename varchar(100)
SET @backupfilename = 'R:\имя_db_' +CONVERT(varchar, DATEADD(dd, -1, GETDATE()), 112) + '.bck'
restore database Bizon from disk = @backupfilename
...
Рейтинг: 0 / 0
Restore
    #32022129
quickdeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо !!!!!!!!
...
Рейтинг: 0 / 0
Restore
    #32022135
quickdeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DECLARE @backupfilename varchar(100)
SET @backupfilename = 'R:\имя_db_' +CONVERT(varchar, DATEADD(dd, -1, GETDATE()), 112) + '.bck'
restore database Bizon from disk = @backupfilename

Выдаёт ошибку : Database is in use.
Хотя никто базу не юзает, не пойму в чем дело ((
...
Рейтинг: 0 / 0
Restore
    #32022147
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно и к какой базе у вас подсоединен ваш Execute SQL Task ?
Если к той, которую вы пытаетесь восстанавливать, то этот коннект сам себе и мешает. Выполняйте восстановление, присоединившись к базе master.
...
Рейтинг: 0 / 0
Restore
    #32022153
quickdeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, Вы правы, спасибо.
Вопрос: а можно - ли в качестве пути к файлу бакапа указывать сетевой диск ??? !!!
Очень бы хотелось, но пишет, что девайс off-line или недоступен, просвятите плз. !!!
...
Рейтинг: 0 / 0
Restore
    #32022175
quickdeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
???????????????????????????????????????????????????????????
...
Рейтинг: 0 / 0
Restore
    #32022196
Goody
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL Server запускается с правами Local System account. Для того чтобы SQL Server мог достучаться к сетевому ресурсу необходимо:
1. Создать в домене учетную запись для запуска SQL Server.
2. Создать сетевой ресурс с правами полного доступа для созданной учетной записи.
3. Стартовать SQL Server с созданным акаунтом.

А дальше все просто... \Имя сервера\имя ресурса\... и т.д.

Если же у тебя нет домена... Надо подумать... ))
...
Рейтинг: 0 / 0
Restore
    #32022203
quickdeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думать не нужно - домен у меня есть.
Всё заработало - огромное спасибо !!!!!!!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Restore
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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