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

Откуда:
Сообщений: 12
Задача такая запустить скрипт на одной машине что бы он подключил съёмный диск с Бекапами взял от туда самый последний полный бекап (дефференциальный / транзакции) и восстановил его на текущей машине в подключенном состоянии. При этом всем он проверяет при запуске есть ли такое имя БД и если есть он удаляет сначала эту БД.

запрос, который во пложении восстанавливат базу на сейчас на 12:30 (utp_dnr_backup_2016_04_26_123004_1914448.trn)

при этом удаляет базу данных с таким именем, подключает к папке бекапов и берет файлы:

- с полного бекапа в выходной день (utp_dnr_backup_2016_04_24_000003_0048664.bak)
- последующим последним дифференциальным бекапом (utp_dnr_backup_2016_04_26_000003_2069549.bak)
- все последние резервные копии журнала транзакций (utp_dnr_backup_2016_04_26_003003_6373171.trn по utp_dnr_backup_2016_04_26_123004_1914448.trn)

Все вроде классно, но вручную выбирать последний актуальный бекап неудобно,дефференциальный бекапа и тем более последнии транзакции.

Пробовал вводить переменную, но скорее всего что то не так делаю. не пойму как выбрать последний бекап, дифференциальный бекап/ жернал транзакции.
Возможно должно быть что то тпо этого : + 's.name_backup_yyyy-mm-dd hh:mm:ss+'.BAK'

DECLARE @FileName varchar(1000)

SELECT TOP 1
@FileName = 'L:\' + s.name + '.BAK'
FROM OPENDATASOURCE('SQLNCLI', 'Data Source=172.16.0.2;user id=sa;password=26041970').msdb.dbo.backupset s
where s.database_name = 'UTP_DNR' and s.type='D' and s.is_snapshot=0
ORDER BY backup_start_date DESC, backup_finish_date

Помогите оптимизировать пожалуйста....

К сообщению приложен файл (полное востановление с транзакциями_2.txt - 3Kb) cкачать
26 апр 16, 13:25    [19107986]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
Glory
Member

Откуда:
Сообщений: 104751
alexandr83
Помогите оптимизировать пожалуйста....


в backupmediafamily уже есть имя файла, куда был сделан этот бэкап
26 апр 16, 13:36    [19108055]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
alexandr83
Member

Откуда:
Сообщений: 12
Glory
alexandr83
Помогите оптимизировать пожалуйста....


в backupmediafamily уже есть имя файла, куда был сделан этот бэкап


немножко подробней я начинающий в этом деле. Если не сложно подправьте запрос пожалуйста.
26 апр 16, 14:02    [19108224]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
Glory
Member

Откуда:
Сообщений: 104751
alexandr83
немножко подробней я начинающий в этом деле. Если не сложно подправьте запрос пожалуйста.

Информациях о бэкапах расположена не в одной таблице backupset, а во многих.
Вот в таблице backupmediafamily есть имя устройств(файлов), на которые был произведен тот или иной бэкап
26 апр 16, 14:07    [19108267]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
alexandr83
Member

Откуда:
Сообщений: 12
помогите сделать, самому не получаеться.
услугу оплачу.
26 апр 16, 14:23    [19108370]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
Glory
Member

Откуда:
Сообщений: 104751
alexandr83
услугу оплачу.

https://www.sql.ru/forum/job
26 апр 16, 14:26    [19108392]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
alexandr83
Member

Откуда:
Сообщений: 12
командой можно просмотреть последний бекап на сервере, а как просмотреть дифференциальный бекап и журнал транзакций?

SELECT @@Servername AS ServerName ,
d.Name AS DBName ,
b.name,
b.user_name,
b.type,
b.backup_start_date,
b.Backup_finish_date,
bmf.Physical_Device_name
FROM sys.databases d
INNER JOIN msdb..backupset b ON b.database_name = d.name
AND b.[type] = 'D'
INNER JOIN msdb.dbo.backupmediafamily bmf ON b.media_set_id = bmf.media_set_id
where d.name = 'имя базы'
ORDER BY d.NAME ,
b.Backup_finish_date DESC;
26 апр 16, 15:43    [19108963]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
Glory
Member

