unificação de banco de dados

23
Unificação de Banco de Dados 1.Objetivos Esta técnica tem por objetivos esclarecer os procedimentos necessários para utilizar o aplicativo Datasul-EMS diminuindo-se o número de bancos através do processo de unificação de bancos. Hoje, encontramos algumas dificuldades como o excesso de bancos, o que acaba acarretando um número elevado de processos e memória em ambientes internos e clientes. Temos também problemas com ODBC, onde só é possível conectar um banco por vez. O objetivo deste trabalho, é viabilizar a redução de bancos Progress, o que diminui os processos no servidor de bancos, melhora a performance geral, facilita a administração do ambiente e, consequentemente, aumenta a satisfação dos clientes. Nos últimos anos o produto ERP Datasul cresceu bastante em funcionalidades e para permitir a modularização e flexibilidade no desenvolvimento e manutenção do produto, o número de Bancos de Dados do produto também cresceu. Para se ter uma idéia, a release EMS 2.02 possui 15 bancos (mais 3 bancos históricos) e a release comercial atual, que é a EMS 2.04, possui 25 bancos (mais 6 bancos históricos). Já para os clientes do EMS 2.02 essa quantidade de bancos causou um impacto negativo na performance geral do ambiente, devido a quantidade de processos no servidor de bancos, principalmente para clientes com um parque tecnológico restrito. Com a instalação do EMS 2.02 em banco de dados Oracle surgiu uma dificuldade adicional: como a release EMS 2.02 possui 15 bancos, cada usuário EMS 2.02 abre 15 sessões Oracle. Isto acarretou dificuldades nas questões de licenciamento do banco de dados Oracle, devido ao custo de cada licença do Oracle. Para solucionar este problema no Oracle, temos também o processo de Unificação de Schema Holder. Os clientes que estão instalando a release EMS 2.04 que possuem 25 bancos de dados (mais 6 para quem utiliza Bancos Históricos), estão encontrando dificuldades de performance devido a grande quantidade de memória RAM exigida para os processos servidores dos bancos de dados. Para estes clientes, é imprescindível uma solução que permita uma utilização mais racional dos recursos disponíveis. Internamente na Datasul, a quantidade de bancos de dados do produto associada a quantidade de releases ativas e a quantidade de ambientes Data última atualização: 18/03/2010 Página: 1

Upload: marcio6161

Post on 19-Jan-2016

152 views

Category:

Documents


9 download

DESCRIPTION

Datasul EMS

TRANSCRIPT

Page 1: Unificação de Banco de Dados

Unificação de Banco de Dados

1. Objetivos

Esta técnica tem por objetivos esclarecer os procedimentos necessários para utilizar o aplicativo Datasul-EMS diminuindo-se o número de bancos através do processo de unificação de bancos.

Hoje, encontramos algumas dificuldades como o excesso de bancos, o que acaba acarretando um número elevado de processos e memória em ambientes internos e clientes. Temos também problemas com ODBC, onde só é possível conectar um banco por vez. O objetivo deste trabalho, é viabilizar a redução de bancos Progress, o que diminui os processos no servidor de bancos, melhora a performance geral, facilita a administração do ambiente e, consequentemente, aumenta a satisfação dos clientes.

Nos últimos anos o produto ERP Datasul cresceu bastante em funcionalidades e para permitir a modularização e flexibilidade no desenvolvimento e manutenção do produto, o número de Bancos de Dados do produto também cresceu. Para se ter uma idéia, a release EMS 2.02 possui 15 bancos (mais 3 bancos históricos) e a release comercial atual, que é a EMS 2.04, possui 25 bancos (mais 6 bancos históricos).

Já para os clientes do EMS 2.02 essa quantidade de bancos causou um impacto negativo na performance geral do ambiente, devido a quantidade de processos no servidor de bancos, principalmente para clientes com um parque tecnológico restrito.

Com a instalação do EMS 2.02 em banco de dados Oracle surgiu uma dificuldade adicional: como a release EMS 2.02 possui 15 bancos, cada usuário EMS 2.02 abre 15 sessões Oracle. Isto acarretou dificuldades nas questões de licenciamento do banco de dados Oracle, devido ao custo de cada licença do Oracle. Para solucionar este problema no Oracle, temos também o processo de Unificação de Schema Holder.

Os clientes que estão instalando a release EMS 2.04 que possuem 25 bancos de dados (mais 6 para quem utiliza Bancos Históricos), estão encontrando dificuldades de performance devido a grande quantidade de memória RAM exigida para os processos servidores dos bancos de dados. Para estes clientes, é imprescindível uma solução que permita uma utilização mais racional dos recursos disponíveis.

Internamente na Datasul, a quantidade de bancos de dados do produto associada a quantidade de releases ativas e a quantidade de ambientes necessários, seja para desenvolvimento, suporte e manutenção, quality assurance e também os idiomas e SGDBS suportados, está criando uma situação que exige cada vez mais recursos de hardware. Desta forma, uma solução que permita reduzir o número de bancos e melhorar o desempenho do sistema, atende tanto as necessidades dos clientes como as necessidades internas da Datasul.

A Datasul encontrou uma solução, que permite ao cliente, que assim o desejar, unificar as suas bases de dados para melhorar o desempenho do sistema. A solução encontrada foi resultado de um estudo realizado pela Datasul Tecnologia, com o objetivo inicial de viabilizar a unificação de schema-holder para Oracle (consultar documento de Unificação de Banco Oracle), diminuindo o número de licenças necessárias para os clientes que usam Oracle. Este estudo também viabilizou a redução de bancos Progress para clientes que usam Progress puro.

1.1Como funcionará este processo?

A premissa básica do processo de unificação de bancos é de causar o menor impacto possível ao cliente e não alterar o produto padrão. Da forma como é hoje expedido, o mesmo produto padrão deve executar tanto em clientes que unificaram as suas bases de dados como em clientes que mantém as bases individualmente separadas.

O produto Datasul é compilado e expedido no formato .R. Em tempo de compilação dos programas são gravadas no .r as seguintes informações:

Data última atualização: 18/03/2010 Página: 1

Page 2: Unificação de Banco de Dados

Nome lógico dos bancos de dados (parâmetro –ld do arquivo de parâmetros) Nome da Tabela CRC da Tabela e Índice

O produto somente será executado sem erros no ambiente do cliente se, em tempo de execução, os bancos conectados possuírem os mesmos nomes lógicos (-ld) e CRC dos bancos utilizados em tempo de compilação.

Exemplo: Suponha um .r do produto padrão (compilado com os bancos separados). Neste .r, temos o comando: Find first mgind.param-global. No produto padrão, este comando funciona normalmente porque o banco mgind está conectado. Imagine, agora, um ambiente onde unificaram-se todos os bancos do produto num único banco de dados chamado

mg. Se executarmos o mesmo .r conectando somente o banco unificado chamado mg (que contenha a tabela param-

global) ocorre a mensagem de erro “Banco mguni não conectado”.

Para resolver este problema, pode-se enganar o “nome lógico” gravado no .r usando o comando “Create Alias”. Para executar o .r original sem erros deve-se fazer o seguinte:

Executar primeiro um programa especial com o comando: CREATE ALIAS mgind FOR DATABASE mg NO-ERROR.

De agora em diante, o Alias mgind vai funcionar como sendo um nome lógico e o .r conseguirá interpretar o comando Find first mgind.param-global. Assim, a mensagem de erro citada acima não ocorrerá mais.

O recurso que permite a criação de “Alias” para os nomes lógicos dos bancos de dados, é a característica que permite a unificação dos bancos físicos. Mesmo que fisicamente exista um banco único, os programas .r funcionam como se cada banco de dados lógico estivesse separado.

A unificação será permitida de algumas formas pré-definidas (estruturas de unificação) e homologadas pela DATASUL, de acordo com as características do cliente e dos produtos por ele adquiridos. O produto padrão não será alterado e continuará sendo expedido da forma como é feito hoje. O mesmo ponto .r funcionará sem alterações para os clientes que mantém os bancos separados, para aqueles que unificaram com a estrutura A, para aqueles clientes que unificaram com a estrutura B, e assim por diante.

Como será explicado em detalhes mais adiante, o cliente que unificar os bancos de dados, terá que customizar o seu ambiente para que sejam executados os comandos “Create Alias” antes da execução de qualquer .r do produto padrão.

Atenção: Este processo de unificação pode ocasionar alguns impactos ao cliente. Veja item 3. Impactos deste manual.

2. Vantagens

2.1 Utilização de Memória

Quanto menos bancos existirem, menor o número de processos nos servidores de bancos e menor será a quantidade de memória RAM necessária.

Suponha um cliente que tenha a seguinte configuração de produtos e bancos de dados: utiliza a release EMS 2.04 com 23 bancos e 6 bancos históricos, a release EMS 5.04 com 4 bancos e tenha um produto Específico com 3 bancos. São 36 bancos de dados. Como o produto ainda está em desenvolvimento, ele precisa manter dois ambientes separados: um ambiente de desenvolvimento e outro de produção. Isso duplica o numero de bancos (72 bancos).

Se este cliente unificar os bancos com a seguinte estrutura: três bancos para o EMS 2.04 (um para os cadastros, um para os movimentos e um para os históricos), um banco para o EMS 5 e um banco para os Específicos, considerando que o cliente tenha dois ambientes (Produção e Testes), após a unificação ele terá dez (10) bancos de dados, obtendo

Data última atualização: 18/03/2010 Página: 2

Page 3: Unificação de Banco de Dados

assim uma economia de recursos, conforme especificado no quadro abaixo. Veja quadro comparativo, antes e depois da unificação, considerando que o cliente tenha 240 usuários utilizando o sistema.

Atualmente Após Unificação Economia de recursosNúmero de bancos 72 10 62 Bancos de DadosNúmero de processos Servers (-Mn 40)

2880 400 2480 Processos

Memória para servers (256 Kb p/proc.)

720Mb 100Mb 620Mb de Memória

2.2 Bancos de dados não utilizados pelo Cliente

Na arquitetura atual do produto, fica difícil prever quais bancos não são acessados e podem ficar desconectados. Mesmo que o cliente utilize somente alguns módulos do produto, terá que conectar todos os bancos, pois o produto não está componentizado (o processo de componentização do produto está previsto para as releases futuras). Esses bancos, aparentemente não utilizados, são acessados internamente pelos programas, como, por exemplo, pelo programa de param-global, e estes programas cancelarão a execução se os mesmos não estiverem conectados.

Com a unificação, estes bancos não utilizados, que poderiam ficar desconectados, deixarão de ser um problema para o cliente, pois estarão embutidos no banco unificado e não consumirão nenhum recurso adicional. A unificação de bases irá sanar uma das dúvidas do cliente que diz respeito à perda de performance do produto pelo fato de serem conectados bancos desnecessários. O cliente pode esquecer que tem estes bancos de dados.

2.3 Rotinas de Administração de Banco de Dados

Com a redução do número de bancos, haverá uma simplificação significativa nas rotinas de administração do ambiente do cliente. Serão simplificados a manutenção dos .pf, scripts, rotinas para carregar e derrubar os serviços, desconectar usuários do sistema, realização de backups, etc.

3. Impactos

Neste tópico, descreveremos quais serão os possíveis impactos para o cliente que optar pela Unificação de suas bases de dados.

3.1 Serviços de Unificação

A unificação dos bancos para as diversas estruturas de unificação possíveis não fará parte do produto padrão, será um serviço vendido aos clientes. O cliente deverá dispor de um tempo para execução da conversão de unificação e customização do ambiente que corrige os scripts, .pf, gera os programas de “Create alias”, etc.

3.2 Rotinas DBA

3.2.1 Parâmetro –Mr: Nos testes realizados no processo de unificação de bancos, observou-se um estouro do parâmetro –Mr na importação de dados devido ao número de tabelas do banco unificado. Os processos de dump e load devem ser divididos em duas partes para funcionar.

3.2.2 Tabelas com o mesmo dumpname: Algumas tabelas possuem o mesmo “dumpname” (“juros-empresa-cr” do banco “mgadm” e “movto-cheque” do banco “movadm”) e, com isso, o dump/load destas tabelas deve ser executado em separado.

3.3 RPW

A unificação apresenta um problema com sessões RPW que fazem conexão de bancos referenciando nomes lógicos que não existem mais após a unificação. Para resolver este problema, foram desenvolvidos dois fontes liberados, os quais deverão ser customizados, incluindo os “Create Alias” necessários antes de dar run no programa. Os programas

Data última atualização: 18/03/2010 Página: 3

Page 4: Unificação de Banco de Dados

são os seguintes: programa btb908zh.p (plataforma Windows) e btb908zg.p (plataforma Unix). Estes programas irão fazer a chamada dos programas btb908za ou btb908zb (o programa vai depender da plataforma que o cliente possuir – btb908za para NT e btb908zb para Unix) e desta forma o problema será corrigido. Ainda, é necessário que a compilação de programas para RPW seja feita em ambientes distribuídos e não unificados.

3.4 Específicos

A unificação pode apresentar restrições na compilação de específicos, pois existem algumas tabelas do Foundation com o mesmo nome tanto no banco de dados do produto EMS2 quanto no banco de dados do produto EMS5 e isso causa um erro durante a compilação. Para solucionar esse problema, é necessário que os programas sejam compilados com suas bases distribuídas (não unificadas). Após a compilação, os programas podem ser executados normalmente nos ambientes unificados.

Estas bases de dados distribuídas poderão ser criadas, para efeitos de desenvolvimento, partindo-se das definições existentes na mídia de instalação do produto e aplicando-se os deltas liberados nos pacotes de atualizações subseqüentes. Essas bases não precisam conter dados, apenas as definições das tabelas e dicionário para a compilação dos programas.

3.5 Limites Internos do Progress

Com a unificação de vários bancos de dados em um único grande banco, o número de objetos do dicionário de dados (tabelas, índices, seqüências e atributos) cresce bastante, mas segundo os limites documentados do Progress e as projeções de crescimento do nosso dicionário de dados, estamos muito longe de atingir os limites do Progress.

Existe uma restrição de endereçamento de memória nos produtos Progress 32 bits que nos leva a não recomendar a unificação de uma quantidade muito grande de bancos num só, já que a quantidade de memória que poderá ser alocada para o banco será limitada, mesmo que o servidor tenha memória RAM disponível.

3.6 Procedimentos de Conversão de releases

Os procedimentos de conversão da Datasul (migração de uma release anterior para uma nova) deverão ser alterados para contemplar a existência de bancos unificados. O cliente pode ter bancos unificados na release anterior e quer migrar de release (mantendo os bancos unificados), ou o cliente ainda não tem os bancos unificados e quer fazer a migração para a nova release e ao mesmo tempo unificar os bancos.

3.7 Procedimento de aplicação de delta de dicionário

Os procedimentos de envio de delta de dicionário aos clientes com o objetivo de atualizar o dicionário de dados no campo, devem prever a situação dos clientes com bancos unificados.

3.8 Retorno da unificação

Na hipótese do cliente ter feito a unificação dos bancos e, por um motivo qualquer, quiser voltar para a situação anterior com os bancos individualmente separados (Produto Padrão) ele deverá contratar um novo serviço de conversão que recriará o ambiente original. O ideal é que o cliente faça um backup de seu ambiente antes do processo de unificação para evitar maiores contratempos caso queira retornar para o produto padrão.

4 Estruturas de Unificação Possíveis

Os produtos Datasul possibilitam várias configurações de bancos de dados e este documento cobre as principais configurações que os clientes podem utilizar.

Data última atualização: 18/03/2010 Página: 4

Page 5: Unificação de Banco de Dados

Para facilitar o entendimento dos diversos bancos de dados lógicos citados nas estruturas de unificação, segue uma tabela com os bancos de dados dos produtos Datasul com suas finalidades.

Produto Datasul EMS2:

Logical Name Sigla Descriçãomgadm AD Administrativomgadt AU Audit Trailmgaps AP Advanced Planning Systemmgcex CX Comércio exteriormgcld CL Coletor de Dadosmgdis DI Distribuiçãomgfis FI Fiscalmgind IN Industrialmginv IV Investimentosmgmfg MF Chão de Fábricamgmnt MN Manutenção Industrialmgmp MP Multi-Plantamgmrp MR MRPmgrac RC Comissões Representantesmgscm SC Supply Chain Managementmgsop SO Screen Optmizermgsor SR Temporário - Screen Optmizer Repositorymgtmp TM Temporário templatesmguni UN Universalmgven VE Vendorlcarg ARG Localização Argentinamovadm AD Administrativo - Movimentosmovdis DI Distribuição - Movimentosmovfis FI Fiscal - Movimentosmovind IN Industrial - Movimentosmovmfg MF Chão de Fábrica - Movimentosmovmnt MN Manutenção Industrialmovrac RC Comissões Representantes - Movimentosneogrid NEO Neogrid E-collaborationwmovdis WD Temporário Distribuiçãoeai eai Fila de Integração EAI

Produto Datasul EMS5:

Logical Name Sigla Descriçãoemsbas BAS Tabelas Básicasemsfin FIN Cadastros Financeirosemsuni UNI Tabelas Universaisemsedi EDI EDIemsnam NAM Localização EUAemsven VEN Vendormovfin FIN Movimentos Financeiroseai EAI Fila de Integração EAI

Data última atualização: 18/03/2010 Página: 5

Page 6: Unificação de Banco de Dados

Produto Datasul HCM:

Logical Name Sigla Descriçãodthrpmg PM Desenvolvimento Organizacionaldthrpyc PY Pagadoriadthrtma TM Controle Freqüênciadthrgst GT Gestão de Pessoal dthrcpj PJ Controle de Projetosmguni UN Universaleai EAI Fila de Integração EAI

Produto Gestão de Planos 1.00:

Logical Name Sigla DescriçãoSrcadger Cadastros GeraisSrmovben Movimentação de BeneficiáriosSrmovcon Movimentação de ContasSrmovfi1 Movimentação Financeira ISrmovfin Movimentação FinanceiraSrweb Cadastros/Movimentacão WEB

Serão apresentadas, através da figura a seguir, as estruturas de unificação possíveis para os produtos Datasul. Observe nesta figura quais são os bancos que podem ser unificados e quais aqueles que devem ser mantidos separados. Observe também, dentre os bancos que podem ser unificados, quais são os agrupamentos possíveis.

A seguir vemos algumas considerações sobre as estruturas apresentadas nesta figura: Mono-empresa: Esta estrutura é adequada às empresas que controlam somente uma empresa. Multi-empresa: Devido à característica do Datasul-EMS, somente os bancos administrativos contemplam

a estrutura de multi-empresa e a capacidade de se armazenar dados de várias empresas num mesmo banco. Desta forma, os clientes que desejam controlar várias empresas, devem utilizar a solução de banco multi-empresa, na qual os bancos multi-empresa são compartilhados para todas as empresas e os bancos mono-empresa são duplicados para cada empresa em específico. Assim, todas as empresas compartilharão os bancos multi-empresa e cada empresa possuirá seus bancos mono-empresa. A configuração de conexão aos bancos necessários é realizada nos arquivos de parâmetros de conexão. Nesta configuração, a quantidade de bancos irá depender da quantidade de empresas. Cada empresa terá um atalho de conexão diferente.

Bancos históricos: Esta estrutura de bancos permite que dados históricos sejam armazenados em bases separadas que podem ser acessadas a qualquer tempo. Periodicamente os dados de movimentos são transferidos dos bancos de movimentação diária para os bancos históricos, com isto, as bases de movimentos, que são constantemente acessadas nos processos diários, ficam mais “enxutas” e conseqüentemente a performance do sistema melhora significativamente. Estes bancos também podem ser utilizados em um ambiente multi-empresa, devendo ser respeitado, conforme a figura a seguir, quais bancos deverão ser replicados ou compartilhados. Para o EMS 5, apenas é possível utilizar bancos históricos a partir da release 5.06.

Multi-planta: O módulo multi-planta permite às empresas que possuem estabelecimentos separados geograficamente, uma administração corporativa sobre algumas áreas. É utilizada quando o cliente possui o módulo Multi-Planta, sendo utilizado para replicar os dados em vários sites independentes. Cada planta terá um atalho de conexão diferente.

Bancos específicos: podem ser criados alguns bancos para comportar tabelas específicas do cliente, bancos estes que não deverão ser unificados junto com as bases padrões do produto. Fica a cargo do cliente escolher a melhor forma de unificar as suas bases específicas, desde que estes bancos fiquem separados dos bancos padrões Datasul.

Data última atualização: 18/03/2010 Página: 6

Page 7: Unificação de Banco de Dados

ScreenOptimizer: conforme detalhado na figura a seguir, o banco mgsop pode ser unificado juntamente com os bancos de cadastros do produto, porém o banco mgsor não pode ser unificado, deverá ficar separado em uma base distinta.

