> For the complete documentation index, see [llms.txt](https://software-telematica-com.gitbook.io/suricato-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://software-telematica-com.gitbook.io/suricato-docs/central-tecnica/instalacao-e-configuracao-do-suricato/pre-requisitos-de-instalacao.md).

# Pré-Requisitos de Instalação

Suricato 3.1 - Oracle e SQL

## Visão Geral

Este procedimento descreve a preparação do ambiente, instalação e validação do Suricato utilizando banco de dados **Microsoft SQL Server ou Oracle**.

#### <mark style="color:$primary;">Importante (Versão 3.1):</mark>

* Para atualização da versão **3.0.0.0 para a 3.1.0**, é obrigatório estar na versão **3.0.0.25.**
* A **versão 3.1** exige preparação adicional do ambiente (*remoção/limpeza prévia e nova estrutura de scripts*).

{% hint style="warning" %}

#### Atualização de Requisitos (Versão 3.1)

Certifique-se de que o seu ambiente atende aos novos requisitos mínimos:

* [PHP: **8.5.0**](/suricato-docs/central-tecnica/instalacao-e-configuracao-do-suricato/instalacao-do-suricato/atualizacao-do-php.md)
* [Servidor Web: Apache HTTP Server **2.4.66.0** ou **IIS 10**.](/suricato-docs/central-tecnica/instalacao-e-configuracao-do-suricato/instalacao-do-suricato/instalacao-e-atualizacao-do-apache/atualizacao-do-apache.md)

[**Clique para ver o Guia de Atualização →**](/suricato-docs/central-tecnica/instalacao-e-configuracao-do-suricato/instalacao-do-suricato.md)
{% endhint %}

#### Diferenciais de Preparação por Versão

<table data-header-hidden><thead><tr><th width="129"></th><th width="226.77777099609375"></th><th></th></tr></thead><tbody><tr><td><strong>Ação</strong></td><td><strong>Versão 3.0</strong></td><td><strong>Versão 3.1 (Atualização)</strong></td></tr><tr><td><strong>Instalação</strong></td><td>Pode ser instalada sobre a versão anterior.</td><td>Desinstale e remova serviços e variáveis de ambiente.</td></tr><tr><td><strong>Diretório</strong></td><td>Mantém a pasta original.</td><td>Renomeie a pasta <code>Telematica</code> atual para que o instalador crie uma nova do zero.</td></tr><tr><td><strong>Scripts SQL e Oracle</strong></td><td>Pastas 1, 2 e 3.</td><td>Pastas 1, 2, 3 e <strong>4</strong> (Nova pasta adicionada).</td></tr></tbody></table>

## Regras de Negócio

Antes de iniciar qualquer comando, valide se o ambiente cumpre estas regras:

* [x] **Privilégios:** O usuário logado deve ter direitos de Administrador Local no servidor.
* [x] **Licenciamento:** Certifique-se de que o S.O. e o SGBD estão devidamente licenciados.
* [x] **Banco de Dados:** O banco `SURICATO` deve ser criado manualmente antes da execução dos scripts.
* [x] **Conformidade de Versão:** Para a v3.1, a versão de origem obrigatoriamente deve ser a 3.0.0.25.

### Regras por Banco de Dados

#### No Oracle:

* **Regra de Charset (Acentuação):** A variável `NLS_LANG` deve estar configurada corretamente. Caso contrário, o sistema apresentará falhas de leitura/escrita em campos acentuados.
* **Permissões de Objeto:** O usuário do banco não pode ser apenas de consulta; ele deve ter permissão total para `CREATE`, `ALTER` e `DROP` de tabelas e procedures.
* O servidor precisará ser reiniciado após a criação ou alteração de variáveis de ambiente.

#### No SQL Server:

* **Collation Incorreto:** O uso de um Collation diferente de `Latin1_General_CI_AS` causará falhas de integridade e erros de execução nos scripts de atualização.

#### Regra de Execução de Scripts (Sequenciamento)

* Para Versão 3.0: `1` → `2` → `3`
* Para Versão 3.1: `1` → `2` → `3` → `4` (Atenção à pasta adicional)

## Pré-requisitos para a Instalação

Necessário ter permissão para criação de variáveis de ambiente.

{% stepper %}
{% step %}

#### Verificar a instalação do Java

Abra o prompt de comando (CMD) e execute o comando: `java -version`

* **Se retornar a versão:** Prossiga para o próximo passo.
* **Se retornar erro:** Realize a instalação do Java JRE/JDK antes de continuar.

<figure><img src="https://235558800-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjphwa3C6HguhCU8RfNQR%2Fuploads%2Fg31u0xh1ftIkDtON3mqo%2Fimage.png?alt=media&amp;token=3c723754-78d8-4f75-82d5-365534372a7d" alt="" width="521"><figcaption><p>Java -version</p></figcaption></figure>
{% endstep %}

{% step %}

#### Localizar o caminho de instalação

Identifique onde o Java foi instalado em sua máquina. O caminho padrão costuma ser: `C:\Program Files\Java\jre` ou `jdk`&#x20;

{% hint style="info" %}
***Dica:** Você precisará desse caminho exato no passo seguinte.*
{% endhint %}
{% endstep %}

{% step %}

#### Acessar as Variáveis de Ambiente

Siga o caminho no Windows:

* Clique com o botão direito em Este Computador > Propriedades.
* Clique em Configurações Avançadas do Sistema.
* Na aba Avançado, clique no botão Variáveis de Ambiente.
  {% endstep %}

{% step %}

#### Configurar a JAVA\_HOME

Na seção "Variáveis de Sistema", verifique se a variável já existe:

* **Se já existir:** Valide se o caminho aponta para a pasta correta do Java.
* **Se não existir:** Clique em Novo e preencha:
  * **Nome:** `JAVA_HOME`
  * **Valor:** *Cole o caminho anotado no Passo 2.*
    {% endstep %}
    {% endstepper %}

## Configurações Específicas por Banco

Clique sobre o Banco de Dados que irá configurar:

{% tabs %}
{% tab title="SQL Server" %}

* **Versões Homologadas:** SQL Server 2016 a 2022 (padrão em Inglês).
* **Usuário:** `sa` ou administrador equivalente com privilégios totais.
* **Validação de Drivers:** Validar a instalação do Microsoft ODBC Driver for SQL Server (necessário para a extensão `pdo_sqlsrv` do PHP 8.5).
* **Banco de Dados:** Criar o banco de dados `SURICATO` manualmente antes da execução dos scripts.
* Serviços Obrigatórios (Em Execução):
  * [x] SQL Server Agent (Em execução)
  * [x] SQL Server Browser (Em execução)
    {% endtab %}

{% tab title="Oracle" %}

* **Versões Homologadas:** Oracle 19C e 21C (padrão em Inglês).
* **Permissões:** O usuário do banco deve ter permissão total para criar e alterar objetos (`CREATE`, `ALTER` e `DROP` de tabelas e procedures).
* **Charset (NLS\_LANG):** Configure a variável de ambiente corretamente no servidor para evitar erros de acentuação e falhas de leitura/escrita em campos textuais.
* **Validação de SQL (Configuração de Sessão):**

  SQL

  ```
  alter session set nls_language = 'PORTUGUESE';
  alter session set nls_territory = 'BRAZIL';
  ```
* **Consulta de Validação:** Insira dados com acentuação para testar e valide os parâmetros do banco executando:

  SQL

  ```
  select * from nls_database_parameters;
  ```

{% hint style="info" %}
**Nota:** Pode ser necessário reiniciar o servidor após a criação ou alteração das variáveis de ambiente (`JAVA_HOME` ou `NLS_LANG`).
{% endhint %}
{% endtab %}
{% endtabs %}

### Validação Final do Ambiente

* [x] Banco SURICATO criado e acessível
* [x] Java instalado e configurado
* [x] Variáveis de ambiente válidas
* [x] Serviços do banco em execução
* [x] Ambiente pronto para instalação

## FAQ - Perguntas Frequentes

<details>

<summary>É possível instalar diretamente a versão 3.1?</summary>

Não. Para atualizar para a versão 3.1.0.0, é obrigatório estar na versão **3.0.0.25**.

</details>

<details>

<summary>Qual a ordem correta de execução dos scripts?</summary>

* Versão 3.0: **1 → 2 → 3**
* Versão 3.1: **1 → 2 → 3 → 4**

</details>

<details>

<summary>Preciso criar o banco de dados antes da instalação?</summary>

Sim. O banco **SURICATO** deve existir previamente antes da execução dos scripts.

</details>

<details>

<summary>Como saber se o Java está instalado corretamente?</summary>

Execute no Prompt de Comando:

```
java -version
```

Se não houver retorno válido, é necessário instalar o Java e configurar a variável **JAVA\_HOME**.

</details>

<details>

<summary>O que é a variável JAVA_HOME e por que é necessária?</summary>

É uma variável de ambiente que aponta para o diretório de instalação do Java e é necessária para o funcionamento correto do Suricato.

</details>

<details>

<summary>Quais serviços precisam estar em execução?</summary>

* Telematica Suricato
* SQL Server: SQL Server Agent e SQL Server Browser
* Oracle: serviços de instância e listener

</details>

<details>

<summary>Quais são os requisitos específicos para Oracle?</summary>

* Usuário com permissões de criação e alteração de objetos
* Configuração correta da variável **NLS\_LANG**
* Atenção à codificação de caracteres (acentuação)

</details>

<details>

<summary>Como validar se o NLS_LANG está correto no Oracle?</summary>

Execute comandos de sessão e realize inserções com acentuação. Se os caracteres forem exibidos corretamente, a configuração está válida.

</details>

<details>

<summary>É necessário reiniciar o servidor após configurações?</summary>

Em alguns casos, sim — principalmente após alterações em variáveis de ambiente como **JAVA\_HOME** ou **NLS\_LANG.**

</details>

<details>

<summary>O que validar antes de iniciar a instalação?</summary>

* Acesso administrativo
* Chave serial válida
* Banco SURICATO criado
* Java instalado e configurado
* Serviços do banco em execução

</details>


---

# 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://software-telematica-com.gitbook.io/suricato-docs/central-tecnica/instalacao-e-configuracao-do-suricato/pre-requisitos-de-instalacao.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.
