Учебник. Подготовка 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 не может быть подписчиком в транзакционных реплика tion.

  • Установите SQL Server Management Studio.

  • Установите выпуск SQL Server 2017 Developer Edition.

  • Скачайте пример базы данных AdventureWorks. См. дополнительные сведения о восстановлении базы данных в среде SSMS.

Примечание.

  • Репликация не поддерживается в экземплярах SQL Server, которые отличаются друг от друга больше, чем на две версии. См. дополнительные сведения о поддерживаемых версиях 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

Примечание.

В руководствах по реплика tion издатель и распространитель совместно используют один и тот же экземпляр (NODE1\SQL2016) SQL Server. Подписчик размещается на удаленном экземпляре (NODE2\SQL2016). Издатель и подписчик могут совместно использовать один и тот же экземпляр SQL Server, но это не обязательно. Если издатель и подписчик совместно используют один и тот же экземпляр, то не требуется выполнять шаги по созданию учетных записей на подписчике.

Создание локальных учетных записей Windows для агентов репликации на издателе

  1. Откройте на издателе оснастку Управление компьютером из папки Администрирование на панели управления.

  2. В оснастке Служебные программыразверните узел Локальные пользователи и группы.

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

  4. Введите repl_snapshot в поле Имя пользователя, укажите пароль и другие необходимые сведения, а затем нажмите кнопку Создать, чтобы создать учетную запись repl_snapshot:

  5. Повторите предыдущий шаг, чтобы создать учетные записи repl_logreader, repl_distribution и repl_merge:

    List of replication users

  6. Выберите Закрыть.

Создание локальных учетных записей Windows для агентов репликации на подписчике

  1. Откройте на подписчике оснастку Управление компьютером из папки Администрирование на панели управления.

  2. В оснастке Служебные программыразверните узел Локальные пользователи и группы.

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

  4. Введите repl_distribution в поле Имя пользователя, укажите пароль и другие необходимые сведения, затем нажмите Создать, чтобы создать учетную запись repl_distribution.

  5. Повторите предыдущий шаг, чтобы создать учетную запись repl_merge.

  6. Выберите Закрыть.

Дополнительные сведения см. в статье Обзор агентов репликации.

Подготовка папки моментальных снимков

Из этого раздела вы узнаете, как настроить папку моментальных снимков для создания и хранения моментального снимка публикации.

Создание ресурса для папки моментальных снимков и настройка разрешений

  1. В проводник перейдите к папке данных SQL Server. Путь по умолчанию — «C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Data».

  2. Создайте папку с именем repldata.

  3. Щелкните правой кнопкой мыши папку и выберите команду Свойства.

    a. В диалоговом окне Свойства repldata на вкладке Общий доступ щелкните Открыть общий доступ.

    b. В диалоговом окне Расширенная настройка общего доступа выберите Share this Folder (Открыть общий доступ к этой папке) и щелкните Разрешения.

    Selections for sharing the repldata folder

  4. В диалоговом окне Разрешения для ресурса repldata выберите Добавить. В поле "Выбор пользователя", "Компьютеры", "Учетная запись службы" или "Группы" введите имя созданной ранее учетной записи агент моментальных снимков, как< Publisher_Machine_Name>\repl_snapshot. Выберите команду Проверить имена и нажмите кнопку ОК.

    Selections to add sharing permissions

  5. Повторите шаг 6, чтобы добавить другие две учетные записи, созданные ранее: <Publisher_Machine_Name>\repl_merge и <Publisher_Machine_Name>\repl_distribution.

  6. Добавив три учетные записи, назначьте следующие разрешения:

    • repl_distribution — Чтение;
    • repl_merge — Чтение;
    • repl_snapshot — Полный доступ.

    Shared permissions for each account

  7. После настройки разрешений на общий доступ нажмите кнопку ОК, чтобы закрыть диалоговое окно разрешений для repldata. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Расширенная настройка общего доступа.

  8. В диалоговом окне свойств repldata откройте вкладку Безопасность и выберите Изменить:

  9. В диалоговом окне Разрешения для ресурса repldata выберите Добавить. В поле выбора пользователей, компьютеров, учетных записей служб или групп введите имя созданной ранее учетной записи агент моментальных снимков, как< Publisher_Machine_Name>\repl_snapshot. Выберите команду Проверить имена и нажмите кнопку ОК.

    Selections to add security permissions

  10. Повторите предыдущий шаг, чтобы добавить разрешения для агент распространения как <Publisher_Machine_Name>\repl_distribution и для агент слияния как <Publisher_Machine_Name>\repl_merge.

  11. Убедитесь, что следующие разрешения допустимы:

    • repl_distribution — Чтение;
    • repl_merge — Чтение;
    • repl_snapshot — Полный доступ.

    User permissions for replication data

  12. Снова откройте вкладку Общий доступ и запишите значение параметра Сетевой путь для общей папки. Этот путь понадобится позже, когда вы будете настраивать папку моментальных снимков.

    Network path on the

  13. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Свойства repldata.

