Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL Server Management Studio (SSMS) Запросы между серверам / 25 сообщений из 43, страница 1 из 2
25.08.2020, 14:22
    #39992275
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
Здравствуйте!
Подскажите, пожалуйста, интересует вот такой вопрос: Существует 2 сервера на первом сервере идет запись с измерительного прибора (прибор автоматически создал для себя БД и записывает данные в таблицу "Result") Необходимо запрашивать c таблицы "Result" нужные столбцы и записывать на второй сервер запрашиваемые данные. Запрос должен повтрятся раз в 10-20 минут.
...
Рейтинг: 0 / 0
25.08.2020, 15:43
    #39992317
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
ArtDem,

на втором сервере делаешь линк.сервер для первого - https://docs.microsoft.com/en-us/sql/relational-databases/linked-servers/create-linked-servers-sql-server-database-engine?view=sql-server-ver15

и дальше создаешь Job с нужным расписанием, в котором и будет "запрашивать c таблицы "Result" нужные столбцы и записывать на второй сервер запрашиваемые данные"
...
Рейтинг: 0 / 0
25.08.2020, 15:47
    #39992319
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
court
ArtDem,

на втором сервере делаешь линк.сервер для первого - https://docs.microsoft.com/en-us/sql/relational-databases/linked-servers/create-linked-servers-sql-server-database-engine?view=sql-server-ver15

и дальше создаешь Job с нужным расписанием, в котором и будет "запрашивать c таблицы "Result" нужные столбцы и записывать на второй сервер запрашиваемые данные"


вариант 2 - SSIS пакет + тот же Job, но, имхо, тебя это не заинтересует
(но при большом объеме загружаемых/синхронизируемых данных, этот вариант может существенно выигрывать ...)
...
Рейтинг: 0 / 0
25.08.2020, 16:42
    #39992338
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
court,

не все так просто - прибору нельзя мешать записывать в таблицу. Здесь нужен вариант с темпоральной таблицей или CDC. Первый вариант заметно проще. Также можно настроить репликацию для передачи данных, если позволяет конфигурация.
...
Рейтинг: 0 / 0
26.08.2020, 16:02
    #39992589
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
court

на втором сервере делаешь линк.сервер для первого - https://docs.microsoft.com/en-us/sql/relational-databases/linked-servers/create-linked-servers-sql-server-database-engine?view=sql-server-ver15

и дальше создаешь Job с нужным расписанием, в котором и будет "запрашивать c таблицы "Result" нужные столбцы и записывать на второй сервер запрашиваемые данные"

Спасибо!

Я сделал линк, можно поподробнее, как создать Job ?
...
Рейтинг: 0 / 0
26.08.2020, 16:09
    #39992593
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
ArtDem,

Агент SQL сервер, задания, добавить.
...
Рейтинг: 0 / 0
26.08.2020, 16:09
    #39992594
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
...
Рейтинг: 0 / 0
26.08.2020, 17:43
    #39992637
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
Владислав Колосов,
Владислав Колосов,
Я имел виду, как реализовать вот такую задачу: запись данных на второй сервер.
Что я сделал, создал задачу с помощью вставил запрос:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT [ID]
      ,[Point_ID]
      ,[Epoch]
      ,[Easting]
      ,[Northing]
      ,[Height]
      ,[EastingDiff]
      ,[NorthingDiff]
      ,[HeightDiff]    
  FROM [WIN-PIGV1ANGL00].[NordSteam].[dbo].[Results]


Понимаю, что этого не достаточно, нужно, как то теперь это записать в БД Match на сервере 2.
Есть возможность подсказать ?
Спасибо!
...
Рейтинг: 0 / 0
26.08.2020, 17:54
    #39992644
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
авторкак то теперь это записать в БД Match на сервере 2Командой insert конечно
https://docs.microsoft.com/en-us/sql/t-sql/statements/insert-transact-sql?view=sql-server-ver15
...
Рейтинг: 0 / 0
26.08.2020, 17:55
    #39992645
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
ArtDem
как то теперь это записать в БД Match на сервере 2.

в шаге Job-а измени запрос на INSERT
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
INSERT INTO [Match].[dbo].[Results](
       [ID]
      ,[Point_ID]
      ,[Epoch]
      ,[Easting]
      ,[Northing]
      ,[Height]
      ,[EastingDiff]
      ,[NorthingDiff]
      ,[HeightDiff])