Откуда:
Сообщений: 104751
alexandr83
а как просмотреть дифференциальный бекап и журнал транзакций?

узнать в хелпе о предназначении и значениях поля [type]
26 апр 16, 15:45    [19108981]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
alexandr83
Member

Откуда:
Сообщений: 12
кое что нашел. но не понял как для конкретной базы это сделать. Я так понял нужно связать 2 севера

USE [master]
GO
EXEC master.dbo.sp_addlinkedserver
@server = N'172.16.0.2\USRMSSQL',
@srvproduct=N'SQL Server' ;
GO

SELECT DB.name AS DatabaseName
,MAX(DB.recovery_model_desc) AS RecModel
,MAX(BS.backup_start_date) AS LastBackup
,MAX(CASE WHEN BS.type = 'D'
THEN BS.backup_start_date END)
AS LastFull
,SUM(CASE WHEN BS.type = 'D'
THEN 1 END)
AS CountFull
,MAX(CASE WHEN BS.type = 'L'
THEN BS.backup_start_date END)
AS LastLog
,SUM(CASE WHEN BS.type = 'L'
THEN 1 END)
AS CountLog
,MAX(CASE WHEN BS.type = 'I'
THEN BS.backup_start_date END)
AS LastDiff
,SUM(CASE WHEN BS.type = 'I'
THEN 1 END)
AS CountDiff
,MAX(CASE WHEN BS.type = 'F'
THEN BS.backup_start_date END)
AS LastFile
,SUM(CASE WHEN BS.type = 'F'
THEN 1 END)
AS CountFile
,MAX(CASE WHEN BS.type = 'G'
THEN BS.backup_start_date END)
AS LastFileDiff
,SUM(CASE WHEN BS.type = 'G'
THEN 1 END)
AS CountFileDiff
,MAX(CASE WHEN BS.type = 'P'
THEN BS.backup_start_date END)
AS LastPart
,SUM(CASE WHEN BS.type = 'P'
THEN 1 END)
AS CountPart
,MAX(CASE WHEN BS.type = 'Q'
THEN BS.backup_start_date END)
AS LastPartDiff
,SUM(CASE WHEN BS.type = 'Q'
THEN 1 END)
AS CountPartDiff
FROM sys.databases AS DB
LEFT JOIN
msdb.dbo.backupset AS BS
ON BS.database_name = DB.name
WHERE ISNULL(BS.is_damaged, 0) = 0 -- exclude damaged backups
GROUP BY DB.name
ORDER BY DB.name;
26 апр 16, 16:07    [19109112]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
alexandr83
Member

Откуда:
Сообщений: 12
помогите плиаз
27 апр 16, 09:51    [19111307]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
Glory
Member

Откуда:
Сообщений: 104751
alexandr83
помогите плиаз

Денег выслать ? Или что сделать ?
27 апр 16, 09:52    [19111312]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
alexandr83
Member

Откуда:
Сообщений: 12
Glory
alexandr83
помогите плиаз

Денег выслать ? Или что сделать ?

с запросов авто поиска последнего бекапа полного/бекапа дифференциального/трнзакции
27 апр 16, 10:06    [19111357]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
Glory
Member

Откуда:
Сообщений: 104751
alexandr83
с запросов авто поиска последнего бекапа полного/бекапа дифференциального/трнзакции

я вам уже указал ресурс, где вы можете попробовать найти того, кто все сделает за вас.
27 апр 16, 10:07    [19111363]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
alexandr83
Member

Откуда:
Сообщений: 12
Я там уже отписал. Но и там тишина.
27 апр 16, 10:23    [19111439]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
Дед-Папыхтет
Member [заблокирован]

Откуда:
Сообщений: 2808
alexandr83,

Воспользуйся restore headeronly для определения LSN резервных копий, ну можно дополнительно xp_cmdshell что бы сформировать список файлов бэкапов...
Немного на схожую тему описано было...
27 апр 16, 10:29    [19111484]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса с выборкой последнего бекапа  [new]
Basma4
Member

Откуда:
Сообщений: 124
https://www.mssqltips.com/sqlservertip/1584/auto-generate-sql-server-restore-script-from-backup-files-in-a-directory/
27 апр 16, 11:32    [19111878]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить