> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-home-button.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Пошаговое руководство по настройке Amazon RDS MySQL в качестве источника для ClickPipes

# Руководство по настройке источника RDS MySQL

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

В этом пошаговом руководстве показано, как настроить Amazon RDS MySQL для репликации данных в ClickHouse Cloud с помощью [MySQL ClickPipe](/ru/integrations/clickpipes/mysql). Ответы на распространённые вопросы о CDC MySQL см. на [странице с часто задаваемыми вопросами по MySQL](/ru/integrations/clickpipes/mysql/faq).

<div id="enable-binlog-retention-rds">
  ## Включение хранения бинарных логов
</div>

Бинарный лог — это набор файлов журналов, содержащих сведения об изменениях данных на экземпляре сервера MySQL; файлы бинарного лога необходимы для репликации. Чтобы настроить хранение бинарных логов в RDS MySQL, необходимо [включить бинарное логирование](#enable-binlog-logging) и [увеличить интервал хранения binlog](#binlog-retention-interval).

<div id="enable-binlog-logging">
  ### 1. Включите бинарное логирование с помощью автоматического резервного копирования
</div>

В MySQL бинарное логирование включается или отключается в зависимости от того, включено ли автоматическое резервное копирование. Автоматическое резервное копирование можно настроить для вашего экземпляра в RDS Console, перейдя в **Modify** > **Additional configuration** > **Backup** и установив флажок **Enable automated backups** (если он ещё не установлен).

<Image img="https://mintcdn.com/private-7c7dfe99-home-button/St1M90JquFFJKAOf/images/integrations/data-ingestion/clickpipes/mysql/source/rds/rds-backups.png?fit=max&auto=format&n=St1M90JquFFJKAOf&q=85&s=1cc80fa60e4de4d69123cecd0b47c6ff" alt="Включение автоматического резервного копирования в RDS" size="lg" border width="3230" height="530" data-path="images/integrations/data-ingestion/clickpipes/mysql/source/rds/rds-backups.png" />

Рекомендуем установить для **Backup retention period** достаточно большое значение — в зависимости от сценария репликации.

<div id="binlog-retention-interval">
  ### 2. Увеличьте интервал хранения бинарного лога
</div>

<Warning>
  Если ClickPipes попытается возобновить репликацию, а необходимые файлы бинарного лога уже были удалены из-за настроенного срока хранения binlog, ClickPipe перейдёт в состояние с ошибкой, и потребуется повторная синхронизация.
</Warning>

По умолчанию Amazon RDS удаляет бинарный лог как можно быстрее (то есть использует *отложенную очистку*). Мы рекомендуем увеличить интервал хранения бинарного лога как минимум до **72 часов**, чтобы файлы бинарного лога оставались доступными для репликации в случае сбоев. Чтобы задать интервал хранения бинарного лога ([`binlog retention hours`](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-stored-proc-configuring.html#mysql_rds_set_configuration-usage-notes.binlog-retention-hours)), используйте процедуру [`mysql.rds_set_configuration`](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-stored-proc-configuring.html#mysql_rds_set_configuration):

[//]: # "ПРИМЕЧАНИЕ: Большинство провайдеров CDC рекомендуют максимальный срок хранения для RDS (7 дней/168 часов). Поскольку это влияет на использование диска, мы даём более осторожную рекомендацию: минимум 3 дня/72 часа."

```text theme={null}
mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);
```

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

<div id="binlog-settings">
  ## Настройка параметров binlog
</div>

Группу параметров можно найти, если выбрать свой экземпляр MySQL в RDS Console, а затем перейти на вкладку **Configuration**.

<Tip>
  Если у вас кластер MySQL, указанные ниже параметры находятся в группе параметров [DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.CreatingCluster.html), а не в группе параметров экземпляра DB.
</Tip>

<Image img="https://mintcdn.com/private-7c7dfe99-home-button/St1M90JquFFJKAOf/images/integrations/data-ingestion/clickpipes/mysql/parameter_group/rds_config.png?fit=max&auto=format&n=St1M90JquFFJKAOf&q=85&s=2780db2d96968014f5b490080d691681" alt="Где найти группу параметров в RDS" size="lg" border width="708" height="853" data-path="images/integrations/data-ingestion/clickpipes/mysql/parameter_group/rds_config.png" />

<br />

Нажмите ссылку группы параметров — откроется её отдельная страница. В правом верхнем углу вы увидите кнопку **Edit**.

<Image img="https://mintcdn.com/private-7c7dfe99-home-button/St1M90JquFFJKAOf/images/integrations/data-ingestion/clickpipes/mysql/parameter_group/edit_button.png?fit=max&auto=format&n=St1M90JquFFJKAOf&q=85&s=6eb9c5e2a02036e3d94d5164cd5e56d9" alt="Изменение группы параметров" size="lg" border width="1662" height="292" data-path="images/integrations/data-ingestion/clickpipes/mysql/parameter_group/edit_button.png" />

Нужно задать следующие параметры:

1. `binlog_format` — `ROW`.

<Image img="https://mintcdn.com/private-7c7dfe99-home-button/St1M90JquFFJKAOf/images/integrations/data-ingestion/clickpipes/mysql/parameter_group/binlog_format.png?fit=max&auto=format&n=St1M90JquFFJKAOf&q=85&s=3aba0ff1f1b5f89b511ef4acc0382292" alt="Формат binlog: ROW" size="lg" border width="960" height="232" data-path="images/integrations/data-ingestion/clickpipes/mysql/parameter_group/binlog_format.png" />

2. `binlog_row_metadata` — `FULL`

<Image img="https://mintcdn.com/private-7c7dfe99-home-button/St1M90JquFFJKAOf/images/integrations/data-ingestion/clickpipes/mysql/parameter_group/binlog_row_metadata.png?fit=max&auto=format&n=St1M90JquFFJKAOf&q=85&s=3dd4a01b558beb8742b45a15fe62c798" alt="Метаданные строк binlog: FULL" size="lg" border width="934" height="234" data-path="images/integrations/data-ingestion/clickpipes/mysql/parameter_group/binlog_row_metadata.png" />

3. `binlog_row_image` — `FULL`

<Image img="https://mintcdn.com/private-7c7dfe99-home-button/St1M90JquFFJKAOf/images/integrations/data-ingestion/clickpipes/mysql/parameter_group/binlog_row_image.png?fit=max&auto=format&n=St1M90JquFFJKAOf&q=85&s=55683f9e11951f1a281c3d6a73e974b7" alt="Образ строки binlog: FULL" size="lg" border width="934" height="234" data-path="images/integrations/data-ingestion/clickpipes/mysql/parameter_group/binlog_row_image.png" />

<br />

Затем нажмите **Save Changes** в правом верхнем углу. Чтобы изменения вступили в силу, может потребоваться перезагрузка экземпляра. Это можно понять по статусу `Pending reboot` рядом со ссылкой на группу параметров на вкладке **Configuration** экземпляра RDS.

<div id="gtid-mode">
  ## Включение режима GTID
</div>

<Tip>
  MySQL ClickPipe также поддерживает репликацию без использования режима GTID. Однако для более высокой производительности и более простого устранения неполадок рекомендуется включить режим GTID.
</Tip>

[Global Transaction Identifiers (GTIDs)](https://dev.mysql.com/doc/refman/8.0/en/replication-gtids.html) — это уникальные идентификаторы, назначаемые каждой зафиксированной транзакции в MySQL. Они упрощают репликацию по binlog и делают устранение неполадок более простым. Мы **рекомендуем** включить режим GTID, чтобы MySQL ClickPipe мог использовать репликацию на основе GTID.

Репликация на основе GTID поддерживается в Amazon RDS for MySQL версий 5.7, 8.0 и 8.4. Чтобы включить режим GTID для вашего экземпляра Aurora MySQL, выполните следующие шаги:

1. В RDS Console выберите свой экземпляр MySQL.
2. Перейдите на вкладку **Configuration**.
3. Нажмите ссылку группы параметров.
4. Нажмите кнопку **Edit** в правом верхнем углу.
5. Установите для `enforce_gtid_consistency` значение `ON`.
6. Установите для `gtid-mode` значение `ON`.
7. Нажмите **Save Changes** в правом верхнем углу.
8. Перезагрузите экземпляр, чтобы изменения вступили в силу.

<Image img="https://mintcdn.com/private-7c7dfe99-home-button/St1M90JquFFJKAOf/images/integrations/data-ingestion/clickpipes/mysql/enable_gtid.png?fit=max&auto=format&n=St1M90JquFFJKAOf&q=85&s=9855026f494dae81fec53b43fe098a87" alt="GTID включен" size="lg" border width="1650" height="469" data-path="images/integrations/data-ingestion/clickpipes/mysql/enable_gtid.png" />

<br />

<Tip>
  MySQL ClickPipe также поддерживает репликацию без использования режима GTID. Однако для более высокой производительности и более простого устранения неполадок рекомендуется включить режим GTID.
</Tip>

<div id="configure-database-user">
  ## Настройте пользователя базы данных
</div>

Подключитесь к своему экземпляру RDS MySQL под учетной записью администратора и выполните следующие команды:

1. Создайте отдельного пользователя для ClickPipes:

   ```sql theme={null}
   CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
   ```

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

   ```sql theme={null}
   GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
   ```

3. Выдайте пользователю разрешения на репликацию:

   ```sql theme={null}
   GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
   GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
   ```

<div id="configure-network-access">
  ## Настройте сетевой доступ
</div>

<div id="ip-based-access-control">
  ### Управление доступом на основе IP
</div>

Чтобы ограничить сетевой доступ к вашему экземпляру Aurora MySQL, добавьте [статические NAT IP-адреса, указанные в документации](/ru/integrations/clickpipes/home#list-of-static-ips), в **Inbound rules** вашей группы безопасности RDS.

<Image img="https://mintcdn.com/private-7c7dfe99-home-button/St1M90JquFFJKAOf/images/integrations/data-ingestion/clickpipes/mysql/source/rds/security-group-in-rds-mysql.png?fit=max&auto=format&n=St1M90JquFFJKAOf&q=85&s=2b5e0ec24f84a8c9d75c9617605c2b77" alt="Где найти группу безопасности в RDS MySQL?" size="lg" border width="2850" height="994" data-path="images/integrations/data-ingestion/clickpipes/mysql/source/rds/security-group-in-rds-mysql.png" />

<Image img="https://mintcdn.com/private-7c7dfe99-home-button/u7z0gNe6GWCJXTn9/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png?fit=max&auto=format&n=u7z0gNe6GWCJXTn9&q=85&s=9e6f4ef77eea185feb54ae7728ac5c3f" alt="Изменение правил входящего трафика для указанной выше группы безопасности" size="lg" border width="1800" height="935" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png" />

<div id="private-access-via-aws-privatelink">
  ### Доступ через AWS PrivateLink по частной сети
</div>

Чтобы подключиться к вашему экземпляру RDS по частной сети, можно использовать AWS PrivateLink. Следуйте [руководству по настройке AWS PrivateLink для ClickPipes](/ru/resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-clickpipes), чтобы настроить подключение.

<div id="next-steps">
  ## Дальнейшие шаги
</div>

Теперь, когда ваш экземпляр Amazon RDS MySQL настроен для репликации через binlog и безопасно подключён к ClickHouse Cloud, вы можете [создать свой первый MySQL ClickPipe](/ru/integrations/clickpipes/mysql#create-your-clickpipe). Ответы на распространённые вопросы о MySQL CDC см. на [странице с часто задаваемыми вопросами по MySQL](/ru/integrations/clickpipes/mysql/faq).
