MS SQL 2017 Developer Edition
От: wety Россия  
Дата: 07.02.19 13:15
Оценка:
Добрый день.

Имею MS SQL 2017 Developer Edition и базу данных с In-memory optimized tables
Как корректно проверять эту базу на консистентность?
Про DBCC информация такая:
1. DBCC CHECKDB skips the memory-optimized tables in the database.
2. DBCC CHECKTABLE will fail for memory-optimized tables.

Как же так???
Re: MS SQL 2017 Developer Edition
От: BlackEric http://black-eric.lj.ru
Дата: 07.02.19 14:34
Оценка:
Здравствуйте, wety, Вы писали:

W>Имею MS SQL 2017 Developer Edition и базу данных с In-memory optimized tables

W>Как корректно проверять эту базу на консистентность?

Backup/Restore? Я такого в проде еще не видел, поэтому такая проблема пока не возникала.
https://github.com/BlackEric001
Re: MS SQL 2017 Developer Edition
От: _ABC_  
Дата: 07.02.19 23:34
Оценка:
Здравствуйте, wety, Вы писали:

W>Как корректно проверять эту базу на консистентность?

DBCC CHECKTABLE are not supported with memory-optimized tables. To verify the integrity of the on-disk checkpoint files, perform a backup of the MEMORY_OPTIMIZED_DATA filegroup.


W>Как же так???

Фича направлена на максимальную производительность. Совершенно логично, что от поддержки некоторых вещей при этом пришлось отказаться.
Re[2]: MS SQL 2017 Developer Edition
От: wety Россия  
Дата: 08.02.19 06:18
Оценка:
Здравствуйте, _ABC_, Вы писали:

W>>Как корректно проверять эту базу на консистентность?

_AB>

_AB>DBCC CHECKTABLE are not supported with memory-optimized tables. To verify the integrity of the on-disk checkpoint files, perform a backup of the MEMORY_OPTIMIZED_DATA filegroup.


W>>Как же так???

_AB>Фича направлена на максимальную производительность. Совершенно логично, что от поддержки некоторых вещей при этом пришлось отказаться.

Надёжность базы в таком случае оказалась околонулевой. То есть, MS говорит таким образом: используйте максимальную производительность, но данные у вас будут фиговые, как раз 146% и получится.
"Замечательно"!
Re[2]: MS SQL 2017 Developer Edition
От: wety Россия  
Дата: 08.02.19 06:19
Оценка:
Здравствуйте, BlackEric, Вы писали:

W>>Имею MS SQL 2017 Developer Edition и базу данных с In-memory optimized tables

W>>Как корректно проверять эту базу на консистентность?

BE>Backup/Restore? Я такого в проде еще не видел, поэтому такая проблема пока не возникала.


В таком случае ничто не мешает восстановить опять-таки убитую неконсистентную базу. Во.
Должен же быть какой-то способ?
А Вы вообще часто пользуетесь DBCC?
Re[3]: MS SQL 2017 Developer Edition
От: BlackEric http://black-eric.lj.ru
Дата: 08.02.19 07:16
Оценка: 6 (1) +1
Здравствуйте, wety, Вы писали:

W>В таком случае ничто не мешает восстановить опять-таки убитую неконсистентную базу. Во.

В общем случае да.

W>Должен же быть какой-то способ?

W>А Вы вообще часто пользуетесь DBCC?
Я одно время развлекался починкой битых баз. Поэтому часто.
https://github.com/BlackEric001
Re: MS SQL 2017 Developer Edition
От: rm822 Россия  
Дата: 08.02.19 08:09
Оценка:
W>Как же так???
Издержки быстрого выката фич.
В 2019м будет работать.
Re[3]: MS SQL 2017 Developer Edition
От: _ABC_  
Дата: 08.02.19 09:54
Оценка:
Здравствуйте, wety, Вы писали:

W>Надёжность базы в таком случае оказалась околонулевой.