Дополнительные сведения см. в статье Организация безопасности папки моментальных снимков.

Настройка распространителя

В рамках этого раздела вы настроите распространение на издателе и установите необходимые разрешения для баз данных публикации и распространителя. Если распространитель уже настроен, перед тем как приступить к этому разделу, отключите публикацию и распространение. Не следует этого делать, если нужно сохранить существующую топологию репликации, особенно в рабочей среде.

В этом руководстве не рассматривается настройка издателя с удаленным распространителем.

Настройка распространителя на издателе

  1. Подключение издателю в SQL Server Management Studio, а затем разверните узел сервера.

  2. Щелкните правой кнопкой мыши папку Репликация и выберите пункт Настройка распространения:

    Примечание.

    • Если вы подключены к SQL Server с помощью localhost, а не фактического имени сервера, появится предупреждение о том, что SQL Server не может подключиться к localhost или IP-адресу. В диалоговом окне предупреждения нажмите кнопку ОК. В диалоговом окне Connect to Server (Соединение с сервером) измените значение в поле Имя сервера с localhost или IP-адрес на имя своего сервера. В этом случае выберите Подключиться.
    • В настоящее время существует известная проблема с SQL Server Management Studio (SSMS) 18.0 (и более поздних версий), когда предупреждающее сообщение не отображается при соединении с распространителем по IP-адресу, но при этом соединение по-прежнему недопустимо. При соединении с распространителем следует использовать фактическое имя сервера.

    Запустится мастер настройки распространителя.

  3. На странице распространителя выберите <"Имя сервера">, который будет выступать в качестве собственного распространителя; SQL Server создаст базу данных распространителя и журнал. Затем выберите Далее.

    Option to make the server act as its own distributor

  4. Если агент SQL Server не запущен, на начальной странице агента SQL Server нажмите кнопку "Да", настройте службу агент SQL Server для автоматического запуска. Выберите Далее.

  5. Введите путь \\<Publisher_Machine_Name>\repldata в поле папки моментальных снимков и нажмите кнопку "Далее". Этот путь должен соответствовать значению параметра Сетевой путь для папки свойств repldata, которое вы записали ранее после настройки свойств общей папки.

    Comparison of network paths in the

  6. Примите значения по умолчанию на оставшихся страницах мастера.

    Last page of the wizard

  7. Чтобы включить распространение, нажмите кнопку Готово.

При настройке распространителя может отображаться приведенное ниже сообщение об ошибке. Оно указывает на то, что учетная запись, которая использовалась для запуска агента SQL Server, не имеет разрешений администратора системы. В этом случае вам необходимо вручную запустить агент SQL Server, предоставить соответствующие разрешения существующей учетной записи либо использовать другую учетную запись для агента SQL Server.

Error message for configuring the SQL Server Agent

Если экземпляр SQL Server Management Studio запущен с правами администратора, вы можете вручную запустить из него агент SQL.

Selecting

Примечание.

Если признаков запуска агента SQL не наблюдается, щелкните правой кнопкой мыши агент SQL Server в среде SSMS и выберите пункт Обновить. Если агент по-прежнему остановлен, запустите его вручную с помощью диспетчера конфигурации SQL Server.

Установка разрешений базы данных

  1. В СРЕДЕ SQL Server Management Studio разверните узел "Безопасность", щелкните правой кнопкой мыши имя входа и выберите "Создать имя входа".

  2. На странице Общие выберите Найти. Введите Publisher_Machine_Name\repl_snapshot> введите <имя объекта, чтобы выбрать поле, нажмите кнопку "Проверить имена" и нажмите кнопку "ОК".

    Selections for entering the object name

  3. На странице Сопоставление пользователей в списке Users mapped to this login (Пользователи, сопоставленные с этим именем входа) выберите distribution и базы данных AdventureWorks2022.

    В разделе "Список членства в роли базы данных" выберите роль db_owner для имени входа в обеих базах данных.

    Selecting the databases and their role

  4. Нажмите кнопку ОК, чтобы создать имя входа.

  5. Повторите шаги с 1 по 4, чтобы создать имена входа для других локальных учетных записей (repl_distribution, repl_logreader и repl_merge). Эти имена входа должны быть сопоставлены с пользователями, которые являются членами предопределенной роли базы данных db_owner в базах данных распространителя и AdventureWorks.

    View of all four accounts in Object Explorer

Дополнительные сведения см. в разделе:

Следующие шаги

Вы успешно подготовили сервер для репликации. В следующей статье вы ознакомитесь с настройкой репликации транзакций: