# Pré-requisitos

Antes de fazer a aterrissagem ou a replicação dos dados, certifique-se de atender aos seguintes pré-requisitos:

* Instalar o driver necessário no servidor do Gateway do Data Movement

  Nota informativa

  Isso apenas será necessário se você optar por trabalhar com o Gateway do Data Movement. Para obter informações sobre os benefícios do Gateway do Data Movement e quando ele é necessário, consulte [Qlik Data Gateway - Data Movement](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm).

  Observe que o Gateway do Data Movement não está disponível com a assinatura do Iniciante do Qlik Talend Cloud.

* Conceder as permissões necessárias na fonte de dados

* Configurar o conector de fontes de dados

## Configuração do driver

Você pode instalar o driver usando o utilitário de instalação do driver (recomendado) ou manualmente. A instalação manual só deve ser tentada no caso improvável de você encontrar um problema com o utilitário de instalação do driver.

### Usando o utilitário de instalação de driver para instalar o driver

Esta seção descreve como instalar o driver necessário. O processo envolve a execução de um script que baixará, instalará e configurará automaticamente os driver necessários. Você também pode executar scripts para atualizar e desinstalar o driver como necessário.

### Preparando a instalação

* Certifique-se de que o Python 3.6.x ou mais recente esteja instalado no servidor de gateway do Data Movement.

  O Python vem pré-instalado na maioria das distribuições do Linux. Você pode verificar qual versão do Python está instalada em seu sistema executando o seguinte comando:

  python3 --version

### Instalando o driver

Para baixar e instalar o driver:

1. Na máquina do gateway do Data Movement, altere o diretório de trabalho para:

   opt/qlik/gateway/movement/drivers/bin

2. Execute o seguinte comando:

   Sintaxe:

   ./install postgres

   Se o driver não puder ser baixado (devido a restrições de acesso ou problemas técnicos), uma mensagem será exibida informando onde baixar o driver e onde copiá-lo na máquina de gateway do Data Movement. Depois de fazer isso, execute o comando install postgres novamente.

   Caso contrário, o EULA do driver será exibido.

3. Realize uma das seguintes ações:

   * Pressione [Enter] repetidamente para percorrer lentamente o EULA.
   * Pressione a barra de espaço repetidamente para rolar rapidamente pelo EULA.
   * Pressione q para sair do texto da licença e ser apresentado às opções de aceitação do EULA.

4. Realize uma das seguintes ações:

   * Digite "y" e pressione [Enter] para aceitar o EULA e iniciar a instalação.

   * Digite "n" e pressione [Enter] para rejeitar o EULA e sair da instalação.

   * Digite "v" e pressione [Enter] para visualizar o EULA novamente.

   O driver será instalado.

### Atualizando o driver

Execute o comando de atualização se quiser desinstalar versões anteriores do driver antes de instalar o driver fornecido.

Para baixar e atualizar o driver:

1. Na máquina do gateway do Data Movement, altere o diretório de trabalho para:

   opt/qlik/gateway/movement/drivers/bin

2. Execute o seguinte comando:

   Sintaxe:

   ./update postgres

   Se o driver não puder ser baixado (devido a restrições de acesso ou problemas técnicos), uma mensagem será exibida informando onde baixar o driver e onde copiá-lo na máquina de gateway do Data Movement. Depois de fazer isso, execute o comando update postgres novamente.

   Caso contrário, o EULA do driver será exibido.

3. Realize uma das seguintes ações:

   * Pressione [Enter] repetidamente para percorrer lentamente o EULA.
   * Pressione a barra de espaço repetidamente para rolar rapidamente pelo EULA.
   * Pressione q para sair do texto da licença e ser apresentado às opções de aceitação do EULA.

4. Realize uma das seguintes ações:

   * Digite "y" e pressione [Enter] para aceitar o EULA e iniciar a instalação.
   * Digite "n" e pressione [Enter] para rejeitar o EULA e sair da instalação.
   * Digite "v" e pressione [Enter] para revisar o EULA desde o início.

   O driver antigo será desinstalado, e o novo driver será instalado.

### Desinstalando o driver

Execute o comando de desinstalação se quiser desinstalar o driver.

Para desinstalar o driver:

1. Pare todas as tarefas configuradas para usar esse conector.

2. Na máquina do gateway do Data Movement, altere o diretório de trabalho para:

   opt/qlik/gateway/movement/drivers/bin