To verify the integrity of the on-disk checkpoint files, perform a backup of the MEMORY_OPTIMIZED_DATA filegroup.

Для проверки используй бэкап файловой группы соответствующей. Если файлы побиты, то бэкап выдаст ошибку. У тебя будет время отреагировать — перенести данные их in-memory таблицы в обычные, например.

W>То есть, MS говорит таким образом: используйте максимальную производительность, но данные у вас будут фиговые, как раз 146% и получится.

Нет, MS говорит совсем не это. Но странно, что ты не понимаешь, что фича, дающая большую производительность, забирает что-то взамен. Иначе это была бы не фича, а часть обычного движка.

W>"Замечательно"!

Я, надеюсь, ты в курсе, что DBCC CHECKDB используется не для того, чтобы гарантировать "нефиговость" данных?
Re[4]: MS SQL 2017 Developer Edition
От: wety Россия  
Дата: 08.02.19 11:13
Оценка: -1
Здравствуйте, _ABC_, Вы писали:

Да, в курсе.
Но отбирать достаточно большой функционал и даже не говорить о том, что возможно в будущем этот функционал всё же починят и он будет работать — убогая схема работы и производства софта.
В таком случае, при разработке чего-либо, нужно метить методы и свойства через Obsolete.
Но что-то я в последнее время не встречал проектов, где использовался бы этот атрибут. Во.
А как же Вы? Как же так???
Re[5]: MS SQL 2017 Developer Edition
От: _ABC_  
Дата: 08.02.19 11:23
Оценка:
Здравствуйте, wety, Вы писали:

W>Но отбирать достаточно большой функционал

Никто не отбирал функционал у тебя. DBCC CHECKDB работает ровно так же, как раньше. Возможно, в будущем его расширят, добавив проверку in-memory filegroups.

W>В таком случае, при разработке чего-либо, нужно метить методы и свойства через Obsolete.

Ты вообще не понимаешь, похоже, о чем говоришь.

W>Но что-то я в последнее время не встречал проектов, где использовался бы этот атрибут. Во.

https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2017?view=sql-server-2017
https://docs.microsoft.com/en-us/sql/database-engine/discontinued-database-engine-functionality-in-sql-server-2016?view=sql-server-2017
https://www.mssqltips.com/sqlservertip/2334/identify-deprecated-sql-server-code-with-a-server-side-trace/
Re[3]: MS SQL 2017 Developer Edition
От: BlackEric http://black-eric.lj.ru
Дата: 08.02.19 12:26
Оценка: 6 (1) +1
Здравствуйте, wety, Вы писали:

BE>>Backup/Restore? Я такого в проде еще не видел, поэтому такая проблема пока не возникала.


W>В таком случае ничто не мешает восстановить опять-таки убитую неконсистентную базу. Во.


Если цикл Backup/Restore успешно проходит, то можно считать, что бд в порядке. Бекапы не восстановимыми бывают. Но если восстановилось, то проблем не припомню.
https://github.com/BlackEric001
Re[4]: MS SQL 2017 Developer Edition
От: _ABC_  
Дата: 08.02.19 19:41
Оценка:
Здравствуйте, BlackEric, Вы писали:

BE>Если цикл Backup/Restore успешно проходит, то можно считать, что бд в порядке.

Как альтернативу dbcc checkdb для in-memory, достаточно сделать полный copy_only бэкап двух файл-групп — primary и in-memory.
Причем, их можно делать в null, чтобы дисковое пространство не занимать пустой проверкой. Восстанавливать не нужно.
Re: MS SQL 2017 Developer Edition
От: BOBKA_XPEH Новая Зеландия  
Дата: 10.02.19 21:14
Оценка: 6 (1) +1
Здравствуйте, wety, Вы писали:

W>Как же так???


Есть такой хак — https://www.brentozar.com/archive/2016/04/run-dbcc-checkdb-memory-oltp-hekaton-tables/
Гей хлопци — шлях в Европу!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.