

# Transportar um banco de dados PostgreSQL para o destino a partir da origem
<a name="PostgreSQL.TransportableDB.Transporting"></a>

Depois de concluir o processo descrito em [Configurar o transporte de um banco de dados PostgreSQL](PostgreSQL.TransportableDB.Setup.md), você pode iniciar o transporte. Para fazer isso, execute a função `transport.import_from_server` na instância de banco de dados de destino. Na sintaxe a seguir, você pode encontrar os parâmetros da função.

```
SELECT transport.import_from_server( 
   'source-db-instance-endpoint', 
    source-db-instance-port, 
   'source-db-instance-user', 
   'source-user-password', 
   'source-database-name', 
   'destination-user-password', 
   false);
```

O valor `false` mostrado no exemplo diz à função que esta não é uma simulação. Para testar sua configuração de transporte, você pode especificar `true` para `dry_run` quando você chama a função, conforme mostrado a seguir:

```
postgres=> SELECT transport.import_from_server(
    'docs-lab-source-db.666666666666aws-region.rds.amazonaws.com', 5432,
    'postgres', '********', 'labdb', '******', true);
INFO:  Starting dry-run of import of database "labdb".
INFO:  Created connections to remote database        (took 0.03 seconds).
INFO:  Checked remote cluster compatibility          (took 0.05 seconds).
INFO:  Dry-run complete                         (took 0.08 seconds total).
 import_from_server
--------------------

(1 row)
```

As linhas INFO são emitidas porque o parâmetro `pg_transport.timing` está definido como seu valor padrão, `true`. Defina `dry_run` para `false` quando você executa o comando e o banco de dados de origem é importado para o destino, conforme mostrado a seguir:

```
INFO:  Starting import of database "labdb".
INFO:  Created connections to remote database        (took 0.02 seconds).
INFO:  Marked remote database as read only           (took 0.13 seconds).
INFO:  Checked remote cluster compatibility          (took 0.03 seconds).
INFO:  Signaled creation of PITR blackout window     (took 2.01 seconds).
INFO:  Applied remote database schema pre-data       (took 0.50 seconds).
INFO:  Created connections to local cluster          (took 0.01 seconds).
INFO:  Locked down destination database              (took 0.00 seconds).
INFO:  Completed transfer of database files          (took 0.24 seconds).
INFO:  Completed clean up                            (took 1.02 seconds).
INFO:  Physical transport complete              (took 3.97 seconds total).
import_from_server
--------------------
(1 row)
```

Esta função requer que você forneça senhas de usuário do banco de dados. Portanto, recomendamos que você altere as senhas das funções de usuário usadas após a conclusão do transporte. Ou você pode usar variáveis de ligação do SQL para criar funções de usuário temporárias. Use essas funções temporárias para o transporte e descarte as funções posteriormente. 

Quando o transporte não for bem-sucedido, talvez você veja uma mensagem de erro semelhante à seguinte:

```
pg_transport.num_workers=8 25% of files transported failed to download file data
```

A mensagem de erro “falha ao baixar dados do arquivo” indica que o número de processos de trabalho não está definido corretamente para o tamanho do banco de dados. Talvez seja necessário aumentar ou diminuir o valor definido para `pg_transport.num_workers`. Cada falha informa a porcentagem de conclusão, para que você possa ver o impacto de suas alterações. Por exemplo, alterar a configuração de 8 para 4 em um caso resultou no seguinte:

```
pg_transport.num_workers=4 75% of files transported failed to download file data
```

Lembre-se de que o parâmetro `max_worker_processes` também é levado em consideração durante o processo de transporte. Em outras palavras, talvez seja necessário modificar `pg_transport.num_workers` e `max_worker_processes` para transportar o banco de dados com êxito. O exemplo mostrado finalmente funcionou quando `pg_transport.num_workers` foi definido como 2:

```
pg_transport.num_workers=2 100% of files transported
```

Para obter mais informações sobre a função `transport.import_from_server` seus respectivos parâmetros de configuração, consulte [Referência de funções de bancos de dados transportáveis](PostgreSQL.TransportableDB.transport.import_from_server.md). 