3. Execute o seguinte comando:

   Sintaxe:

   ./uninstall postgres

   O driver será desinstalado.

### Instalando o driver manualmente

Você só deve tentar instalar o driver manualmente se a instalação automática do driver não for concluída com êxito.

Após a instalação do Gateway do Data Movement, baixe os seguintes arquivos do RPM. Você pode encontrar links diretos para download dos arquivos em binary-artifacts em /opt/qlik/gateway/movement/drivers/manifests/postgres.yaml. Assim que o download for concluído, copie os arquivos para a máquina Gateway do Data Movement.

Quando o Gateway do Data Movement está instalado no Red Hat 9.x:

* postgresql&lt;version&gt;-libs-&lt;version&gt;PGDG.rhel9.x86\_64.rpm
* postgresql&lt;version&gt;-&lt;version&gt;PGDG.rhel9.x86\_64.rpm
* postgresql&lt;version&gt;-odbc-&lt;version&gt;PGDG.rhel9.x86\_64.

Quando o Gateway do Data Movement está instalado no Red Hat 8.x:

* postgresql&lt;version&gt;-libs-&lt;version&gt;PGDG.rhel8.x86\_64.rpm
* postgresql&lt;version&gt;-&lt;version&gt;PGDG.rhel8.x86\_64.rpm
* postgresql&lt;version&gt;-odbc-&lt;version&gt;PGDG.rhel8.x86\_64.rpm

No servidor do Gateway Data Movement, abra um prompt de shell e faça o seguinte:

1. Pare o serviço do Gateway Data Movement:

   sudo systemctl stop repagent

2. Opcionalmente, confirme se o serviço foi interrompido:

   sudo systemctl status repagent

   O status deverá ser o seguinte:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Instale os arquivos do RPM.

4. Altere o diretório de trabalho para &lt;Gateway Data Movement-Install-Dir&gt;/bin.

5. Copie a localização do driver para o arquivo `site_arep_login.sh`, conforme a seguir:

   `echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/pgsql-<version>/lib" >> site_arep_login.sh`

   Isso adicionará o driver a "LD\_LIBRARY\_PATH" e atualizará a localização do driver no arquivo site\_arep\_login.sh.

6. Opcionalmente, confirme se a localização do driver foi copiada:

   ```
   cat site_arep_login.sh
                           
   ```

7. Certifique-se de que o arquivo `/etc/odbcinst.ini` contenha uma entrada para o PostgreSQL, como no exemplo a seguir:

   `[PostgreSQL]`

   `Description = PostgreSQL ODBC driver`

   `Driver = /usr/pgsql-13/lib/psqlodbc.so`

   `Setup = /usr/pgsql-13/lib/psqlodbcw.so`

   `UsageCount = 1`

8. Inicie o serviço do Gateway Data Movement:

   sudo systemctl start repagent

9. Opcionalmente, confirme se o serviço foi iniciado:

   sudo systemctl status repagent

   O status deverá ser o seguinte:

   Active: active (running) since &lt;timestamp&gt; ago

## Porta

Por padrão, a porta 5432 precisa ser aberta para comunicação de saída no servidor do Gateway Data Movement. Você pode alterar isso nas configurações do conector.

## Capturando alterações de um banco de dados do PostgreSQL instalado pelo cliente

* O endereço IP da máquina do Data Movement gateway deve ser adicionado ao arquivo de configuração pg\_hba.conf com a palavra-chave "replication" no campo do banco de dados.

  Exemplo:

  `host replication all 176.123.1.212/32 trust`

* Certifique-se de que o plug-in de saída test\_decoding (encontrado no pacote postgresql12-contrib) esteja instalado.

* O usuário especificado nas configurações de conexão deve receber permissões de leitura e gravação no banco de dados de origem para permitir a criação de "slots" no banco de dados. Os slots são necessários para ler as alterações.