Localização: bancos utilizados pelo produto por clientes fora do Brasil. EAI: este banco não pode ser unificado. Datasul Transportes (TMS): este produto possui três bancos: mgtrp, movtrp e comtrp (todos mono-

empresa), com sua estrutura de unificação descrita na figura a seguir (os três bancos podem ser unificados num só banco).

Banco MGAPS: disponível no EMS 2 a partir da release 2.06B. Banco MGADT: o banco mgadt é mono-empresa e não pode ser unificado, deverá ficar separado em uma

base distinta. Banco MGMP: este banco não pode ser unificado. Gestão de Planos 1.00: Os bancos desse produto são mono-empresa e podem ser unificados, conforme

mostra a figura a seguir. DBR: Os bancos desse produto são mono-empresa e podem ser unificados com os demais bancos mono-

empresa do EMS2. Frotas: Os bancos desse produto (mgfro e movfro) são multi-empresa e podem ser unificados com os

demais bancos multi-empresa do EMS2.

Considerações para o produto DATASUL-10 em diante:

Banco EMSDCA (Componentes Acessórios Datasul): Esse banco de dados é mono-empresa e pode ser unificado junto com os demais bancos de cadastros do produto EMS2.

Bancos EMSDEV, PAYROLL e FINANCE: São bancos de dados acessados via JDBC via porta SQL (inclusive podem estar outro SGBD). A recomendação é que não sejam unificados.

Bancos do TMS (mgtrp, movtrp e comtrp): A partir da versão DATASUL-11 esses bancos de dados podem ser unificados junto com os bancos do EMS2 (haviam tabelas com o mesmo nome que foram renomeadas).

Obs: Continua a restrição de não unificar os bancos do produto EMS2 junto com os bancos do EMS5 ou junto com os bancos do HCM, pois existem tabelas com a mesma nomenclatura.

Data última atualização: 18/03/2010 Página: 7

Page 8: Unificação de Banco de Dados

Página: 8

mgcex mgcld mgdis mgind mgmfg mgmntmgmrp mgscm mgfis mgaps mgdbr

mgadm mginvmguni mgvenmgrac mgtmpmgsop mgfro

mgCadMult mgCadEmpA

movdis movind movmfg movmnt wmovdis movfismovdbr

movadmmovracmovfro

mgMovMult mgMovEmpA

mgMov

BC

BC

hisdis hisvindhismfg hismnthisfis

mgHisEmpA

hisadmhisrac

mgHisMultB

C

mgHis

mgmp

mgMpA B C

mgMp

Neogrid

eai

eaiEmpAB

C

EAI

Estrutura mono-empresa

Bancos multi-empresa compartilhados na estrutura multi-empresa

Bancos mono-empresa replicados na estrutura multi-empresa

Nome Lógico no modelo unificado

Nome Lógico no modelo distribuído ALIAS

Específicos

mgCad

Neogrid Específicos

EMS5

emsbas emsfinemsuni emsediemsven emsnam

EMS5Cad

Movfin***

EMS5Mov

hisfin

EMS5His

dthrpmg dthrpycdthrtma dthrgstdthrcpj mguni

HCM

EMS5His

HCM

mgSor

mgsor

mgtrpmovtrpcomtrp

TrpEmpAB

C

TMS

mgadt

mgadtA B C

mgAdt

Localização

Localização

***No caso do banco de movimento do EMS5, enquanto só houver um banco, o Movfin – não é necessário executar a unificação sugerida neste diagrama

srcadger srmovbensrmovcon srmovfi1srmovfin srweb

GPS100

GPS100EmpAB

Page 9: Unificação de Banco de Dados

Deverá ser desenvolvido o programa que fará a criação dos ALIAS para as bases distribuídas, de acordo com o nome lógico utilizado na unificação, conforme a estrutura escolhida na figura anterior. A seguir veremos o exemplo da criação de alias para o banco mgadm que pode ser unificado de duas formas diferentes, conforme a estrutura definida na figura anterior:

Para a estrutura mono-empresa:CREATE ALIAS mgadm FOR DATABASE mgcad.

Para a estrutura multi-empresa:CREATE ALIAS mgadm FOR DATABASE mgcadmult.

Para aquelas bases que deverão ser replicadas em uma estrutura multi-empresa, deverá ser criado um alias para cada empresa, conforme o exemplo a seguir, descrito para o banco mgdis:

Para a estrutura mono-empresa:CREATE ALIAS mgdis FOR DATABASE mgcad.

Para a estrutura multi-empresa, cada empresa terá seu arquivo alias:Para a empresa A:CREATE ALIAS mgdis FOR DATABASE mgcadempA.

Para a empresa B:CREATE ALIAS mgdis FOR DATABASE mgcadempB.

Para cada nome lógico no modelo distribuído (todos os bancos separados) deverá ser criado um alias apontando para o nome lógico no modelo unificado. Após a criação dos alias, o programa deverá chamar o menu do produto, conforme vemos no exemplo a seguir, criado para uma estrutura mono-empresa do produto EMS 2:

/* Bancos de cadastro */CREATE ALIAS mgadm FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mguni FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgrac FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mginv FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgven FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgtmp FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgcex FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgdis FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgmfg FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgmrp FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgscm FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgaps FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgcld FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgind FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgmnt FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgfis FOR DATABASE mgcad NO-ERROR./* Bancos de movimento */CREATE ALIAS movadm FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movrac FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movdis FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movmfg FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movind FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movmnt FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movfis FOR DATABASE mgmov NO-ERROR.CREATE ALIAS wmovdis FOR DATABASE mgmov NO-ERROR.

/* Executa o menu do sistema */RUN men/men902za.p.

QUIT.

Observe que o programa de menu pode variar de acordo com o produto. Portanto, deverá ser executado o programa configurado no parâmetro –p do atalho do modelo distribuído.

Data última atualização: 18/03/2010 Página: 9

Page 10: Unificação de Banco de Dados

Unificação de Banco de Dados

Após criar este programa que fará a criação dos alias e chamará o menu, o atalho do produto deverá ser alterado para chamar, através do parâmetro –p, o programa criador dos alias ao invés do menu diretamente. Também deverá ser alterado o arquivo .pf para conexão dos bancos unificados. A seguir vemos o exemplo de um arquivo de conexão para uma estrutura mono-empresa do EMS 2:

-db ems2cad –ld mgcad –S xxxxxx –H xxxxxx –N tcp-db ems2mov –ld mgmov –S xxxxxx –H xxxxxx –N tcp-db ems2neo –ld neogrid –S xxxxxx –H xxxxxx –N tcp-db ems2eai –ld eai -S xxxxxx –H xxxxxx –N tcp

Caso existam mais bancos que se deseja conectar, basta acrescentá-los no arquivo .pf. Caso estes bancos adicionais sejam unificados, deverão ser adicionados os comandos CREATE ALIAS respectivos no programa de criação de alias.

Dúvidas adicionais ou necessidades de acompanhamento podem ser endereçadas pelo canal de consultoria telefônica, em Tecnologia, Suporte Banco de Dados. O telefone de acesso é o (47) 2101 7444 ou o (11) 2101 1102.

5 Procedimentos de Conversão para Unificação

5.1 Escolher Estrutura Possível

Tendo em vista os inúmeros modelos de arquitetura já explicados (multi-planta, bancos históricos, etc), deve-se inicialmente escolher o modelo adequado. Para o EMS5 e HR, o único modelo disponível é o convencional e, por isto, exemplificaremos usando este modelo para o EMS2 também. Caso ocorram maiores dúvidas, contate consultoria pelo telefone: (47) 2101 744.

5.2 Requisitos

Para proceder com a conversão, faz-se necessário a observação de alguns detalhes:

5.2.1 Fazer um backup de bancos, programas, scripts, etc.5.2.2 O espaço livre em disco deverá ser igual ao tamanho dos bancos.5.2.4 Licença Query Results para procedimentos de dump/load. (observar complexidade dos

procedimentos para esta licença).5.2.4 Tempo de execução.

5.3 Pré Requisitos de conhecimento

Dada a complexidade deste procedimento de unificação, faz-se necessário que o profissional que irá executá-lo tenha os seguintes conhecimentos/certificações:

5.3.1 Conhecer arquitetura do produto Datasul (produto, bancos, diretórios de programas, scripts, arquivos de parâmetros, etc.).

5.3.2 Seja um Progress Database Administrator (DBA), tendo no mínimo 2 anos de experiência na função, ou ter certificado de Progress PDA.

5.3.3 Caso não seja possível contar com um profissional com este perfil em seu quadro funcional, busque apoio junto à sua unidade de distribuição ou contrate a Consultoria da Datasul Tecnologia pelos telefones 0XX 47 2101-7400 ou 0XX 47 2101-7444, opção Tecnologia, ou ainda, pelo email [email protected].

5.4 Exportar Definições e Dados na Estrutura Atual

Este processo deverá ser executado seguindo os seguintes passos:

5.4.1 Observar a opção de rcode compatível quando for executar o dump das definições. Abaixo, segue a tela onde deverá estar marcada a opção:

INCLUDE POSITION for .r COMPATIBILITY

Data última atualização: 18/03/2010 Página: 10

Page 11: Unificação de Banco de Dados

Unificação de Banco de Dados

5.4.2 Exportar definições de cada banco.5.4.3 Exportar dados de cada banco.5.4.4 Exportar valores das seqüências de cada banco.

5.5 Importar Definições e Dados na nova Estrutura

Este processo deverá ser executado seguindo os passos descritos abaixo:

5.5.1 Criar bancos vazios com nome físico de acordo com a estrutura escolhida.5.5.2 Importar todas as definições de dados.5.5.3 Importar todos os dados.5.5.4 Importar todos os valores de seqüência5.5.5 Comparar os registros antes e depois da conversão.

Obs.: Nos itens 5.3.1, 5.3.2 e 5.3.3, deve-se sempre respeitar o banco correto da estrutura escolhida.

5.6 Alterar .pf, scripts e alias.p conforme a estrutura escolhida.

Os passos descritos a seguir deverão ser executados corretamente afim de obter o resultado esperado com o procedimento de unificação de banco de dados.

5.6.1 Disponibilizar o alias.p.5.6.2 Alterar scripts de manutenção de bancos (carga, derrubada, backup, restore).5.6.3 Alterar .pf de conexão client/server, RPW, Webspeed e APP Server para conectar somente os novos

bancos.5.6.4 Alterar o parâmetro –p de client/server.5.6.5 Desenvolver um aliasweb.p para webspeed e alterar o parâmetro –p para este novo programa de

serviço Web. O programa aliasweb.p tem o conteúdo muito parecido com o alias.p para ambiente client/server porem

após os alias deve chamar o programa controlador de agentes. Segue um exemplo:

/* Início do programa aliasweb.p */CREATE ALIAS mgadm FOR DATABASE mg NO-ERROR.CREATE ALIAS mgcld FOR DATABASE mg NO-ERROR.CREATE ALIAS mgdis FOR DATABASE mg NO-ERROR.CREATE ALIAS mgind FOR DATABASE mg NO-ERROR.CREATE ALIAS mginv FOR DATABASE mg NO-ERROR.CREATE ALIAS mgmnt FOR DATABASE mg NO-ERROR.CREATE ALIAS mgmfg FOR DATABASE mg NO-ERROR.CREATE ALIAS mguni FOR DATABASE mg NO-ERROR.CREATE ALIAS mgscm FOR DATABASE mg NO-ERROR.CREATE ALIAS mgcex FOR DATABASE mg NO-ERROR.CREATE ALIAS mgtmp FOR DATABASE mg NO-ERROR.CREATE ALIAS mgmrp FOR DATABASE mg NO-ERROR.CREATE ALIAS mgmp FOR DATABASE mg NO-ERROR.CREATE ALIAS mgven FOR DATABASE mg NO-ERROR.CREATE ALIAS wmovdis FOR DATABASE mg NO-ERROR.CREATE ALIAS mgrac FOR DATABASE mg NO-ERROR.

Data última atualização: 18/03/2010 Página: 11

Esta é a opção que deverá estar marcadadurante a execução do dump das definições.

Page 12: Unificação de Banco de Dados

Unificação de Banco de Dados

CREATE ALIAS movadm FOR DATABASE mg NO-ERROR.CREATE ALIAS movdis FOR DATABASE mg NO-ERROR.CREATE ALIAS movind FOR DATABASE mg NO-ERROR.CREATE ALIAS movmnt FOR DATABASE mg NO-ERROR.CREATE ALIAS movmfg FOR DATABASE mg NO-ERROR.CREATE ALIAS movrac FOR DATABASE mg NO-ERROR./* Deve chamar o programa que controla os agentes web (web/objects/web-disp.p) */RUN web/objects/web-disp.p./* Fim do programa */

OBSERVAÇÃO: Deve-se atentar para o fato de que o exemplo acima contempla uma estrutura Mono-Empresa. Antes de proceder com a criação do programa alias.p deve-se observar qual a estrutura de bancos que a empresa possui.

Após a criação do programa você deve alterar a propriedade do serviço WEBSpeed através da ferramenta Progress Explorer Tool, para executar o programa aliasweb.p. Segue um exemplo da tela de alteração do serviço:

Note que “-p web\objects\web-disp.p” foi substituído por “-p web\objects\aliasweb.p”.

5.6.6 Para APP Server, o programa aliasapp.p somente deve criar os alias, não necessitando de executar nenhum programa. Exemplo:

/* Início do programa aliasapp.p */DEFINE INPUT PARAMETER data-valor AS CHARACTER NO-UNDO. CREATE ALIAS mgadm   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mguni   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgrac   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mginv   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgven   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgtmp   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgcex   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgdis   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgmfg   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgmrp   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgscm   FOR DATABASE mgcad NO-ERROR.

Data última atualização: 18/03/2010 Página: 12

Page 13: Unificação de Banco de Dados

Unificação de Banco de Dados

CREATE ALIAS mgaps   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgcld   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgind   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgmnt   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS mgfis   FOR DATABASE mgcad NO-ERROR.CREATE ALIAS movadm  FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movrac  FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movdis  FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movmfg  FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movind  FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movmnt  FOR DATABASE mgmov NO-ERROR.CREATE ALIAS movfis  FOR DATABASE mgmov NO-ERROR.CREATE ALIAS wmovdis FOR DATABASE mgmov NO-ERROR./* Fim do programa aliasapp.p */

OBSERVAÇÃO: Deve-se atentar para o fato de que o exemplo acima contempla uma estrutura Mono-Empresa. Antes de proceder com a criação do programa aliasapp.p deve-se observar qual a estrutura de bancos que a empresa possui.

Para configurar o serviço AppServer para executar este programa sempre que houver uma chamada a um programa remoto, informe o nome do programa aliasapp.p no campo “Inicialização” (Startup).

Criar o arquivo aliasapp.p da seguinte forma:

define input parameter data-valor as char no-undo.

create alias mgadm for database ems2cad no-error.create alias .....

Data última atualização: 18/03/2010 Página: 13

Page 14: Unificação de Banco de Dados

Unificação de Banco de Dados

5.6.7 Verificar procedimentos descritos no item 3.3 – Impactos RPW. Deve-se somente tomar o cuidado de incluir os CREATE ALIAS antes de executar o RUN nos programas.

Obs.: o programa btb908zh é para plataforma Windows e o btb908zg para plataforma Unix.

5.6.8 Rever cadastro de bancos na integração EMS5xEMS2.

Data última atualização: 18/03/2010 Página: 14

Neste ponto deverão ser criados os Create Alias necessários.

