Учебник. Подготовка SQL Server к репликации (издатель, распространитель, подписчик)
Область применения: SQL Server
Перед тем как настраивать топологию репликации, важно предусмотреть средства безопасности. В этом руководстве объясняется, как лучше защитить топологию репликации. Также из него вы узнаете, как настроить распространение, которое является первым этапом репликации данных. В первую очередь необходимо пройти именно этот учебник.
Примечание.
Чтобы обеспечить безопасную репликацию данных между серверами, выполните все рекомендации, приведенные в статье Рекомендации по защите репликации.
В этом учебнике описывается, как подготовить сервер для безопасного выполнения репликации с минимальным числом привилегий.
В этом руководстве описано следующее:
- создание учетных записей Windows для репликации;
- подготовка папки моментальных снимков;
- настройка распространения.
Необходимые компоненты
Это руководство предназначено для пользователей, знакомых с основными операциями с базами данных, но имеющих ограниченный опыт работы с репликацией.
Для работы с этим учебником требуется SQL Server, среда SQL Server Management Studio (SSMS) и база данных AdventureWorks.
На сервере-издателе (источник) установите следующее:
Любой выпуск SQL Server, кроме SQL Server Express или SQL Server Compact. Эти выпуски не могут быть издателями репликации.
Образец базы данных
AdventureWorks2022
. Для повышения безопасности примеры баз данных по умолчанию не устанавливаются.
На сервере подписчика (назначение) установите любой выпуск SQL Server, кроме SQL Server Compact. SQL Server Compact не может быть подписчиком в репликации транзакций.
Установите SQL Server Management Studio.
Установите выпуск SQL Server Developer.
Скачайте пример базы данных AdventureWorks. Инструкции по восстановлению базы данных в SSMS см. в статье "Восстановление резервной копии базы данных с помощью SSMS".
Примечание.
Репликация не поддерживается в экземплярах SQL Server, которые отличаются от двух версий. Дополнительные сведения см. в разделе "Обратная совместимость репликации".
В SQL Server Management Studio необходимо подключиться к издателю и подписчику с помощью имени входа, являющегося членом предопределенных ролей сервера sysadmin . Дополнительные сведения о роли см. в статье Роли уровня сервера.
Предполагаемое время для выполнения заданий этого руководства: 30 минут.
Создание учетных записей Windows для репликации
В рамках этого раздела создаются учетные записи Windows для запуска агентов репликации. На локальном сервере создаются отдельные учетные записи Windows для следующих агентов:
Агент | Расположение | Имя учетной записи |
---|---|---|
агент моментальных снимков | Publisher | <>machine_name\repl_snapshot |
Агент чтения журнала. | Publisher | <>machine_name\repl_logreader |
Агент распространителя | Издатель и подписчик | <>machine_name\repl_distribution |
Агент слияния. | Издатель и подписчик | <>machine_name\repl_merge |
Примечание.
В руководствах по репликации издатель и распространитель совместно используют один и тот же экземпляр (NODE1\SQL2016) SQL Server. Подписчик размещается на удаленном экземпляре (NODE2\SQL2016). Издатель и подписчик могут совместно использовать один и тот же экземпляр SQL Server, но это не обязательно. Если издатель и подписчик совместно используют один и тот же экземпляр, действия, используемые для создания учетных записей на подписчике, не требуются.
Создание локальных учетных записей Windows для агентов репликации на издателе
Откройте на издателе оснастку Управление компьютером из папки Администрирование на панели управления.
В оснастке Служебные программыразверните узел Локальные пользователи и группы.
Щелкните правой кнопкой мыши значок Пользователи, а затем выберите Новый пользователь.
Введите repl_snapshot в поле Имя пользователя, укажите пароль и другие необходимые сведения, а затем нажмите кнопку Создать, чтобы создать учетную запись repl_snapshot:
Повторите предыдущий шаг, чтобы создать учетные записи repl_logreader, repl_distribution и repl_merge:
Выберите Закрыть.
Создание локальных учетных записей Windows для агентов репликации на подписчике
Откройте на подписчике оснастку Управление компьютером из папки Администрирование на панели управления.
В оснастке Служебные программыразверните узел Локальные пользователи и группы.
Щелкните правой кнопкой мыши значок Пользователи, а затем выберите Новый пользователь.
Введите repl_distribution в поле Имя пользователя, укажите пароль и другие необходимые сведения, затем нажмите Создать, чтобы создать учетную запись repl_distribution.
Повторите предыдущий шаг, чтобы создать учетную запись repl_merge.
Выберите Закрыть.
Дополнительные сведения см. в обзоре агентов репликации.
Подготовка папки моментальных снимков
Из этого раздела вы узнаете, как настроить папку моментальных снимков для создания и хранения моментального снимка публикации.
Создание ресурса для папки моментальных снимков и настройка разрешений
В проводник перейдите к папке данных SQL Server. Путь по умолчанию — «C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Data».
Создайте папку с именем repldata.
Щелкните правой кнопкой мыши папку и выберите команду Свойства.
В диалоговом окне Свойства repldata на вкладке Общий доступ щелкните Открыть общий доступ.
В диалоговом окне Расширенная настройка общего доступа выберите Share this Folder (Открыть общий доступ к этой папке) и щелкните Разрешения.
В диалоговом окне Разрешения для ресурса repldata выберите Добавить. В поле "Выбор пользователя", "Компьютеры", "Учетная запись службы" или "Группы" введите имя созданной ранее учетной записи агент моментальных снимков, как< Publisher_Machine_Name>\repl_snapshot. Выберите команду Проверить имена и нажмите кнопку ОК.
Повторите шаг 6, чтобы добавить другие две учетные записи, созданные ранее: <Publisher_Machine_Name>\repl_merge и <Publisher_Machine_Name>\repl_distribution.
Добавив три учетные записи, назначьте следующие разрешения:
- repl_distribution — Чтение;
- repl_merge — Чтение;
- repl_snapshot — Полный доступ.
После настройки разрешений на общий доступ нажмите кнопку ОК, чтобы закрыть диалоговое окно разрешений для repldata. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Расширенная настройка общего доступа.
В диалоговом окне свойств repldata откройте вкладку Безопасность и выберите Изменить:
В диалоговом окне Разрешения для ресурса repldata выберите Добавить. В поле выбора пользователей, компьютеров, учетных записей служб или групп введите имя созданной ранее учетной записи агент моментальных снимков, как< Publisher_Machine_Name>\repl_snapshot. Выберите команду Проверить имена и нажмите кнопку ОК.
Повторите предыдущий шаг, чтобы добавить разрешения для агент распространения как <Publisher_Machine_Name>\repl_distribution и для агент слияния как <Publisher_Machine_Name>\repl_merge.
Убедитесь, что следующие разрешения допустимы:
- repl_distribution — Чтение;
- repl_merge — Чтение;
- repl_snapshot — Полный доступ.
Снова откройте вкладку Общий доступ и запишите значение параметра Сетевой путь для общей папки. Этот путь понадобится позже при настройке папки моментального снимка.
Нажмите кнопку ОК, чтобы закрыть диалоговое окно Свойства repldata.
Дополнительные сведения см. в статье Организация безопасности папки моментальных снимков.
Настройка распространителя
В рамках этого раздела вы настроите распространение на издателе и установите необходимые разрешения для баз данных публикации и распространителя. Если распространитель уже настроен, перед началом работы с этим разделом необходимо отключить публикацию и распространение. Не отключать публикацию и распространение, если необходимо сохранить существующую топологию репликации, особенно в рабочей среде.
В этом руководстве не рассматривается настройка издателя с удаленным распространителем.
Настройка распространителя на издателе
Подключитесь к издателю в SQL Server Management Studio и разверните узел сервера.
Щелкните правой кнопкой мыши папку Репликация и выберите пункт Настройка распространения:
Если вы подключаетесь к SQL Server с помощью localhost, а не фактического имени сервера, появится предупреждение о том, что SQL Server не может подключиться к localhost или IP-адресу. В диалоговом окне предупреждения нажмите кнопку ОК. В диалоговом окне Connect to Server (Соединение с сервером) измените значение в поле Имя сервера с localhost или IP-адрес на имя своего сервера. В этом случае выберите Подключиться.
В настоящее время существует известная проблема с SQL Server Management Studio (SSMS) 18.0 (и более поздних версий), в которой предупреждение не отображается при подключении к распространителю с IP-адресом, но по-прежнему недопустимо. При соединении с распространителем следует использовать фактическое имя сервера.
Примечание.
Имя сервера можно указать как
<Hostname>,<PortNumber>
для экземпляра по умолчанию или<Hostname>\<InstanceName>,<PortNumber>
для именованного экземпляра. Укажите номер порта для подключения при развертывании SQL Server в Linux или Windows с пользовательским портом, а служба браузера отключена. Использование пользовательских номеров портов для удаленного распространителя применяется к SQL Server 2019 (15.x) и более поздним версиям.Запустится мастер настройки распространителя.
На странице распространителя выберите <"Имя сервера">, который будет выступать в качестве собственного распространителя; SQL Server создаст базу данных распространителя и журнал. Затем выберите Далее.
Если агент SQL Server не запущена, на начальной странице агента SQL Server нажмите кнопку "Да", настройте службу агент SQL Server для автоматического запуска. Выберите Далее.
Введите путь \\<Publisher_Machine_Name>\repldata в поле папки моментальных снимков и нажмите кнопку "Далее". Этот путь должен соответствовать значению параметра Сетевой путь для папки свойств repldata, которое вы записали ранее после настройки свойств общей папки.
Примите значения по умолчанию на оставшихся страницах мастера.
Чтобы включить распространение, нажмите кнопку Готово.
При настройке распространителя может отображаться приведенное ниже сообщение об ошибке. Это указывает, что учетная запись, используемая для запуска учетной записи агент SQL Server, не является администратором в системе. Необходимо вручную запустить агент SQL Server, предоставить эти разрешения существующей учетной записи или изменить учетную запись, которую использует агент SQL Server.
Если экземпляр SQL Server Management Studio запущен с правами администратора, вы можете вручную запустить из него агент SQL.
Примечание.
Если признаков запуска агента SQL не наблюдается, щелкните правой кнопкой мыши агент SQL Server в среде SSMS и выберите пункт Обновить. Если агент по-прежнему остановлен, запустите его вручную с помощью диспетчера конфигурации SQL Server.
Установка разрешений базы данных
В СРЕДЕ SQL Server Management Studio разверните узел "Безопасность", щелкните правой кнопкой мыши имя входа и выберите "Создать имя входа".
На странице Общие выберите Найти. Введите Publisher_Machine_Name\repl_snapshot> введите <имя объекта, чтобы выбрать поле, нажмите кнопку "Проверить имена" и нажмите кнопку "ОК".
На странице Сопоставление пользователей в списке Users mapped to this login (Пользователи, сопоставленные с этим именем входа) выберите distribution и базы данных
AdventureWorks2022
.В разделе "Список членства в роли базы данных" выберите роль db_owner для имени входа в обеих базах данных.
Нажмите кнопку ОК, чтобы создать имя входа.
Повторите шаги с 1 по 4, чтобы создать имена входа для других локальных учетных записей (repl_distribution, repl_logreader и repl_merge). Эти имена входа должны быть сопоставлены с пользователями, которые являются членами предопределенной роли базы данных db_owner в базах данных распространителя и AdventureWorks.
Дополнительные сведения см. в разделе "Настройка модели безопасности агента распространения и репликации".