* Os seguintes parâmetros e valores devem ser definidos no arquivo de configuração `postgresql.conf`.

  ```
  wal_level = logical
                          
  ```

  ```
  max_replication_slots = number of replication slots
                          
  ```

  Em que `number of replication slots` deve ser maior que um e deve ser definido de acordo com o número de tarefas que você deseja executar. Por exemplo, para executar cinco tarefas, você precisa definir `max_replication_slots = 5`. Os slots são abertos automaticamente assim que uma tarefa é iniciada e permanecem abertos, mesmo quando a tarefa não está mais em execução. Observe que os slots abertos precisam ser excluídos manualmente.

  `max_wal_senders = number of  concurrent tasks`

  Em quenumber of concurrent tasks `` deve ser maior que um e deve ser definido de acordo com o número de tarefas que você está executando simultaneamente. Por exemplo, para executar três tarefas simultaneamente, você precisa definir `max_wal_senders = 3`.

* O parâmetro `wal_sender_timeout` encerra conexões inativas por mais tempo que o número especificado de milissegundos. O tempo limite padrão é de 60 segundos. Para desabilitar o mecanismo de tempo limite (opcional), defina este parâmetro como zero.

  Nota informativa

  Por padrão, o valor do parâmetro `wal_sender_timeout` é interpretado pelo servidor como milissegundos. Para especificar segundos explicitamente, anexe um "s" ao valor como no exemplo a seguir:

  `wal_sender_timeout=60s`

Para obter mais informações sobre os parâmetros de configuração, consulte a seção Replicação em Configuração do servidor na [ajuda online do PostgreSQL](https://www.postgresql.org/docs/).

## Capturando alterações do Amazon RDS for PostgreSQL

Você pode usar a conta de usuário principal da AWS para a instância do banco de dados PostgreSQL como usuário do terminal de origem do Amazon RDS for PostgreSQL. A conta de usuário principal tem as funções necessárias que permitem configurar a Captura de dados de alterações (CDC).

Se você preferir não usar a conta de usuário principal, a conta que você quiser usar deverá ter a função rds\_superuser e a função rds\_replication. A função rds\_replication concede permissões para gerenciar slots lógicos e transmitir dados usando slots lógicos.

Para habilitar a replicação lógica para uma instância de banco de dados PostgreSQL do Amazon RDS:

1. Crie um novo grupo de parâmetros com a seguinte configuração:

   1. Defina o parâmetro rds.logical\_replication no grupo de parâmetros do banco de dados como 1.
   2. max\_wal\_senders: o número de tarefas que podem ser executadas em paralelo.
   3. max\_replication\_slots: cada conexão (ou seja, tarefa) cria um novo slot. Esse parâmetro configura a quantidade de conexões simultâneas que podem ser estabelecidas com o banco de dados.

2. Vincule a instância do Amazon RDS ao grupo de parâmetros.

## Capturando alterações do Microsoft Azure for PostgreSQL

Para poder capturar alterações do Microsoft Azure para PostgreSQL, você precisa definir a propriedade "replication" como "logical", conforme descrito nas etapas abaixo.

1. Abra a CLI do Azure e execute o seguinte comando:

   Nota informativa

   Você pode baixar a CLI ou conectar-se por meio de um comando shell no portal do Azure.

   Sintaxe:

   az postgres server configuration set --resource-group resource-group --server-name server-name --name azure.replication\_support --value logical

   Exemplo:

   az postgres server configuration set --resource-group azuredb --server-name qlik-azure-pg --name azure.replication\_support --value logical

2. Reinicie o banco de dados (usando a linha de comando ou via portal).

## Capturando alterações do Google Cloud SQL para PostgreSQL

Nota informativaEsta funcionalidade requer o Gateway do Data Movement 2022.11.42 ou posterior.

Para poder capturar alterações do banco de dados, você precisa configurar a replicação lógica.

Para configurar a replicação lógica:

1. Na Google Cloud Platform, defina os seguintes sinalizadores nas configurações do PostgreSQL:

   * cloudsql.logical\_decoding=on
   * max\_replication\_slots: Cada conexão (ou seja, tarefa) cria um novo slot; este parâmetro configura a quantidade de conexões simultâneas que podem ser estabelecidas com o banco de dados. Se você encontrar problemas de desempenho, aumentar esse valor poderá ajudar.
   * max\_wal\_senders: O número de tarefas que podem ser executadas em paralelo. Se você encontrar problemas de desempenho, aumentar esse valor poderá ajudar.

   Para obter mais informações sobre esses parâmetros, consulte https://www.postgresql.org/docs/current/runtime-config-replication.html

2. No banco de dados, altere o usuário especificado nas configurações de connector (*username*) para dar suporte à replicação:

   ALTER USER username WITH REPLICATION;