Открываем Microsoft SQL Server 2005 \Configuration Tools \SQL Server Configuration Manager.
На всякий случай проверяем, открыты ли именованные каналы – SQL Server 2005 Network Configuration\ Protocols for MSSQLSERVER. Нам нужно, чтобы и Named Pipes и TCP/IP были Enabled. Помимо этого в SQL Native Client Configuration/Client Protocols Named Pipes и TCP/IP также должны быть Enabled.
Обратите внимание, что после этих действий обязательно нужно перезапустить службы: SQL Server 2005 Services – SQL Server (MSSQLSERVER) и SQL Server Agent(MSSQLSERVER).
Заходим на вкладку Native Client Configuration/Aliases. Выбираем New Alias и пишем все так, как показано на рисунке:


На вкладке General указываем следующие значения:
Linked Server – VPN (имя нашего коннекта)
Server Type – Other data source
Product Name – sql_server (волшебные слова – менять не рекомендуется)
Provider – SQL Native Client
Data Source – х.х.х.х (ip-адрес сервера, к которому мы коннектимся)

Remote login – sa
With password – пароль sa (в БД, куда реплицируем данные):



Настройка репликации
1. Предварительная подготовка реплицируемых данных. Так как вставка значений в столбцы счетчиков (идентифицирующие столбцы) невозможна, необходимо в таблицах подписчика, участвующих в репликации, установить для таких столбцов значение свойства "Не для репликации" - Да:

2. Проверка правильности имен серверов, участвующих в репликации.
В репликации возможно использование только настоящих имен серверов. Если после установки имя сервера менялось или при попытке настройки репликации возникает ошибка: "В репликации SQL Server необходимо настоящее имя сервера для соединения с ним. Соединение с использованием псевдонима сервера, IP-адреса или любого другого имени не поддерживается. Укажите настоящее имя сервера, "server_name"" необходимо выполнить следующую проверку:
select @@servername |
select serverproperty('servername') |
Если запросы вернули разные результаты, необходимо выполнить:
exec sp_dropserver 'oldname', 'droplogins' |
exec sp_addserver 'newname', 'local' |
После чего перезапустить службу SQL Server.
3. Настройка распространителя. Для настройки распространителя необходимо открыть Microsoft SQL Server Management Studio и в контекстном меню пункта Replication выбрать Configure Distibution. Далее необходимо выбрать сервер, который будет использоваться качестве дистрибьютера (тот, с которого будет браться информация):







Sp_removedbreplication |
@db_name = ‘имя вашей БД’ |
@type = ‘tran’ |
5. Настройка публикации Указываем БД, которая будет использоваться качестве распространителя. Для этого нажимаем правой кнопкой мыши на закладку Replication и выбираем publisher properties. На закладке Publication Databases отмечаем галочкой нужную БД (в столбце Transactional):



Для первой публикации отмечаем views: v_kontr_2 и v_kontr_bank_2. (Отметим, что каждый из view's представляет собой выборку из одной таблицы. Используются индексированные вьювы для того чтобы можно было реплицировать часть колонок в определенные таблицы).
Выделим левой кнопкой мыши поочередно каждую из них, нажимаем кнопку Article Properties\Set properties of Highlighted Indexed View Article. В открывшемся окне меняем свойство Destination object name на spr_kontr и kontr_bank соответственно (это таблицы, в которые в конечном итоге ).





7. Создаем подписку
Прежде чем создать подписку необходимо обеспечить доступ SQL Server’a на удаленный SQL Server. Для этого выполняем следующие действия: Заходим на сервере-издателе в папку C:\WINNT\system32\drivers\etc, открываем файл hosts посредством блокнота и добавляем в него IP-адрес сервера, к которому мы коннектимся.
Теперь нажимаем правой кнопкой мыши на только что созданной публикации и выбираем New Subscriptions. В первом окне выбираем созданную ранее публикацию kontr_publication. Во втором окне указываем, что агент распространителя будет запускаться на издателе:



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






Сделав изменения в нашей БД в справочнике КА и нажав на публикацию правой кнопкой мыши – View Snapshot Agent Status мы увидим, что все работает:

Очень хорошая и детальная статья. Только немножко настораживает экстенсивное использование аккаунта sa - мне кажется, это не очень хорошая security practice, нет?
ОтветитьУдалить