powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос по истории бекапов
3 сообщений из 3, страница 1 из 1
Запрос по истории бекапов
    #39957206
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,

Есть такой запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    select
        database_name,
        backup_type =
            case type
                when 'D' then 'database'
                when 'L' then 'log'
                when 'I' then 'differential'
                else 'other'
            end,
        backup_finish_date,
        rownum = 
            row_number() over
            (
                partition by database_name, type
                order by backup_finish_date  desc
            ),
			m.physical_device_name, backup_set_id, family_sequence_number
    from msdb.dbo.backupset s
	INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id
	where s.[type] = 'D' 



Мне в столбце rownum надо пронумеровать все бекапы начиная с последнего и до самого раннего.

Т.е.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Date                 physical_device_name        Rownum 
2020-05-14           My_DB1_2020-05-14.bak       1  
2020-05-14           My_DB2_2020-05-14.bak       1  
2020-05-13           My_DB1_2020-05-13.bak       2  
2020-05-13           My_DB2_2020-05-13.bak       2  
2020-05-12           My_DB1_2020-05-12.bak       3  
2020-05-12           My_DB2_2020-05-12.bak       3  
....



Все это работает, пока не имеешь дело с несколькими страйпами. Если есть страйпы, то мне нужно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Date               physical_device_name                   Rownum 
2020-05-14           My_DB1_2020-05-14_stripe_1.bak       1  
2020-05-14           My_DB1_2020-05-14_stripe_2.bak       1  
2020-05-14           My_DB1_2020-05-14_stripe_3.bak       1  
2020-05-14           My_DB1_2020-05-14_stripe_4.bak       1  
2020-05-14           My_DB2_2020-05-14_stripe_1.bak       1  
2020-05-14           My_DB2_2020-05-14_stripe_2.bak       1  
2020-05-14           My_DB2_2020-05-14_stripe_3.bak       1  
2020-05-14           My_DB2_2020-05-14_stripe_4.bak       1  
2020-05-13           My_DB1_2020-05-13_stripe_1.bak       2  
2020-05-13           My_DB1_2020-05-13_stripe_2.bak       2  
2020-05-13           My_DB1_2020-05-13_stripe_3.bak       2  
2020-05-13           My_DB1_2020-05-13_stripe_4.bak       2  
2020-05-13           My_DB2_2020-05-13_stripe_1.bak       2  
2020-05-13           My_DB2_2020-05-13_stripe_2.bak       2  
2020-05-13           My_DB2_2020-05-13_stripe_3.bak       2  
2020-05-13           My_DB2_2020-05-13_stripe_4.bak       2  
2020-05-12           My_DB1_2020-05-12_stripe_1.bak       3  
2020-05-12           My_DB1_2020-05-12_stripe_2.bak       3  
2020-05-12           My_DB1_2020-05-12_stripe_3.bak       3  
2020-05-12           My_DB1_2020-05-12_stripe_4.bak       3  
2020-05-12           My_DB2_2020-05-12_stripe_1.bak       3  
2020-05-12           My_DB2_2020-05-12_stripe_2.bak       3  
2020-05-12           My_DB2_2020-05-12_stripe_3.bak       3  
2020-05-12           My_DB2_2020-05-12_stripe_4.bak       3  
....



А получается так:
Код: sql
1.
2.
3.
4.
5.
6.
Date                 physical_device_name                 Rownum 
2020-05-14           My_DB1_2020-05-14_stripe_1.bak       1  
2020-05-14           My_DB1_2020-05-14_stripe_2.bak       2  
2020-05-14           My_DB1_2020-05-14_stripe_3.bak       3  
2020-05-14           My_DB1_2020-05-14_stripe_4.bak       4  
...




Весь смысл этой затеи в том, чтобы вытащить список файлов бекапов для каждой базы начиная с последнего полного бекапа плюс последний differential бекап (если он после полного) плюс все логи с последнего differential бекапа. И запрос выше помогает отфильтровать последный полный или differential бекап.
...
Рейтинг: 0 / 0
Запрос по истории бекапов
    #39957275
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m,

Date physical_device_name Rownum
2020-05-14 My_DB1_2020-05-14.bak 1
2020-05-14 My_DB2_2020-05-14.bak 1

это два database backup в одном файле?
...
Рейтинг: 0 / 0
Запрос по истории бекапов
    #39957277
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
это два database backup в одном файле?
Скорее, бэкап, сделанный в несколько файлов.

2Roust_m,

Код: sql
1.
partition by database_name, type, physical_device_name 
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос по истории бекапов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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