Вы находитесь на странице: 1из 17

Conversão da Base Cobol para Firebird

Prezado Colaborador:

Esta carta é específica ao público interno da Spress. Ela foi confeccionada para apoiá-lo durante
todo o processo de conversão. Nela você encontrará os procedimentos para converter a Base
Dealer Cobol para Banco de Dados Firebird.

Atenção: Este processo deve ser executado em modo mono-usuário utilizando o login ROOT e
após efetuar cópia completa da Base de Dados do Dealer System.

A leitura prévia desse Guia é indispensável.

Página 1 de 17
Conversão da Base Cobol para Firebird

SUMÁRIO

PRE-REQUISITOS PARA CONVERSÃO DA BASE DEALER COBOL PARA BANCO DE DADOS FIREBIRD......................3
PROCEDIMENTOS PARA CONVERSÃO DA BASE DEALER COBOL PARA BANCO DE DADOS FIREBIRD......................4
PROCEDIMENTOS PARA INSTALAÇÃO E CONFIGURAÇÃO DO DRIVER ODBC........................................................4
INSTALAÇÃO E CONFIGURAÇÃO DO FIREBIRD.................................................................................................... 6
PÓS-INSTALAÇÃO............................................................................................................................................ 7
PÓS-CONVERSÃO.......................................................................................................................................... 11
ESPECIFICAÇÕES TÉCNICAS.......................................................................................................................... 12
VANTAGENS DA UTILIZAÇÃO DO BANCO DE DADOS......................................................................................... 13
0Integridade................................................................................................................................ 13

Página 2 de 17
Conversão da Base Cobol para Firebird

Pre-requisitos para Conversão da Base Dealer Cobol para Banco de Dados Firebird

Para efetuar a conversão para banco de dados será necessário verificar as configurações do servidor
conforme descrito abaixo:

Ø Processador;
Ø Versão do Linux (utilizar as versões homologadas pela Spress)
Ø HD (tamanho e velocidade);
Ø Versão do Linux (utilizar apenas as versões homologadas para o Dealer System)
Ø Velocidade de link (no caso de filial);
Ø Número de usuários que acessam o Dealer simultaneamente;
Ø Tamanho da base Dealer (objetos e arquivos);
Ø Espaço livre;
Ø Memória:

A avaliação de consumo de memória deverá ser por aplicação utilizada por usuário, simultaneamente
(executáveis são diferentes e são considerados acessos/processos diferentes de usuários. Por
exemplo, se um usuário abrir o Oficina e o CRM Módulo II simultaneamente, a alocação será
dobrada);

Ø O consumo que deve ser considerado por aplicação, em Firebird = 15Mb

Ø Esta avaliação deverá ser considerada de forma diferenciada para Oracle = 6Mb, já que a
memória consumida para o BD é parametrizada no administrador do banco (servidor).

Formula para avaliação:

Multiplicar o número de usuário contratados por 2 (considerando uma média de aplicações a serem
utilizadas por cada um) e, ainda, pela média de memória consumida (15Mb para Firebird).

Por exemplo:

Para um cliente que possui 100 usuários a formula será 100 * 2 * 15.
O resultado será equivalente a memória exigida.

É importante lembrar que o consumo de 15 Mb é por aplicação e não por usuário, ou seja, se um
usuário em determinada estação ficar com 3 aplicações abertas, o consumo será de 45 Mb e não 15
Mb.

Obs: Nos tópicos referentes a “Processador e HD”, será necessário levar em conta a situação
atual do cliente, pois estas configurações tem impacto na base Cobol também.

Página 3 de 17
Conversão da Base Cobol para Firebird

Procedimentos para Conversão da Base Dealer Cobol para Banco de Dados Firebird

Importante: Os procedimentos descritos a seguir deverão, obrigatoriamente, serem executados na ordem


apresentada.

Ø Recepcionar na área de arquivos do Spress Line, o pacote do Banco de Dados Firebird e baixar no
diretório de trabalho temporário do linux;

Procedimentos para Instalação e Configuração do driver ODBC

Ø Retirar o appserver do ar:

Comando:

fuser -k-n tcp <porta>

Ex: fuser -k -n tcp 8000

Ø Descompactar o arquivo odbc.zip.

Comando:

unzip odbc.zip

Ø Verificar a existência do pacote unixODBC

Comando:

rpm –qa | grep unixODBC

Caso o mesmo não esteja instalado, instale o pacote unixODBC compatível com a distribuição do Linux.

Atenção: Localize o pacote nos Cds de instalação do Linux, caso não exista, você poderá
localiza-lo na internet. “www.google.com.br/linux” ou “rpmfind.net”

Ø Após a instalação você deverá caminhar para o diretório /etc identificar e anotar o nome do arquivo
“*release” da sua distribuição Linux.

Comando:

ls –la *release

Ø Retornar ao diretório temporário / ODBC e editar o arquivo “install.sh”

Ø Localizar a ocorrência ‘ls /etc/*release’ e modifique para ‘ls/etc/nome da distribuição*release’.

Página 4 de 17
Conversão da Base Cobol para Firebird

Ex:
Distribuição Hadhat
‘ls /etc/hadhat*release’
Executar a instalação do driver ODBC.

Comando:

./install.sh

Ø Após a instalação do driver ODBC, localize o arquivo “odbc.ini”:

Comando:

find / -name odbc.ini -print

Ø Após localizar o arquivo, altere as variáveis descritas a seguir:

Atenção: Por medida de segurança, o arquivo “dealer.fdb” passará para o diretório “../sglb”

[ODBC Data Sources]


dealer = dealer

[dealer]
Description = Firebird/InterBase(r) driver
Driver = ibphoenix
Dbname = /wch1/dealer/sglb/dealer.fdb
Client =
User = SYSDBA
Password = masterkey
Role =
CharacterSet = NONE
ReadOnly = No
NoWait = 1
Dialect = 3
QuotedIdentifier = Yes
SensitiveIdentifier = No
AutoQuotedIdentifier = No

Nota: Pode ocorrer do arquivo ODBC.ini ser criado vazio, se isso acontecer digite as informações conforme
o exemplo citado acima.

Ø Localizar e anotar o caminho absoluto das bibliotecas “libOdbcJdbc*.so”:

Comando:

find / -name libOdbcJdbc*.so –print

Ø No mesmo diretório editar o arquivo “odbcinst.ini” alterar o driver “Firebird” para “ibphoenix” e o
caminho absoluto das bibliotecas “libOdbcJdbc*.so”, no mesmo diretório.

Página 5 de 17
Conversão da Base Cobol para Firebird

Atenção: Caso o cliente possua algum aplicativo que utilize o driver “Firebird”, você deverá duplicar todas as
linhas e fazer a alteração em uma delas. Desta forma o cliente poderá continuar usando os dois driver.

Ex:

[Firebird]
Description = Firebird/InterBase(r) driver
Driver = /usr/lib/unixODBC/libOdbcJdbc.so
Setup = /usr/lib/unixODBC/libOdbcJdbcS.so
FileUsage = 1
DontDLClose = 1

[ibphoenix]
Description = Firebird/InterBase(r) driver
Driver = /usr/lib/unixODBC/libOdbcJdbc.so
Setup = /usr/lib/unixODBC/libOdbcJdbcS.so
FileUsage = 1
DontDLClose = 1

Ø Retornar ao diretório temporário.


- Sub-diretório ../Banco

Instalação e Configuração do Firebird

Ø Verificar se existe alguma versão do Firebird instalada no servidor:

Comando:

rpm -qa | grep -i FirebirdCS

Atenção: A versão utilizada pela Spress é FirebirdCS-1.5.2.4731-0”, caso a versão encontrada não seja
idêntica a ela desinstale a mesma.

Comando:

rpm –e FirebirdCS -X.X.X.XXXX-X

Ø Executar a instalação da nova versão:

Comando:

rpm -ivh FirebirdCS -1.5.2.4731-0.i686.rpm

Pós-Instalação

Página 6 de 17
Conversão da Base Cobol para Firebird

Ø Caminhar para o diretório /opt/firebird, localizar o arquivo “firebird.conf”, editá-lo e alterar o


valor da variável “LockSemCount” para “4096”.
Obs: Caso a linha com a variável esteja comentada (#), devera retirar o comentário.

Ø Executar o comando no mesmo diretório:

Comando:

cat SYSDBA.password

Ø Localizar e anotar o valor da variável ISC_PASSWD.

Ø Executar :

Comando:

/opt/firebird/bin/changeDBAPasswd.sh

Ø Informar o valor da variável ISC_PASSWD anotado no passo anterior e teclar <enter>.

Ø Informar na nova senha “masterkey” (sem aspas).

Ø Executar :

Comando:

chmod 777 –R /opt/firebird

Ø Caminhar para o diretório /opt/firebird/bin e executar:

Comando:

chown root fb_lock_mgr


chmod u+s fb_lock_mgr

Ø Caminhar para o diretório /etc/rc.d e editar o arquivo rc.local incluindo nas ultimas linhas as
seguintes ocorrências:

echo “4096 524288 32 128” > /proc/sys/kernel/sem


cd /wch1/spress/sglb (Alterar conforme caminho do dealer)
./trava.sh &

Obs: O arquivo rc.local é um arquivo inicial do sistema operacional. Se caso estas


ocorrências forem incluídas e ao executar o reboot o sistema não assumi-las, você
deverá incluí-las em outro arquivo que tenha a mesma função. Ex: boot.local

Editar o arquovo “trava.sh” e alterar o nome do banco conforme definido pelo cliente na
conversão.

Página 7 de 17
Conversão da Base Cobol para Firebird

Atenção: Antes de executar a conversão, execute como usuário “root” o comando:


echo “4096 524288 32 128” > /proc/sys/kernel/sem

Ø Retornar ao diretório temporário /objetos

Ø Copiar os programas e arquivos conforme descrito a seguir:

objsglb para ../objsglb


sglb para ../sglb
usr para ../usr/bin

Atenção: Será necessário conferir as variáveis referentes aos diretórios do cobol e unixODBC
setadas no arquivo “setacob”. Caso os caminhos estejam diferentes, você devera altera-los.

Ø Caminhar para o diretório ../sglb e criar o banco de dados:

Comando:

/opt/firebird/bin/isql -user sysdb3318167a -passwd masterkey

SQL> CREATE DATABASE 'dealer.fdb';


SQL> commit;
SQL> quit;

Ø Liberar as permissões do banco de dados:

Comando:

chmod 777 dealer.fdb

Ø Incluir a tabela “trava” no banco:

Comando:

/opt/firebird/bin/isql -user sysdba -password masterkey dealer.fdb -i trava.sql

Ø Criar o sub-diretório ../objsglb/lck:

Comando:

mkdir lck
chmod 777 lck

Ø Criar o sub-diretório ../slog no mesmo nível dos demais diretórios do Dealer.

Ex: ../wch1/dealer/sglb
../wch1/dealer/slog

Página 8 de 17
Conversão da Base Cobol para Firebird

Comando:

mkdir slog
chmod 777 slog

Ø Definir as variáveis:

Comando:

. setacob (Lê-se ponto espaço)


export ODBCFH_DSN=dealer (conforme definido no arquivo odbc.ini)

Ø Executar a conversão:

Comando:

./odbcfh dbload.int 2> dbload.err | tee dbload.out

Ø Efetuar as alterações nas chamadas do sistema, conforme exemplo a seguir:

Atenção: Por medida de segurança, o arquivo de log do banco passará ser criado no diretório
../slog.

../objsglb/dealer

stty intr ^Q (inibe CTRL+C)


. setacob (Lê-se ponto espaço)
export TERM=dealer
export ODBCFH_DSN=dealer
export ODBCFH_LOG=/wch1/dealer/slog/dealer (onde dealer = nome do arq. de log)
./odbcfh psglbm01.int 2>/dev/null

../objsglb/dealerd (Chamada utilizada para DBUG)

. setacob (Lê-se ponto espaço)


export TERM=dealer
export ODBCFH_DBG=3
export ODBCFH_DSN=dealer
export ODBCFH_LOG=/wch1/dealer/slog/dealer (onde dealer = nome do arq. de log)
./odbcfh psglbm01.int 2>log

../objsglb/spress (Para carga via prompt no servidor)

stty intr ^Q (inibe CTRL+C)


. setacob (Lê-se ponto espaço)
export TERM=linux

Página 9 de 17
Conversão da Base Cobol para Firebird

export ODBCFH_DSN=dealer
export ODBCFH_LOG=/wch1/dealer/slog/dealer (onde dealer = nome do arq. de log)
./odbcfh psglbm01.int 2>/dev/null

../objsglb/dealerdsk

stty intr ^Q (inibe CTRL+C)


. setacob (Lê-se ponto espaço)
cd /wch1/dealer/objsglb
usr=`echo $1|awk '{printf("%05d",$1)}'`
emp=`echo $2|awk '{printf("%2s",$1)}'`
sis=`echo $3|awk '{printf("%03d",$1)}'`
export TERM=dealer
export ODBCFH_DSN=dealer
export ODBCFH_LOG=/wch1/dealer/slog/dealer (onde dealer = nome do arq. de log)
./odbcfh psglbocm.int $usr $emp $sis 2>/dev/null

../objapps/runcob

. setacob (Lê-se ponto espaço)


export ODBCFH_DSN=dealer
export ODBCFH_LOG=/wch1/dealer/slog/dealer (onde dealer = nome do arq. de log)
export TERM=dealer
../objsglb/odbcfh $1.int

../objsgre/wsgres00

. setacob (Lê-se ponto espaço)


export ODBCFH_DSN=dealer
export ODBCFH_LOG=/wch1/dealer/slog/dealer (onde dealer = nome do arq. de log)
export TERM=dealer
./gerador.odbcfh

Atenção: Na conversão, todas as tabelas são compactadas com a extensão “gz”. As mesmas deverão ser
deletadas após a efetivação.

Ø Se nos sistemas contratados constar o sistema laser station ou laser design, as tabelas “sisiscli” e
“sisiscli.idx” (que estarão obrigatoriamente fora do banco de dados), deverão ser descompactadas,
para isso é necessário caminhar para o diretório ../scpd e utilizar:

Comando:

gunzip sisiscli*

Pós-Conversão

Após a conversão da Base Cobol para Firebird, deverá acessar o sistema 001 – CPD do Dealer System,
selecionar a opção “Base Operacional”, “Parâmetros do CPD”, e alterar o parâmetro Banco de Dados para
“1 – ODBC”.

Página 10 de 17
Conversão da Base Cobol para Firebird

Todas as tabelas do Dealer System serão incluídas no Banco de Dados e compactadas com gzip, exceto as
tabelas relacionadas no tópico Especificações do Dicionário de Dados:

Nesta fase do projeto, ainda existe necessidade da instalação do Cobol (padrão Linux) pois os objetos são
interpretados pela runtime e não são executáveis. A Spress adotou o Banco de Dados Firebird e Oracle
utilizando a camada de acesso a dados Unix ODBC – Open Data Base Connectivity através de uma
modificação na runtime do Cobol. Esta modificação evita problema de distribuição.

Atenção: Você deverá remover todas as tabelas compactadas (.gz) após a conversão. Certifique-se que o
processo foi executado com sucesso.

Página 11 de 17
Conversão da Base Cobol para Firebird

Especificações Técnicas

Arquivo .dic

Arquivo de texto contendo o dicionário do Dealer System gerado pelo PGM utilizado para carregar / atualizar
tabelas do Dealer System no BD.

Relação das tabelas que estão fora do banco:

· arquivos temporários;
· arquivos do dicionário do Dealer System (*)
· arquivos com o nome montado (**)
· arquivos não suportados pelo Banco de Dados (***)

* s????000, s????006, s????007, s????008


glfkobri, glvlrval, grrelaci, gratrcha
grtabela, gratribu, grconstr, grcolcon

** colancam, codetlan, colihila, cosalcon, cosalmo

*** bplancon (chave muito grande)

Dicionário de Banco de Dados:

Gerados / atualizados pelo “dbload”.

Existem dois dicionários, um com layout atual ( table, columns, keys) e o outro com o layout da versão
( tablesv, columnsv, keyv);

Na criação de uma nova tabela (open output, copy_file), essa é criada com base no dicionário da
versão e o dicionário é atualizado.

Criação do Banco de Dados:

ISAM / MF4
|
v
PGM -> .dic -> dbload -c ---> dicionário versão
|
--> dicionário atual
|
--> tabela Banco de Dados

Atualização do Banco de Dados (patch)

PGM --> .dic --> dbload -v --> dicionário versão

Página 12 de 17
Conversão da Base Cobol para Firebird

Vantagens da Utilização do Banco de Dados

Ø Acessibilidade

É permitido o acesso aos dados utilizando qualquer ferramenta de uso próprio.

Ex: IBExpert

Ø Segurança

O banco cria arquivos diários de log que permitem a recuperação dos dados a qualquer momento.

Integridade

Integridade referencial:

Ex: Existem dados do item na NF e não existem dados da capa.

Ø Valores Válidos

Ex: Sexo M / F.

Página 13 de 17
Conversão da Base Cobol para Firebird

Rotina de backup FIMDIA

Finalidade.

O arquivo “fimdia.sh” é utilizado para executar a rotina de backup fisíco do banco de dados e do
arquivo de log criado diariamente.

Além disso é efetuada uma verificação da integridade do banco através da rotina de backup e
restore do próprio Firebird. Esta verificação manterá o banco enxuto.

Forma de execução:

# fimdia.sh <números_de_horas>

Ex:

# fimdia.sh 3

Neste exemplo o backup será inicializado três horas após a execução do “fimdia.sh”

Vale lembrar que será necessário adaptar esta rotina para realidade do cliente, alterando os
caminhos e comandos para matar as conexões com o banco, definindo a rotina de cópia
para fita e ativando ou não o “reboot” do servidor.

O fimdia.sh é responsável também pela ativação do trava. Será necessário incluir os


comandos para matar este processo e ativa-lo caso o servidor não seja inicializado pelo
reboot.

Página 14 de 17
Conversão da Base Cobol para Firebird

Utilitários TFB e GST

Finalidade do TFB:

O arquivo “TFB” é utilizado para medir e apresentar as seguintes informações:

· Total de conexões TRAVA


· Total de conexões ODBC
· Total de conexões TCP IP
· Total de processos ODBCFH
· Total de memória em uso ODBCFH
· Média de memória do ODBCFH
· Total de processos gerador
· Total memória em uso gerador
· Média memória por gerador
· Total de processos appserver
· Total memória em uso appserver
· Média memória por appserver
· Total de processos no servidor
· Total memória em uso servidor

Estes dados são fundamentais na identificação de problemas de performance no servidor. Este


arquivo fica posicionado no diretório ../usr/bin bastando digitar tfb no pronpt.

Forma de execução:

# tfb

Vale lembrar que será necessário fazer alteração no arquivo caso o cliente utilize um porta
diferente da “8000”.

Alterar a quinta linha do arquivo:

Ex: echo "Total de conexoes TCP_IP = `netstat -an | grep 8000 | wc -l`"

echo "Total de conexoes TCP_IP = `netstat -an | grep 8001 | wc -l`"

(neste exemplo a porta utilizada é 8001)

Página 15 de 17
Conversão da Base Cobol para Firebird

Utilitários TFB e GST

Finalidade do GST:

O arquivo “GST” é utilizado para mostrar o resultado do comando:

/opt/firebird/bin/gstat -h

Este comando apresenta o estado atual do número de transações que estão sendo gerada pelo
banco.

Ele auxilia na avaliação de performance do servidor, pois se por algum motivo o banco executar o
“SWEEP” o número referentes as transações mais antigas e próximas transações serão alterados.

Database header page information:
        Flags                   0
        Checksum                12345
        Generation              1632879
        Page size               4096
        ODS version             10.1
        Oldest transaction      7264
        Oldest active           1632872
        Oldest snapshot         1632872
        Next transaction        1632873
        Bumped transaction      1
        Sequence number         0
        Next attachment ID      0
        Implementation ID       19
        Shadow count            0
        Page buffers            0
        Next header page        0
        Database dialect        3
        Creation date           Dec 20, 2006 4:10:13
        Attributes

    Variable header data:
        Sweep interval:         0
        *END*

SWEEP – O Firebird tem por padrão a função de automaticamente limpar as antigas versões dos
registros quando estas se tornam muito numerosas. O problema deste método é que se um processo
cliente que for sem sorte suficiente para iniciar uma transação que coincida com o início da limpeza
automática, vai ter que esperar o trabalho de limpeza. O processo cliente atrasa enquanto o processo
de limpeza é feito.

Página 16 de 17
Conversão da Base Cobol para Firebird

Vale lembrar que será necessário fazer alteração no arquivo informando o caminho
absoluto do diretório “sglb” mais o nome do banco. (ex:../sglb/dealer.fdb)

Página 17 de 17