> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/on-premise/pt-br/on-premise/how-to-guide/maintenance/migration/separate-services-migration.md).

# Migração de serviços separados

Conforme a sua plataforma é utilizada e o número de dispositivos registrados cresce, pode ser necessário redistribuir ou mover certos serviços para outros diretórios ou servidores. Isso geralmente ocorre com serviços de banco de dados e web. Recomenda-se fortemente que os serviços de backend (serviços Java) permaneçam no local original de instalação.

{% hint style="info" %}
A migração do banco de dados e do site atualmente se aplica apenas a uma instalação "clássica", na qual a plataforma é instalada como um serviço do sistema. A plataforma em Docker atualmente existe como all-in-one e não implica distribuição para múltiplos servidores.
{% endhint %}

## Migração do banco de dados

Dependendo dos seus objetivos, pode ser necessário mover o banco de dados para um diretório personalizado no servidor ou migrá‑lo para um servidor separado.

### Diretório personalizado do banco de dados

Por padrão, os arquivos do banco de dados estão localizados dentro de um subdiretório designado no diretório do MySQL: `/var/lib/mysql`. Suponha que seja necessário mover o banco de dados para um diretório personalizado chamado `/DB`. Para isso, execute os seguintes passos:

1. Crie subdiretórios para arquivos e logs, por exemplo:

```
/DB/mysql-files 
/DB/mysql-log
```

2\. Altere o proprietário para *mysql* e as permissões para `drwxr-x---`

```
chown mysql:mysql mysql-files 
chown mysql:mysql mysql-log 
chmod 750 mysql-files 
chmod 750 mysql-log
```

3\. Pare o mysql: `systemctl stop mysql`.

4\. Copie **(não mova)** os arquivos de `var/lib/mysql` e `var/log/mysql` para os diretórios novos correspondentes

5\. Edite a configuração em `/etc/mysql/mysql.conf.d/mysqld.cnf`. Altere `datadir` e `log error` para as novas strings/valores.

6\. Inicie o mysql: `systemctl start mysql`. Verifique o seu `error.log` em busca de erros.

### Movendo o banco de dados para servidor separado

Se for necessário mover o banco de dados para um servidor separado (por exemplo, para balanceamento de carga), é preciso executar os seguintes passos.

1. Instale o MySQL da mesma versão no novo servidor.
2. Faça um backup do seu banco de dados.
3. Restaure o backup no novo servidor e inicie o banco de dados.
4. Altere a configuração dos serviços Java: `api-server`, `sms-server`, `tcp-server`. No diretório de cada serviço há um `db.properties` arquivo que especifica os parâmetros de conexão do banco de dados. Por exemplo, em Linux tais arquivos estão localizados nos seguintes caminhos:

* `/home/java/api-server/conf/db.properties`
* `/home/java/sms-server/conf/db.properties`
* `/home/java/tcp-server/conf/db.properties`\
  Edite cada arquivo e altere `localhost` para o endereço IP do seu novo servidor de banco de dados. Preserve todo o conteúdo restante.

5. Salve os arquivos e reinicie os serviços Java.
6. Verifique o funcionamento dos serviços e seus logs. Se eles não conseguirem iniciar, verifique a conexão com o novo servidor na porta 3306 (porta padrão do MySQL).

## Migração do servidor web

Normalmente, o site (frontend) é hospedado no mesmo servidor que os serviços Java (backend), e isso é o caso da maioria dos servidores de nossos clientes, inclusive os maiores. Contudo, pode ser desejável hospedar o servidor web e todos os arquivos do website em um servidor dedicado para uma gestão de carga e acesso de rede mais flexível.

Para realizar isso, será necessário fazer o seguinte:

1. Instale o Nginx no servidor dedicado.
2. Mova os diretórios do frontend para o novo servidor:

* `/etc/nginx`
* `/var/www`

3. Verifique o `navixy.conf` e `navixy_ssl.conf` (se existir) e especifique o `{backend_server}` endereço — onde os serviços Java estão hospedados — nas seguintes linhas:

```
location / { 
    proxy_pass http://{backend_server}:8084; 
    } 
location /console  { 
    proxy_pass http://{backend_server}:8383/console; 
    } 
location /event {  
    proxy_pass http://{backend_server}:8084/event;
    }
location /file/upload/ { 
    proxy_pass   http://{backend_server}:8084/file/upload/; 
    } 
location /file/dl/ { 
    proxy_pass   http://{backend_server}:8084/file/dl/; 
    }
```

4. Inicie o Nginx.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/on-premise/pt-br/on-premise/how-to-guide/maintenance/migration/separate-services-migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
