# Ferramenta de Migração de Banco de Dados Use esta ferramenta para migrar dados entre dois bancos de dados (Postgres para MSSQL e vice-versa), bem como entre sistemas operacionais (Linux para Windows e vice-versa). Você pode realizar as seguintes migrações de dados com esta ferramenta: - Migração entre bancos de dados (Postgres para MSSQL ou MSSQL para Postgres) - Migração do servidor de banco de dados MSSQL de um servidor de banco de dados para outro. ## Possíveis Migrações de Banco de Dados **Postgres para MSSQL**: Os dados podem ser migrados entre dois bancos de dados da mesma instalação, bem como de instalações diferentes. **MSSQL para Postgres**: Os dados podem ser migrados entre dois bancos de dados da mesma instalação, bem como de instalações diferentes. **MSSQL para MSSQL**: Os dados podem ser migrados entre dois bancos de dados em servidores diferentes. ### Links Rápidos - [Migrando para banco de dados MSSQL](#mssql) - [Migrando para banco de dados PostgreSQL](#postgres) - [Migrando para banco de dados PostgreSQL integrado](#bundled-postgres) - [Mesma instalação](#same-bundle-postgres) - [Instalação diferente](#bundle-postgres-different) - [Migrando para banco de dados PostgreSQL externo](#external-postgres) **Observação**: Postgres - Postgres > Um backup manual pode ser feito e restaurado se você precisar restaurar em um servidor diferente. --- ## Migrando para banco de dados MSSQL Siga as etapas abaixo se o banco de dados de destino for MSSQL/ao migrar para banco de dados MSSQL. ### Etapa 1: Parar o serviço da aplicação - Pare o serviço da aplicação antes de iniciar o processo de migração. ### Etapa 2: Executar o script de migração - Execute o script `migrateDB.bat/sh` localizado em `{build_dir}/bin`. - Forneça os detalhes no modo console usando `migrateDB.bat/sh --console`. - Escolha a opção 2 se o tipo de servidor do banco de dados de destino for MSSQL, ou a opção 3 para sair. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/4787/2024_03_12_06_01_0426.png) ### Etapa 3: Forneça os detalhes do banco de dados de destino Ao fornecer os detalhes do banco de dados, certifique-se de que o banco de dados de destino informado esteja vazio para que a migração prossiga. Se o banco de dados não existir, ele será criado ao salvar os detalhes. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/3510/2024_03_12_06_02_2427.png) ### Etapa 4: Selecione o tipo de migração **Observação**: Se nenhum tipo for selecionado, a migração de dados será o padrão. - Se estiver migrando apenas dados dentro da mesma instalação para o banco de dados MSSQL, selecione migração de dados. - Se estiver migrando para um servidor ou instalação diferente, opte por migração de servidor. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/4531/2024_03_12_06_03_2328.png) ### Etapa 4.1: Migração de dados **Confirmação de ambiente de produção ou teste:** - Uma janela pop-up será exibida para confirmar se você deseja migrar os dados para um ambiente de produção ou de teste. - Clique em "Sim" para migração de produção ou em "Não" para um ambiente de teste. - Para cancelar a migração, selecione "Cancelar". **Progresso da migração:** - Assim que o tipo de migração e a confirmação do ambiente forem selecionados, o processo de migração será iniciado. - Um pop-up de progresso será exibido. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/1299/2024_03_12_06_05_3431.png) **Conclusão da migração:** Após a conclusão da migração do banco de dados, um pop-up confirmará o sucesso da migração. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/2299/2024_03_12_06_05_0930.png) **Etapas pós-migração de dados:** - Execute o `changeDBServer.bat/sh` a partir de `{build_dir}/bin`. - Forneça os detalhes do banco de dados MSSQL para o qual a migração foi realizada. - Salve os detalhes e inicie a aplicação como um serviço ou use o `run.bat/sh` presente dentro de `/bin` para criar o banco de dados de destino. ### Etapa 4.2: Migração de servidor **Fazer backup dos arquivos do banco de dados:** - Os arquivos necessários serão capturados como `dbMigrationFileBackup.ezip` e colocados na pasta `/dbMigrationFileBackup`. **Confirmação de ambiente de produção ou teste:** - Um pop-up será exibido para confirmar se você deseja migrar os dados para um ambiente de produção ou de teste. - Clique em "Sim" para migração de produção ou em "Não" para um ambiente de teste. - Para cancelar a migração, selecione "Cancelar". **Progresso da migração:** - Assim que o tipo de migração e a confirmação do ambiente forem escolhidos, o processo de migração será iniciado. - Uma barra de progresso será exibida. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/4685/2024_03_12_06_08_1432.png) **Conclusão da migração:** Após a conclusão da migração do servidor, um pop-up confirmará o sucesso da migração. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/8644/2024_03_12_06_08_3333.png) **Observação**: Se estiver migrando para um ambiente de produção e o caminho da pasta `fileattachments` estiver configurado externamente na instalação de origem, o pop-up abaixo será exibido após a conclusão. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/3714/2024_03_12_06_09_0234.png) **Etapas pós-migração de servidor:** - Mova o `dbMigrationFileBackup.ezip` do servidor de origem para o servidor de destino. - Extraia o `dbMigrationFileBackup.ezip` na pasta `/` do servidor de destino. **Extração de arquivo protegido por senha:** O `dbMigrationFileBackup.ezip` é um arquivo protegido por senha. - Forneça a senha atual do backup na origem para descompactar o arquivo. - Você pode usar o aplicativo WinRAR ou 7zip, se disponível, ou executar o seguinte comando para extrair o `.ezip`. **Extraindo no Windows** ``` \tools\archiver\windows\x86-64\7za.exe x -y -o -p ``` Exemplo: ``` D:\Destination\AdventNet\ME\ServiceDesk\tools\archiver\windows\x86-64\7za.exe x D:\migrationfiles\dbMigrationFileBackup\dbmigrationfilebackup.ezip -y -oD:\Destination\AdventNet\ME\ServiceDesk -pSDP1234 ``` **Extraindo no Linux** ``` /tools/archiver/linux/x86-64/7zzs x -y -o -p ``` Exemplo: ``` /home/user/workspace/builds/AdventNet/ME/ServiceDesk/tools/archiver/linux/x86-64/7zzs x /home/user/migrationFiles/dbMigrationFileBackup.ezip -y -o/home/user/workspace/builds/AdventNet/ME/ServiceDesk/ -pSDP1234 ``` - No servidor de destino, conecte-se ao banco de dados MSSQL migrado executando `changeDBServer.bat/sh` em `{build_dir}/bin`. - Forneça os detalhes do banco de dados MSSQL de destino. - Salve os detalhes e inicie a aplicação como um serviço ou use `run.bat/sh` presente dentro de `/bin`. - O caminho da pasta `fileattachments` pode ser modificado na instalação de destino em: **Admin** > **Configurações gerais** > **Configurações de anexos** - A pasta `fileattachments` deve ser movida do servidor de origem para o local configurado no servidor de destino. **Falha na migração:** Em caso de falha na migração, um pop-up será exibido. Entre em contato com o suporte para obter assistência. --- ## Migrando para o banco de dados PostgreSQL Se você estiver migrando para o banco de dados PostgreSQL, siga as etapas mencionadas abaixo. ### Etapa 1: Parar o serviço da aplicação - Pare o serviço da aplicação antes de iniciar o processo de migração. ## Etapa 2: Migrando para o PostgresDB incorporado ### 2.1: Para a mesma instalação - Faça um backup reduzido executando `trimmedBackUpData.bat/sh` presente em `{build_dir}/bin` antes de mudar para `postgresDb`. Para criar o banco de dados Postgres de destino: - Execute `changeDBServer.bat/sh` presente em `{build_dir}/bin`. - Forneça os detalhes do banco de dados Postgres. **Observação**: Evite usar "postgres" como nome de usuário, pois executar a aplicação como superusuário é restrito. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/7957/2024_03_12_06_30_1836.png) - Inicie a aplicação como um serviço ou use `run.bat/sh` presente dentro de `/bin`. - Para que a migração ocorra, o banco de dados de destino deve estar vazio. **Observação**: Para a versão 14202 e superiores, copie o arquivo `reinitialize.bat/sh` de `\server\tools` para o diretório `bin`. Ao executar o `reinitialize.bat/sh`, os dados serão excluídos. - Execute `{build_dir}/bin/reinitialize.bat/sh` para esvaziar o banco de dados de destino. - Anote os detalhes do `postgresDb` de destino para fornecê-los durante a migração. ### Geração automática da senha do banco de dados PostgreSQL Para usuários do ServiceDesk Plus build 14610 e superiores, a senha padrão do banco de dados PostgreSQL será gerada automaticamente para `sdpadmin`. **Como recuperar a senha?** O usuário que instala o ServiceDesk Plus pode visualizar a senha gerada automaticamente executando o seguinte script: - Windows: `decryptPostgresPassword.bat` - Linux: `decryptPostgresPassword.sh` **Observação**: Ao migrar da build 14600 para a 14620 ou posterior, o arquivo `decryptPostgresPassword.bat/.sh` não estará disponível. Entre em contato com o suporte para recuperar a senha do `sdpadmin`. ### Etapa 2.1.1: Etapas para iniciar o servidor Postgres de destino - Inicie o Postgres executando o comando abaixo a partir de `\pgsql\bin`: ``` pg_ctl.exe start -D "\ServiceDesk\pgsql\data" ``` - Altere para o banco de dados MSSQL executando `changeDBServer.bat/sh` presente em `{build_dir}/bin`. - Forneça os detalhes do banco de dados de origem e salve. ### Etapa 2.1.2: Executar o script de migração - Execute o script `migrateDB.bat/sh` localizado em `{build_dir}/bin`. - Para fornecer os detalhes do banco de dados Postgres de destino no modo console, execute `migrateDB.bat/sh --console`. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/4849/2024_03_12_06_45_0037.png) - Escolha a opção 1 se o tipo do servidor de banco de dados de destino for PostgreSQL, ou a opção 3 para sair. ### Etapa 2.1.3: Selecionar o tipo de migração - Como a migração está sendo feita para a mesma configuração, selecione **Migração de Dados**. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/2279/2024_03_12_06_47_3538.png) ### Etapa 2.1.4: Confirmação de ambiente de produção ou teste - Clique em "Sim" para migrar para um ambiente de produção. - Clique em "Não" para migrar para um ambiente de teste. - Clique em "Cancelar" para cancelar a migração. **Progresso da migração:** - Uma barra de progresso será exibida. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/8497/2024_03_12_06_49_3939.png) **Conclusão da migração:** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/1259/2024_03_12_06_50_0740.png) **Etapas pós-migração de dados:** - Pare o servidor Postgres executando: ``` pg_ctl.exe stop -D "\ServiceDesk\pgsql\data" ``` - Execute `changeDBServer.bat/sh`. - Forneça os detalhes do banco de dados PostgreSQL de destino. - Salve os detalhes e inicie a aplicação como serviço ou usando `run.bat/sh`. --- ## Migração para PostgresDB Externo Siga as etapas abaixo para migrar para o PostgresDB Externo. ### Etapa 1: Parar o Serviço da Aplicação - Pare o serviço da aplicação antes de iniciar o processo de migração. ### Etapa 2: Criação do Banco de Dados Siga as etapas 1 a 6 mencionadas no documento abaixo para criar um banco de dados externo Postgres: - https://www.manageengine.com/br/service-desk/help/adminguide/external-postgresql.html#setup-postgresql **Observação**: O Postgres externo deve estar iniciado para que a migração prossiga. ### Etapa 3: Executar o Script de Migração - Execute o script `migrateDB.bat/sh` localizado em `{build_dir}/bin`. - Para fornecer os detalhes do banco de dados de destino no modo console, execute `migrateDB.bat/sh --console`. - Escolha a opção 1 se o tipo de servidor de banco de dados de destino for PostgreSQL. - Se estiver se conectando ao PostgreSQL remotamente, siga as etapas: https://pitstop.manageengine.com/portal/en/kb/articles/connect-to-default-pgsql-database-remotely - Certifique-se de que o banco de dados de destino esteja vazio. **Observação**: Evite usar "postgres" como nome de usuário. ### Etapa 4: Selecionar o Tipo de Migração - Para alterar apenas o banco de dados para um Postgres externo, selecione **Migração de Dados**. - Para migrar para um servidor ou instalação diferente, escolha **Migração de Servidor**. - Se nenhum tipo for selecionado, a migração de dados será o padrão. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/6922/2024_03_12_07_55_2444.png) ### Etapa 4.1: Migração de Dados **Confirmação de Ambiente:** - Clique em "Sim" para produção. - Clique em "Não" para teste. - Clique em "Cancelar" para cancelar. **Progresso da Migração:** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/6228/2024_03_12_07_56_3545.png) **Conclusão da Migração:** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/6105/2024_03_12_07_57_0646.png) **Etapas Pós-Migração de Dados:** - Siga as etapas descritas em: https://pitstop.manageengine.com/portal/en/kb/articles/how-to-connect-external-postgres --- ## Migração de Servidor **Fazer Backup dos Arquivos do Banco de Dados:** - Os arquivos necessários serão capturados como `dbMigrationFileBackup.ezip` e colocados na pasta `/dbMigrationFileBackup`. **Confirmação de Ambiente de Produção ou Teste:** - Clique em "Sim" para produção. - Clique em "Não" para teste. - Clique em "Cancelar" para cancelar. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/7778/2024_03_12_07_58_5747.png) **Progresso da Migração:** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/9619/2024_03_12_07_59_3148.png) **Conclusão da Migração:** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/3162/2024_03_12_07_59_5049.png) Se estiver migrando para um ambiente de produção e o caminho `fileattachments` estiver configurado externamente na instalação de origem, o pop-up abaixo será exibido: ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/1164/2024_03_12_08_00_1550.png) **Etapas Pós-Migração de Servidor:** - Mova o `dbMigrationFileBackup.ezip` do servidor de origem para o servidor de destino. - Extraia o arquivo conforme descrito anteriormente. - Siga as etapas no link: https://pitstop.manageengine.com/portal/en/kb/articles/how-to-connect-external-postgres - Configure o caminho da pasta de anexos em: **Admin** > **Configurações Gerais** > **Configurações de Anexos** - Mova a pasta `fileattachments` para o local configurado. **Falha na migração:** Em caso de falha, um pop-up será exibido. Entre em contato com o suporte para obter ajuda. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/8579/2024_03_12_08_02_5151.png) Certifique-se de seguir estas etapas cuidadosamente para uma migração bem-sucedida para o banco de dados PostgreSQL.