Page 15: Unificação de Banco de Dados

Unificação de Banco de Dados

5.6.9 Rever cadastro de bancos históricos.

5.6.10 Rever cadastro de bancos multi-planta.5.6.11 Por exemplo, caso você possua o aplicativo DataViewer instalado e configurado, também deverá

criar um programa de alias e substituir o parâmetro “–p grp/gr0101.w” para “-p aliasdtv.p” na propriedade do atalho. O programa aliasdtv.p seria:

Data última atualização: 18/03/2010 Página: 15

Informar neste campo todos os ALIAS que deverão ser criados com a conexão do EMS 5.0x

Selecionar esta opção se o cliente possuir bancos unificados

Informar neste campo todos os ALIAS que deverão ser criados.

Selecionar esta opção se o cliente possuir bancos

Page 16: Unificação de Banco de Dados

Unificação de Banco de Dados

/* Início do programa aliasdtv.p */CREATE ALIAS mgadm FOR DATABASE mg NO-ERROR.CREATE ALIAS mgcld FOR DATABASE mg NO-ERROR.CREATE ALIAS mgdis FOR DATABASE mg NO-ERROR.CREATE ALIAS mgind FOR DATABASE mg NO-ERROR.CREATE ALIAS mginv FOR DATABASE mg NO-ERROR.CREATE ALIAS mgmnt FOR DATABASE mg NO-ERROR.CREATE ALIAS mgmfg FOR DATABASE mg NO-ERROR.CREATE ALIAS mguni FOR DATABASE mg NO-ERROR.CREATE ALIAS mgscm FOR DATABASE mg NO-ERROR.CREATE ALIAS mgcex FOR DATABASE mg NO-ERROR.CREATE ALIAS mgtmp FOR DATABASE mg NO-ERROR.CREATE ALIAS mgmrp FOR DATABASE mg NO-ERROR.CREATE ALIAS mgmp FOR DATABASE mg NO-ERROR.CREATE ALIAS mgven FOR DATABASE mg NO-ERROR.CREATE ALIAS wmovdis FOR DATABASE mg NO-ERROR.CREATE ALIAS mgrac FOR DATABASE mg NO-ERROR.

CREATE ALIAS movadm FOR DATABASE mg NO-ERROR.CREATE ALIAS movdis FOR DATABASE mg NO-ERROR.CREATE ALIAS movind FOR DATABASE mg NO-ERROR.CREATE ALIAS movmnt FOR DATABASE mg NO-ERROR.CREATE ALIAS movmfg FOR DATABASE mg NO-ERROR.CREATE ALIAS movrac FOR DATABASE mg NO-ERROR./* Fim do programa */

Run grp/gr0101.w.Quit.

OBSERVAÇÃO: Deve-se atentar para o fato de que o exemplo acima contempla uma estrutura Mono-Empresa. Antes de proceder com a criação do programa alias.p deve-se observar qual a estrutura de bancos que a empresa possui.

Obs.: A conversão para bancos unificados não faz parte do produto padrão Datasul, em função da quantidade de configurações possíveis para unificação dos bancos de dados de clientes. A unificação dos bancos será um Serviço prestado ao cliente que decidir pela Unificação. Pelas mesmas razões não serão disponibilizados pela Datasul as definições (.df) pré-configuradas dos bancos unificados. Esta etapa deverá ser realizada nas instalações do Cliente.

Dúvidas adicionais ou necessidades de acompanhamento podem ser endereçadas pelo canal de consultoria telefônica, em Tecnologia, Suporte Banco de Dados. O telefone de acesso é o (47) 2101 7444 ou o (11) 2101 1102.

Data última atualização: 18/03/2010 Página: 16

Page 17: Unificação de Banco de Dados

Unificação de Banco de Dados

6. Procedimento de Retorno para Bancos Individuais

Na hipótese do cliente ter feito a unificação dos bancos e, por um motivo qualquer, ele queira voltar para a situação anterior com os bancos individualmente separados (Produto Padrão), deverão ser executados os seguintes procedimentos:

6.1 Solicitar à Datasul mídia da release atual. Nesta mídia estarão as definições das estruturas abertas.

6.2 Fazer um backup de bancos, programas, scripts, etc. (ver 5.2 Requisitos)

6.3 Baixar os bancos vazios.

6.4 Exportar todos os dados (.d) na estrutura de bancos unificados.

6.5 Importar os dados (.d) em cada um dos bancos individuais (em cada banco de dados serão carregadas as tabelas do respectivo banco).

6.6 Exportar os valores (.d) de todas as Seqüências do banco unificado

6.7 Importar os valores (.d) de todas as Seqüências vindas do banco unificado para dentro de cada banco individual (repetir o processo para cada banco). As Seqüências que o banco individual não reconhecer deverão ser descartadas (Aparecerá uma mensagem de erro, mas o processo pode continuar normalmente).

6.8 Comparar o número de registros existentes em cada tabela antes e após a conversão. A conversão somente será bem sucedida se não houver nenhuma diferença de registros para nenhuma das tabelas.

Dúvidas adicionais ou necessidades de acompanhamento podem ser endereçadas pelo canal de consultoria telefônica, em Tecnologia, Suporte Banco de Dados. O telefone de acesso é o (47) 2101 7444 ou o (11) 2101 1102.

Data última atualização: 18/03/2010 Página: 17