Как максимально быстро и надёжно скопировать данные с одного сервера на другой28.10.2024, 17:01. Показов 942. Ответов 15
Метки нет (Все метки)
Приветствую!
Есть главный сервер А. На нём есть 10 небольших таблиц-справочников до 5 тыс. строк каждая. Есть ещё 10 дочерних серверов. В каждом из них есть таблицы с такими же названиями и структурой. Нужно с заданной периодичностью (джоб) обновлять данные в таблицах дочерних серверов данными с главного сервера. Сравнивать не нужно: достаточно очистить каждую таблицу на дочернем сервере и наполнить её данными из таблицы главного сервера. Как это сделать наиболее быстро? Родственная моя тема: Обмен данными и выборочная синхронизация между серверами
0
|
|
| 28.10.2024, 17:01 | |
|
Ответы с готовыми решениями:
15
Как скопировать данные с одного хоста на другой. Как скопировать данные из одного dataGridView в другой?
|
|
|
|||||||
| 28.10.2024, 17:41 | |||||||
1
|
|||||||
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 28.10.2024, 17:57 | |
|
только стоит помнить что триггера на удаление не работают при truncate, да и из журнала транзакций если что таблицу не восстановишь. зато быстро
2
|
|
| 28.10.2024, 18:03 [ТС] | |
|
Andrey-MSK, я пробовал наоборот: из мастера наполнять дочерние сервера. И делать это с помощью динамического SQL, потому что 10 серверов по 10 это 100 блоков кода.
В динамике ругался "слишком много префиксов, максимум можно 2". Сервер.БД.схема.таблица это 3 префикса. Как уменьшить — не знаю. Аватар, спасибо
0
|
|
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 28.10.2024, 18:31 | |
Сообщение было отмечено Jack Famous как решение
Решение
процедуру на принимающем сервере, там и динамика не потребуется. а вызов с передающего
1
|
|
| 28.10.2024, 18:34 [ТС] | |
|
Аватар, так и Андрей советовал. Это быстрее или просто единственный нормально работающий напрямую способ?
Динамику исключить? Это не проблема, в принципе, если без неё заметно быстрее...
0
|
|
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
||
| 28.10.2024, 18:44 | ||
|
1
|
||
| 28.10.2024, 18:59 [ТС] | |
|
Аватар, сравнивать можно с отправкой из мастера на рабов.
Получается, тянуть быстрее и/или проще, чем толкать?)
0
|
|
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 28.10.2024, 19:09 | |
|
в любом случае отправляет мастер, а инсертит раб, поэтому скорее всего без разницы, не проверял. проведи свой эксперимент, проверь предположение
0
|
|
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
|
| 28.10.2024, 20:56 | |
|
Источник - bcp out
Приемник - забрать файлы из источника, truncate, bcp in
1
|
|
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 28.10.2024, 23:06 | |
|
bcp наверняка же select для копирования и insert или bulk insert для записи использует. да еще промежуточный файл. сомнительно что быстрее будет
1
|
|
|
|
||||
| 29.10.2024, 08:48 | ||||
1
|
||||
|
1304 / 358 / 97
Регистрация: 14.10.2022
Сообщений: 1,089
|
|
| 29.10.2024, 09:58 | |
Сообщение было отмечено Jack Famous как решение
Решение
1. Вынести все справочники в отдельную базу.
2. Сформировать в продуктовой базе алиасы, нацеленные на таблицы данной базы 3. Распространять базу справочников через бэкап/рестор. (Замечу, что это можно делать с 0-вым временем простоя, т.к. восстанавливать БД справочников можно в рядомстоящую базу, а по окончании этого - просто пересоздавать алиасы в продакщене на другую БД). Или: 1. Копировать данные в таблицы, аналогичные таблицам справочников по структуре, с помощью bcp / bulk insert из предварительно подготовленного bcp плоского файла / задачи ssis / просто insert into c удаленного сервера. 2. Переключить таблицы справочников в эти рядомстоящие таблицы, с помощью alter table switch Тоже нулевое время простоя. Кроме того, обратите внимание, что эти способы исключают вариант с недокопированностью данных (при правильном подходе, разумеется).
1
|
|
| 29.10.2024, 09:58 [ТС] | |
|
Andrey-MSK, Аватар, invm, uaggster, большое вам спасибо!
Для больших объёмов я бы использовал bcp, но тут не думаю, что он как-то заметно выиграет, зато гемора больше с ним. Попробую толкать и тянуть. Отпишусь по результатам. Если не понравится, буду разбирать варианты от invm и uaggster (всё равно нужно уметь).
0
|
|
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
|
| 29.10.2024, 10:18 | |
|
Плюс, это стандартная задача для снепшот-репликации
1
|
|
| 29.10.2024, 15:36 [ТС] | |||
|
Вот задача, когда справочники пополняются на каждом сервере — это да. Тут, наверное, придётся погрузится… UPD:
0
|
|||
| 29.10.2024, 15:36 | |
|
Помогаю со студенческими работами здесь
16
Apache poi, как скопировать данные с одного листа на другой
Как передать данные с одного сервера на другой? Скопировать данные из одного файла в другой Скопировать данные из одного StringGrid-а в другой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|