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

Откуда: (((@)))
Сообщений: 8711
Есть довольно-таки простая задача:
На рабочем сервере в рабочей базе что-то происходит.
Хочу каждые три-пять минут забирать информацию с рабочего сервера на свой и уже оттуда делать "отчёты".
Не хочу репликацию - там некоторые таблицы в минимальном варианте модифицируются.
В какую сторону смотреть что бы нагрузка на основной сервер была минимальной?
Целостность/непротиворечивость данных на вторичном сервере в "отчётной базе" не нужна. Даже если дублирование раз в год/квартал/месяц/неделю отвалится на полдня,- то это не сильно страшно.

Дифференцированные бэкапы в силу высокой частоты обновлений не приветствуются.

Пока думаю насчёт растянутого по времени копирования таблиц типа truncate table MyTable; Insert into MyTable (field1, field2...) select field1, field2... from LinkedServer.WorkDataBase.dbo.SourceTable WITH (NOLOCK).
Но есть два момента:
1. есть длииииинные таблицы (новые строки в них я чётко вижу, а вот удаление старых гарантированно на 100% "засечь" не могу)
2. есть всё-таки связанные первичными/внешними ключами таблицы (и это как раз "длиииинные таблицы) которые лучше вытаскивать попарно,- что не есть хорошо при их объёме.

Хочу понять КАК реализуются механизмы (ну, типа, always on, снэпшоты ....) хотя бы примерно, что бы оценить нагрузку на основной сервер.


Модель восстановления - simple (но это не принципиально)
Исходный сервер - MSSQL 2008 R2 , целевой 2012 или любой другой (не принципиально).
С рабочим (исходным) MSSQL Server (и Win Server) могу много чего делать (в рамках разумного), с отчётным сервером (как с сиквелом, так и с виндой вообще) - всё что можно через терминальное окно локальному (и не только) администратору.
--------------------------
No ROM Basic...
26 апр 18, 20:21    [21372010]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36970
SIMPLicity_
Хочу понять КАК реализуются механизмы (ну, типа, always on, снэпшоты ....)
Про технологию "снэпшоты" я не в курсе, а AlwaysOn реализуется через передачу и применение лога на вторичных репликах.
27 апр 18, 03:01    [21372482]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7358
SIMPLicity_
Пока думаю насчёт растянутого по времени копирования таблиц типа truncate table MyTable; Insert into MyTable (field1, field2...) select field1, field2... from LinkedServer.WorkDataBase.dbo.SourceTable WITH (NOLOCK).
Но есть два момента:
1. есть длииииинные таблицы (новые строки в них я чётко вижу, а вот удаление старых гарантированно на 100% "засечь" не могу)
2. есть всё-таки связанные первичными/внешними ключами таблицы (и это как раз "длиииинные таблицы) которые лучше вытаскивать попарно,- что не есть хорошо при их объёме.

Буду краток.

https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql?view=sql-server-2017
27 апр 18, 05:44    [21372504]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
aleks222
Member

Откуда:
Сообщений: 952
Relic Hunter
SIMPLicity_
Пока думаю насчёт растянутого по времени копирования таблиц типа truncate table MyTable; Insert into MyTable (field1, field2...) select field1, field2... from LinkedServer.WorkDataBase.dbo.SourceTable WITH (NOLOCK).
Но есть два момента:
1. есть длииииинные таблицы (новые строки в них я чётко вижу, а вот удаление старых гарантированно на 100% "засечь" не могу)
2. есть всё-таки связанные первичными/внешними ключами таблицы (и это как раз "длиииинные таблицы) которые лучше вытаскивать попарно,- что не есть хорошо при их объёме.

Буду краток.

https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql?view=sql-server-2017


Ога merge одной нехилой таблицы в другую нехилую таблицу... это как раз для тредстартера.

ЗЫ. Тредстартер, по факту, хочет самопальную репликацию. Т.е. чудак, но на известную букву.
Ну, флаг ему в руки.
27 апр 18, 08:44    [21372625]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
L_argo
Member

Откуда:
Сообщений: 1212
па сабжу: Чтобы минимизировать обмен, нужно четко знать, что забирать.
Нужно как-то помечать измененные и удаленные записи. Только тогда можно уменьшить трафик.
Удаление можно логгировать триггером (логгировать только список ключей).
27 апр 18, 09:44    [21372736]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
londinium
Member

Откуда: Киев
Сообщений: 1169
Change Data Capture (CDC)+ SSIS-пакеты для перевозки данных
27 апр 18, 10:15    [21372810]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
invm
Member

Откуда: Москва
Сообщений: 9347
SIMPLicity_
Не хочу репликацию - там некоторые таблицы в минимальном варианте модифицируются.
Это не обязательно приводит к невозможности использовать штатную репликацию.
27 апр 18, 10:30    [21372859]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
Eleanor
Member

Откуда:
Сообщений: 2867
SIMPLicity_
Хочу понять КАК реализуются механизмы (ну, типа, always on, снэпшоты ....) хотя бы примерно, что бы оценить нагрузку на основной сервер.

Снэпшоты - это настроить зеркалирование и периодически делать на зеркальном сервере снэпшоты БД.

Чтобы не было задержек при фиксации транзакций на основном сервере, настраивается асинхронное зеркалирование. Зеркало будет отставать всего на несколько секунд, но снэпшоты будет отражать состояние БД на момент их снятия. Поэтому придется периодически снимать новые, и решать как при этом не затронуть уже запущенные отчеты.

Снятие снэпшотов на основной сервер влиять не должно, влияет только само зеркалирование.
Все записи из лога транзакций сжимаются и отправляются на зеркало. Можно пустить этот трафик по другому сетевому интерфейсу, чтобы не мешать основной нагрузке.

Дополнительные плюсы зеркалирования:
- настраивается проще любого другого средства высокой доступности
- появится резервная копия БД, куда можно переключиться в случае сбоя основного сервера
- битые страницы на основном сервере автоматически восстанавливаются с зеркального

SIMPLicity_
удаление старых гарантированно на 100% "засечь" не могу

Кроме Change Data Capture можно использовать еще и Change Tracking. CT есть даже в Standard версии Sql сервера.
27 апр 18, 12:15    [21373356]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8711
Relic Hunter
SIMPLicity_
Пока думаю насчёт растянутого по времени копирования таблиц типа truncate table MyTable; Insert into MyTable (field1, field2...) select field1, field2... from LinkedServer.WorkDataBase.dbo.SourceTable WITH (NOLOCK).
Но есть два момента:
1. есть длииииинные таблицы (новые строки в них я чётко вижу, а вот удаление старых гарантированно на 100% "засечь" не могу)
2. есть всё-таки связанные первичными/внешними ключами таблицы (и это как раз "длиииинные таблицы) которые лучше вытаскивать попарно,- что не есть хорошо при их объёме.

Буду краток.

https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql?view=sql-server-2017


Ээээ.... это точно "ТА" ссылка?
Для мерджа нужны как минимум две таблицы и одна из них должна быть высосана с сервера-источника. Вопрос - как "легко" высосать таблицу. а не как найти "прибитые" записи....
27 апр 18, 19:44    [21375238]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8711
aleks222
Relic Hunter
пропущено...

Буду краток.

https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql?view=sql-server-2017


Ога merge одной нехилой таблицы в другую нехилую таблицу... это как раз для тредстартера.

ЗЫ. Тредстартер, по факту, хочет самопальную репликацию. Т.е. чудак, но на известную букву.
Ну, флаг ему в руки.


Это пройденный этап и ни чего страшного в подобном нет. Репликация в MS SQL Server изначально "самопальная" была (я по общему принципу, - в версиях 6.5, 7 и 2000, - добавлялись (при необходимости) поля, вешались триггера и проч... ) - и ни кого это особо не смущало.

Вопрос был не совсем так поставлен..
27 апр 18, 19:47    [21375242]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8711
Eleanor
SIMPLicity_
Хочу понять КАК реализуются механизмы (ну, типа, always on, снэпшоты ....) хотя бы примерно, что бы оценить нагрузку на основной сервер.

Снэпшоты - это настроить зеркалирование и периодически делать на зеркальном сервере снэпшоты БД.

Чтобы не было задержек при фиксации транзакций на основном сервере, настраивается асинхронное зеркалирование. Зеркало будет отставать всего на несколько секунд, но снэпшоты будет отражать состояние БД на момент их снятия. Поэтому придется периодически снимать новые, и решать как при этом не затронуть уже запущенные отчеты.

Снятие снэпшотов на основной сервер влиять не должно, влияет только само зеркалирование.
Все записи из лога транзакций сжимаются и отправляются на зеркало. Можно пустить этот трафик по другому сетевому интерфейсу, чтобы не мешать основной нагрузке.

Дополнительные плюсы зеркалирования:
- настраивается проще любого другого средства высокой доступности
- появится резервная копия БД, куда можно переключиться в случае сбоя основного сервера
- битые страницы на основном сервере автоматически восстанавливаются с зеркального

SIMPLicity_
удаление старых гарантированно на 100% "засечь" не могу

Кроме Change Data Capture можно использовать еще и Change Tracking. CT есть даже в Standard версии Sql сервера.


Ок. Покопаюсь подробнее в этом направлении...
27 апр 18, 19:49    [21375244]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
Барсук-копатель
Member [заблокирован]

Откуда: Московский парк
Сообщений: 94884
Service Broker
28 апр 18, 09:07    [21376105]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
aleks222
Member

Откуда:
Сообщений: 952
SIMPLicity_
aleks222
пропущено...


Ога merge одной нехилой таблицы в другую нехилую таблицу... это как раз для тредстартера.

ЗЫ. Тредстартер, по факту, хочет самопальную репликацию. Т.е. чудак, но на известную букву.
Ну, флаг ему в руки.


Это пройденный этап и ни чего страшного в подобном нет. Репликация в MS SQL Server изначально "самопальная" была (я по общему принципу, - в версиях 6.5, 7 и 2000, - добавлялись (при необходимости) поля, вешались триггера и проч... ) - и ни кого это особо не смущало.

Вопрос был не совсем так поставлен..


Вопрос поставлен бездарно.

Репликация транзакций - тоже репликация. А триггеров нема...

https://docs.microsoft.com/ru-ru/sql/relational-databases/replication/transactional/transactional-replication?view=sql-server-2017
28 апр 18, 15:10    [21377363]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2395
SIMPLicity_
Не хочу репликацию - там некоторые таблицы в минимальном варианте модифицируются.

хочу кататься, но не хочу покупать автомобиль. его надо иногда ремонтировать.
28 апр 18, 15:23    [21377408]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8711
StarikNavy
SIMPLicity_
Не хочу репликацию - там некоторые таблицы в минимальном варианте модифицируются.

хочу кататься, но не хочу покупать автомобиль. его надо иногда ремонтировать.

низачот: есть каршаринг и есть такси - надо только платить деньги и иметь права (для первого варианта) ...
28 апр 18, 18:48    [21377871]     Ответить | Цитировать Сообщить модератору
 Re: Популярно о технологиях переноса информации из базы в базу. Где почитать?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36970
SIMPLicity_
StarikNavy
пропущено...

хочу кататься, но не хочу покупать автомобиль. его надо иногда ремонтировать.

низачот: есть каршаринг и есть такси - надо только платить деньги и иметь права (для первого варианта) ...
Ну, есть бабло -- наймите, вам сделают.
28 апр 18, 19:17    [21377927]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить