Всем привет! Я решил написать эту статью по одной простой причине — я не нашел подробной инструкции по настройке удаленного связанного сервера между teradata и сервером ms sql. В Сбербанке данные хранятся на разных серверах: oracle, teradata, mssql. Часто (иногда по нескольку раз в день) нам с коллегами приходится совершать действия, которые очень сложно назвать «эффективными»: пишешь запрос, экспортируешь данные в файл, импортируешь на mssql-сервер, работаешь.
Время выполнения одного запроса составляет более 3 часов (около 90 миллионов строк).
«эффективная» работа
Причина столь сложных действий — отсутствие прав на создание таблиц на серверах teradata. Именно поэтому «заливаем» данные на сервер ms sql (с правами здесь все в порядке).
Это было введение, а теперь перехожу к описанию последовательности действий.
Примечание : инструкция подготовлена с использованием SQL Server Management Studio 12 и Teradata Client ver 15 (если версия Teradata ниже, например 14, то необходимо скачать дополнительное ПО с официального сайта).
Действие 1 — Настройка ODBC-соединения.
Пойдем: Панель управления\Система и безопасность\Администрирование\Источники данных ODBC В разделе «Пользовательский DSN» нажмите «Добавить».
Далее выберите драйвер «Teradata» и заполните поля.
Важно: запомните название нового источника.
Оно нам еще понадобится.
Акт 2 — Связанный сервер Откройте Management Studio — Объекты сервера — Связанные серверы — Создать связанный сервер.
Поля в разделе «Общие»: Связанный сервер — произвольное имя, Поставщик — Поставщик Microsoft OLE DB для драйверов ODBC, Имя продукта — ServiceNow, Источник данных — имя источника данных, созданного в «Действии 1».
Раздел связанного сервера "Общие"
Поля раздела «Безопасность/Безопасность»: Удаленный вход – имя учетной записи на сервере Teradata, С паролем – пароль учетной записи на сервере Teradata.
Раздел связанного сервера "Безопасность"
Чтобы никто не мог зайти через связанный сервер (терадата) под моим УЗ, я добавлю сопоставление логинов на локальном и удаленном серверах.
Давайте сохраним.
Сопоставление входов на локальных и удаленных серверах
Откройте новый запрос.
Пишем select* from openquery(SERVICENOW, 'select * from Dual') и получаем ошибку.
Доступ закрыт. Вперед, продолжать.
Пример ошибки Акт 3 — SQLEXPRESS и встроенный ультразвук
Перейдите в Диспетчер конфигурации SQL — Свойства SQL-сервера (MSSQLSERVER).
Поменяйте галочку на «Использовать встроенный УЗ (Локальную систему) для входа».
SQLEXPRESS и встроенный УЗ
Если вы запустите Management Studio 12 от имени администратора, она будет работать.
Нам как администратору это не нужно.
Продолжим настройку.
Акт 4 - SQLEXPRESS и сетевой сервис Перейдите в Диспетчер конфигурации SQL — Свойства SQL-сервера (MSSQLSERVER).
Поменяйте галочку на «Использовать встроенный УЗ (Сетевой сервис) для входа», но под УЗ Служба NT\MSSQLSERVER .
SQLEXPRESS и сетевая служба
Должно получиться вот так.
Диспетчер конфигурации SQL-сервера Действие 5 - Обслуживание компонентов
win+R - dcomcnfg - компьютеры - свойства мой компьютер - вкладка свойств по умолчанию.
Заполните пример ниже:
Служба компонентов Действие 6 — Настройка DCOM
win+R — dcomcnfg — компьютеры — мой компьютер — настройки DCOM — свойства msdainitialize. Скопируйте идентификатор приложения/код приложения.
Необходим для поиска объекта в реестре Windows.
Свойства объекта msdainitialize
Дальше win+R - regedit - поиск.
Вам необходимо найти объект в реестре по коду приложения и ввести его разрешение.
msdainitialize реестра объектов
Полный контроль для локального администратора ПК.
Свойства объекта msdainitialize в реестре WINDOWS
Подтвердите и сохраните.
Мы сделали это для того, чтобы раздел Безопасность объекта (кода приложения) стал активным.
Безопасность объекта раздела msdainitialize
Настроить/Настройки - Редактировать (кнопка стала активной) - добавить в сервис Служба NT\MSSQLSERVER полные права.
Полные права на службу MSSQLSERVER.
Вам необходимо предоставить права на сервис в разделах: Разрешение на запуск и активацию, Разрешение на доступ, Разрешение на настройку.
Далее необходимо перезапустить службу MSQSQLSERVER — Перезапустить.
Служба NT\MSSQLSERVER .
Действие 7 COM-безопасность/COM-безопасность win+R — dcomcnfg — компьютеры — мой компьютер — настройки DCOM Измените значение по умолчанию, добавив службу Служба NT\MSSQLSERVER .
Назначьте ему максимальные права для разделов: Разрешение на запуск и активацию, Разрешение на доступ.
Разрешение доступа
Далее необходимо перезапустить службу MSQSQLSERVER — Перезапустить.
Служба NT\MSSQLSERVER .
Запустите select * from openquery (SERVICENOW, «выберите * from Dual»).
Работает.
Выполнение запроса
Надеюсь, что данная инструкция поможет с настройкой технологии удаленного доступа.
Теперь мы импортируем данные напрямую на сервер mssql (экономя не минуты, а часы).
Запрос, выполнение которого ранее занимало около 3 часов (экспорт данных в файл, импорт в mssql), после настройки технологии выполняется за 47 секунд (импорт результата запроса непосредственно в mssql).
Теги: #Администрирование сервера #Администрирование базы данных #sql #ms sql server #Microsoft SQL Server #teradata #удаленный сервер #создание связанного сервера
-
Новые Глифы Или Иероглифы Будущего
19 Oct, 24 -
Защитите Свой Ipod!
19 Oct, 24 -
К Вопросу «Потерянного Времени»
19 Oct, 24