SELECT [ID]
      ,[Point_ID]
      ,[Epoch]
      ,[Easting]
      ,[Northing]
      ,[Height]
      ,[EastingDiff]
      ,[NorthingDiff]
      ,[HeightDiff]    
  FROM [WIN-PIGV1ANGL00].[NordSteam].[dbo].[Results]
...
Рейтинг: 0 / 0
26.08.2020, 21:04
    #39992691
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
court, Спасибо!
Я правильно понимаю, что расписание тут надо настраивать (см.скрин).
Я так настраивал для бэкапа и у меня все работает, а вот тут нет, запись прошла после того как вызвал контекстное меню "Запустить задание на шаг" и после этого таблица не обновляется.
...
Рейтинг: 0 / 0
26.08.2020, 21:25
    #39992697
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
ArtDem,

проверьте выполнение по журналу задания.
...
Рейтинг: 0 / 0
26.08.2020, 22:17
    #39992717
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
Владислав Колосов,

Да,ошибки выдает.
Не удалось завершить задание. Запуск задания был произведен Расписание 19 (SA). Последним выполнявшимся шагом был шаг 1 (SE).
...
Рейтинг: 0 / 0
26.08.2020, 22:55
    #39992728
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
ArtDem
Владислав Колосов,

Да,ошибки выдает.
Не удалось завершить задание. Запуск задания был произведен Расписание 19 (SA). Последним выполнявшимся шагом был шаг 1 (SE).

Бэкап выполняется без проблем, агент работает.
...
Рейтинг: 0 / 0
26.08.2020, 23:00
    #39992729
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
ArtDem
ArtDem
Владислав Колосов,

Да,ошибки выдает.
Не удалось завершить задание. Запуск задания был произведен Расписание 19 (SA). Последним выполнявшимся шагом был шаг 1 (SE).

Бэкап выполняется без проблем, агент работает.
Если для джоба задать расписание, он будет выполняться нормально. Если для джоба не задать расписание, то он не будет выполняться никогда. Ну еще если для джоба сделать непонятные действия, то результат тоже будет не понятный. У вас какой из трех вариантов?
...
Рейтинг: 0 / 0
26.08.2020, 23:34
    #39992739
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
Гавриленко Сергей Алексеевич, Первый вариант, я уже настраивал джоп для бэкапа и все работает.
Настроил доступ к папкам, так же агент был подключен адекватно, через администратора.
Бэкап по сей день работает.
Запрос тоже адекватно написан, я проверял.
Мне кажется, что это из за первого сервера, так как там нет агента, но с другой стороны, я же сделал линк между первым и вторым сервером.
...
Рейтинг: 0 / 0
26.08.2020, 23:52
    #39992745
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
Стало понятнее, ага.

Давайте для простоты вы забудете про джоб с бэкапом и чётко так прям по пунктам расскажете следующее:

1. На каком сервере есть данные.
2. На какой сервер их надо перетащить.
3. На каком сервере из двух вы сделали линкованный сервер.
4. На каком сервере из двух вы пытаетесть сделать джоб.
5. На каком сервере из двух есть агент, а на каком нет.

А то серверов аж целых два, и за вашими руками и мыслями не уследить.
...
Рейтинг: 0 / 0
27.08.2020, 00:27
    #39992757
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
Гавриленко Сергей Алексеевич
Стало понятнее, ага.

Давайте для простоты вы забудете про джоб с бэкапом и чётко так прям по пунктам расскажете следующее:

1. На каком сервере есть данные.
2. На какой сервер их надо перетащить.
3. На каком сервере из двух вы сделали линкованный сервер.
4. На каком сервере из двух вы пытаетесть сделать джоб.
5. На каком сервере из двух есть агент, а на каком нет.

А то серверов аж целых два, и за вашими руками и мыслями не уследить.



1. Первый сервер имя "WIN-PIGV1ANGL00" - этот сервер был установлен автоматически при установки ПО от прибора, Второй сервер был создан мною так как нужен был Агент имя сервера "WIN-PIGV1ANGL00\MSSQLSERVER02" тут я создал БД Match и таблицу Result.
2. На второй.
3. На втором.
4. На втором.
5. На первом нет, на втором есть.

Добавлю от себя, удалил джоп и таблицу, и сделал все заново, агент сработал один раз, второй запуск был уже с ошибкой.
...
Рейтинг: 0 / 0
27.08.2020, 00:36
    #39992759
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
ArtDem
Гавриленко Сергей Алексеевич
Стало понятнее, ага.

