Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как определить возможность сжимать BackUP?  [new]
Vladimir_Mer
Member

Откуда:
Сообщений: 21
Здравствуйте.

Есть БД. Ее можно развернуть на любой версии MSSQL начиная с 2000. Так же может меняться версия поставки(Enterprise,Standart и т.д.).
Есть вариативная(зависит от передаваемых параметров) ХП по созданию бекапа(Сжимать/Не сжимать бекап).

Задача: выяснить, возможно ли на данной БД сжимать бекапы?

Идея:
declare @can_compress int
set @can_compress=0 

if OBJECT_ID('sys.configurations') is not null
begin
  SET @can_compress =ISNULL(CAST((
      SELECT 1
      FROM sys.configurations
      WHERE [name] = 'backup compression default') AS int),0)
end

SELECT @can_compress

На сколько я понимаю более простого способа это понять нет? Может подскажите что нибудь...
16 янв 19, 14:53    [21786783]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
L_argo
Member

Откуда:
Сообщений: 1134
Совместимость БД должна быть не ниже 2008.
16 янв 19, 15:00    [21786793]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Vladimir_Mer
Member

Откуда:
Сообщений: 21
L_argo,
sys.configurations появилась с 2008, этой проверкой заодно и версию sql проверяю...
16 янв 19, 15:04    [21786802]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
L_argo
Совместимость БД должна быть не ниже 2008.

ахинея
16 янв 19, 15:26    [21786841]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Vladimir_Mer
На сколько я понимаю более простого способа это понять нет?

это нерабочий способ.
даже если такая строка в конфиге есть,
это же не значит, что у вас не Экспресс, например.

Edition надо проверять.
ибо
BOL
Backup compression is supported on SQL Server 2017 editions: Enterprise, Standard, and Developer.

Backup Compression (SQL Server)
16 янв 19, 15:29    [21786846]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Vladimir_Mer
L_argo,
sys.configurations появилась с 2008, этой проверкой заодно и версию sql проверяю...

sys.configurations относится ко всему серверу.
а товарищ предлагал проверять Compatibility Level конкретной базы.
что, разумеется, на уровне серверной конфигурации не может быто отражено в принципе.
---
ваше направление более верное,
ибо важна версия сервера, а никак не Compatibility Level базы
16 янв 19, 15:33    [21786852]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Vladimir_Mer
Member

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

на сколько я понимаю
FROM sys.configurations
WHERE [name] = 'backup compression default'

встречается только у тех версий где поддерживается "compression"!
То есть у версии Express она просто отсутствует.
16 янв 19, 15:38    [21786866]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Владислав Колосов
Member

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

имо все версии серверов и редакции перечислены и возможности известны. Составить табличку и все дела. Пополнять список новыми редакциями, а не гадать.
16 янв 19, 15:44    [21786875]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Vladimir_Mer
Yasha123,

на сколько я понимаю
FROM sys.configurations
WHERE [name] = 'backup compression default'

встречается только у тех версий где поддерживается "compression"!
То есть у версии Express она просто отсутствует.

говорят что ent на express не поднимите, а вы про отсуствуют
16 янв 19, 15:44    [21786876]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Vladimir_Mer
Member

Откуда:
Сообщений: 21
Владислав Колосов,

ПО отдается клиенту и он ни каких пополнений делать не будет. Нужна какая то универсальная логика с заделом на будущее
16 янв 19, 15:59    [21786918]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Vladimir_Mer
Member

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

бекап с ent на Express разворачивать ненужно! или не об этом речь?
16 янв 19, 16:02    [21786922]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Vladimir_Mer
То есть у версии Express она просто отсутствует.

да.
у меня не было под рукой Экспресса, чтобы проверить.
ну и т.к. с Экспрессом устанавливается даже агент,
к-ый потом все равно нельзя использовать,
логично было предположить, что строка в конфиге Экспресса есть,
только и мин, и макс установлены в 0.
но раз нет, то тем лучше
16 янв 19, 16:07    [21786935]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
L_argo
Member

Откуда:
Сообщений: 1134
Yasha123
ибо важна версия сервера, а никак не Compatibility Level базы
По своим наблюдениям скажу, что база тоже должна быть не ниже 2008.

Стоял склсервер 2008R2 этерпрайз.
Там была база с 2005 совместимостью. Она при бекапе не упаковывалась.
Когда я ей поставил совместимость 2008, то она начала паковаться.
Чисто эмпирическое наблюдение.
16 янв 19, 16:13    [21786947]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Vladimir_Mer
Member

