Pré Requisitos para migração para o Novo Log de Auditoria.

ORACLE

Por questões de organização, segurança e performance, foi criada uma rotina que é executada no momento da migração para o Novo Log de Auditoria, a mesma faz a criação do Esquema TOTVSAUDIT e dos TABLESPACES TOTVSAUDIT_DADOS e TOTVSAUDIT_INDICES

Os tablespaces serão criados nos mesmos diretórios de dados onde já existem os arquivos de dados dos tablespaces de sistema RM_DADOS e RM_INDICES. (Caso seja de sua preferência os tablespaces podem ser criados antecipadamente pela sua equipe de DBA's, assim pode-se definir um local diferente para os mesmos.)

Para esta migração é pré-requisito que o usuário que irá realizar a migração (RM) tenha perfil DBA e possua as seguintes permissões:

GRANT SELECT ON DBA_LOBS TO RM;

GRANT SELECT ON DBA_SEGMENTS TO RM;

É necessário também que o parâmetro do SGBD Oracle JOB_QUEUE_PROCESSES esteja com o valor maior que 100.

Para confirmar o valor do parâmetro execute o seguinte query:

SELECT name, value FROM v$parameter WHERE name = 'job_queue_processes';

Caso o usuário não atenda aos pré-requisitos acima, poderão ocorrer erros na conversão da Base de Dados para nova versão.

A partir da versão 12.1.24 foi implementada uma nova ACTION que realiza algumas verificações na base de dados Oracle, a mesma tem a funcionalidade de verificar se existem problemas no Schema ou objetos do Novo Log de Auditoria, para que não ocorra problemas na Conversão da base de dados.

Testes de Homologação de Novas versões em Bases de Dados Oracle

Caso seja necessário se restaurar uma base de dados Oracle em um ambiente de homologação, utilizando-se das ferramentas IMP e IMPDP, deve-se restaurar o Schema RM,  após o final da restauração deve-se executar a Stored Procedure p_FixNovoLog.

Comando: EXEC p_FixNovoLog

Esta nova Stored Procedure faz uma verificação e cria/recria os objetos necessários para o correto funcionamento do Novo Log de Auditoria, Schema, Tabelas, Grants, Etc.

SQL SERVER

Caso esteja sendo utilizado o Novo Log de Auditoria em MS SQL Server e aplicações em Delphi é necessário se atentar ao seguinte ponto:

Devido ao funcionamento do Delphi o parâmetro CONCAT_NULL_YIELDS_NULL  e ANSI_WARNINGS devem estar ligados.

Este será o comportamento padrão do MS SQL Server em versões futuras de acordo com a Microsoft.

Parâmetro CONCAT_NULL_YIELDS_NULL

https://docs.microsoft.com/en-us/sql/t-sql/statements/set-concat-null-yields-null-transact-sql?view=sql-server-2017

Parâmetro ANSI_WARNINGS 

https://docs.microsoft.com/en-us/sql/t-sql/statements/set-ansi-warnings-transact-sql?view=sql-server-2017

Este parâmetro deve ser alterado a nível de banco de dados, conforme exemplo abaixo:

Parâmetro CONCAT_NULL_YIELDS_NULL 

USE [master]

GO
ALTER DATABASE [CorporeRM]* SET CONCAT_NULL_YIELDS_NULL ON WITH NO_WAIT
GO

Parâmetro ANSI_WARNINGS 

USE [master]

GO
ALTER DATABASE [Corpore]* SET ANSI_WARNINGS ON WITH NO_WAIT
GO

CorporeRM será o nome do Database em uso pela aplicação.