Давайте для простоты вы забудете про джоб с бэкапом и чётко так прям по пунктам расскажете следующее:

1. На каком сервере есть данные.
2. На какой сервер их надо перетащить.
3. На каком сервере из двух вы сделали линкованный сервер.
4. На каком сервере из двух вы пытаетесть сделать джоб.
5. На каком сервере из двух есть агент, а на каком нет.

А то серверов аж целых два, и за вашими руками и мыслями не уследить.



1. Первый сервер имя "WIN-PIGV1ANGL00" - этот сервер был установлен автоматически при установки ПО от прибора, Второй сервер был создан мною так как нужен был Агент имя сервера "WIN-PIGV1ANGL00\MSSQLSERVER02" тут я создал БД Match и таблицу Result.
2. На второй.
3. На втором.
4. На втором.
5. На первом нет, на втором есть.

Добавлю от себя, удалил джоп и таблицу, и сделал все заново, агент сработал один раз, второй запуск был уже с ошибкой.

См. Скрин
...
Рейтинг: 0 / 0
27.08.2020, 01:19
    #39992763
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
Там еще плюсики есть на вашем скрине, вы их пробовали нажимать, ошибки читать?
В которых скорее всего написано, что в таблице [Match].[dbo].[Results] уже есть записи с каким-то идентификатором.

Надо как бы понимать, что вы делаете, а не слепо верить, что ваш запрос адекватный. Не адекватный он.

Из таблицы [WIN-PIGV1ANGL00].[NordSteam].[dbo].[Results] надо выбирать не все записи, а только те, которых еще нет в [Match].[dbo].[Results]. Или, если предположить, что ID монотонно возрастает, то те, у которых идентификатор больше, чем максимальный в [Match].[dbo].[Results].

Как-то так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
INSERT INTO [Match].[dbo].[Results](
       [ID]
      ,[Point_ID]
      ,[Epoch]
      ,[Easting]
      ,[Northing]
      ,[Height]
      ,[EastingDiff]
      ,[NorthingDiff]
      ,[HeightDiff])
SELECT [ID]
      ,[Point_ID]
      ,[Epoch]
      ,[Easting]
      ,[Northing]
      ,[Height]
      ,[EastingDiff]
      ,[NorthingDiff]
      ,[HeightDiff]    
  FROM [WIN-PIGV1ANGL00].[NordSteam].[dbo].[Results] a
where
  a.id > ( select max( x.id ) from [Match].[dbo].[Results] x )
...
Рейтинг: 0 / 0
27.08.2020, 21:16
    #39993156
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
Спасибо большое ребята.
Все работает.
...
Рейтинг: 0 / 0
28.08.2020, 08:12
    #39993225
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
ArtDem
court, Спасибо!
Я правильно понимаю, что расписание тут надо настраивать (см.скрин).
Я так настраивал для бэкапа и у меня все работает, а вот тут нет, запись прошла после того как вызвал контекстное меню "Запустить задание на шаг" и после этого таблица не обновляется.


Бекап делается каждые 10 СЕКУНД???
...
Рейтинг: 0 / 0
28.08.2020, 16:01
    #39993501
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
SQL2008,
Нет, это для теста было сделано, два раза в неделю.
...
Рейтинг: 0 / 0
01.09.2020, 13:04
    #39994418
ArtDem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
Добрый день! Возник один вопрос, как записывать только новые данные в таблицу?
Запрос между двумя таблицами.
Запрашиваем новые данные с таблицы dbo.Results и записываем в таблицу dbo.Match.

Столбцов Point_ID=24 есть еще столбец Epoch - время измерения.
Нужно, чтобы записывались только свежие данные.
Подскажите, как правильно это сделать?
...
Рейтинг: 0 / 0
01.09.2020, 13:07
    #39994421
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Server Management Studio (SSMS) Запросы между серверам
ArtDem
Добрый день! Возник один вопрос, как записывать только новые данные в таблицу?
Запрос между двумя таблицами.
Запрашиваем новые данные с таблицы dbo.Results и записываем в таблицу dbo.Match.

Столбцов Point_ID=24 есть еще столбец Epoch - время измерения.
Нужно, чтобы записывались только свежие данные.
Подскажите, как правильно это сделать?

Использовать MERGE.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL Server Management Studio (SSMS) Запросы между серверам / 25 сообщений из 43, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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