Откуда:
Сообщений: 21
Всем спасибо за помощь. Есть еще какие нибудь идеи реализации?
16 янв 19, 16:13    [21786949]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4535
Vladimir_Mer
Всем спасибо за помощь. Есть еще какие нибудь идеи реализации?

по мотивам стека:
exec('backup database model to disk = ''nul'' with compression' )
select @@error
16 янв 19, 16:23    [21786972]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
[quot L_argo]
Yasha123
Там была база с 2005 совместимостью. Она при бекапе не упаковывалась.
Когда я ей поставил совместимость 2008, то она начала паковаться.

вам выдавалась ошибка или бэкап что сжатый, что нет, имел один и тот же размер?
у ТС задача выбрать подходящую команду при бэкапе
и не вылететь с ошибкой, а не качество сжатия обеспечить.
и никакая совместимость базы не помешает выполнить команду со сжатием,
лишь бы редакция сервера позволяла
---
я ведь сейчас проверю на базе с черт знает какой совместимостью.
это не Экспресс по закоулкам искать...
16 янв 19, 16:39    [21787016]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
L_argo
Member

Откуда:
Сообщений: 1134
вам выдавалась ошибка или бэкап что сжатый, что нет, имел один и тот же размер?
Ошибок не было. Размер фулбекапа был примерно такой же как база.
После сжатия база усохла в 2,5 раза.
16 янв 19, 16:46    [21787028]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Vladimir_Mer,

Enterprise, Developer: 2008+
Standard: 2008 R2+
17 янв 19, 02:57    [21787414]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7391
Vladimir_Mer
Владислав Колосов,

ПО отдается клиенту и он ни каких пополнений делать не будет. Нужна какая то универсальная логика с заделом на будущее


В смысле вы гарантируете, что ваше ПО будет работать на любой версии SQL server? Я бы назвал это авантюризмом.
17 янв 19, 14:11    [21787878]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Vladimir_Mer
Member

Откуда:
Сообщений: 21
Владислав Колосов,

В смысле, что после выхода новой версии sql и определенных тестов не переписывать заново, а заявить что и на этой версии работает.(в идеале...)
17 янв 19, 16:03    [21788077]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Vladimir_Mer
Member

Откуда:
Сообщений: 21
select
 case
  when a.ProducVersion >= '1050'/*2008 R2*/ and a.EngineEdition in (2/*Standard*/, 3/*Enterprise*/) then 1
  when a.ProducVersion >= '1000'/*2008*/ and a.EngineEdition = 3/*Enterprise*/ then 1
  else 0
 end
from
 (
  select
   serverproperty('EngineEdition'),
   right('00' + parsename(cast(serverproperty('ProductVersion') as varchar(30)), 4), 2) + 
   right('00' + parsename(cast(serverproperty('ProductVersion') as varchar(30)), 3), 2)
 ) a(EngineEdition, ProducVersion);


Вот решение предоставленное коллегой на соседнем форуме. Может кому пригодится.
22 янв 19, 14:10    [21791134]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
запустите это на сервере ранее SQL 2008
22 янв 19, 14:18    [21791147]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
productversion для SQL2000 вернёт вам, например: 2248
22 янв 19, 14:21    [21791151]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Vladimir_Mer
Member

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



select
   serverproperty('EngineEdition'),
   right('00' + parsename(cast(serverproperty('ProductVersion') as varchar(30)), 4), 2),
   right('00' + parsename(cast(serverproperty('ProductVersion') as varchar(30)), 3), 2),
serverproperty('ProductVersion')


MSSQL 2000 выдает
Column1Column2Column3Column4
2NULL 088.00.2039


MSSQL 2005 выдает Express
Column1Column2Column3Column4
409 009.00.5000.00


MSSQL 2008 выдает Express
Column1Column2Column3Column4
4100010.0.1600.22


2000 кривовато, а все остальные как нужно! И в целом алгоритм рабочий. Или я что то не понял...
23 янв 19, 08:49    [21791762]     Ответить | Цитировать Сообщить модератору
 Re: Как определить возможность сжимать BackUP?  [new]
Vladimir_Mer
Member

Откуда:
Сообщений: 21
Konst_One,
2000 - Workgroup Edition
23 янв 19, 09:04    [21791765]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить