• Nenhum resultado encontrado

ANEXO TÉCNICO PROCEDIMENTOS PARA EXECUÇÃO DE SCRIPTS EM BANCO DE DADOS DO GEMCO ANYWHERE

N/A
N/A
Protected

Academic year: 2021

Share "ANEXO TÉCNICO PROCEDIMENTOS PARA EXECUÇÃO DE SCRIPTS EM BANCO DE DADOS DO GEMCO ANYWHERE"

Copied!
12
0
0

Texto

(1)

ANEXO TÉCNICO

PROCEDIMENTOS PARA EXECUÇÃO DE SCRIPTS EM

BANCO DE DADOS DO GEMCO ANYWHERE

1. Introdução

Este manual aborda os procedimentos para atualização de bancos de dados do sistema Gemco.

A atualização dos scripts é um procedimento importante que faz parte das rotinas de manutenção do sistema. Com a atualização dos scripts são criadas tabelas, campos e feitos ajustes essenciais à estrutura do banco de dados.

Ao receber uma nova versão do aplicativo Gemco ou modulares, o banco de dados deve estar atualizado, ou seja, com os scripts executados, para que esta versão funcione adequadamente.

Abordaremos os procedimentos de como obter os scripts, de sua organização, nomenclatura, execução e erros comuns que pode-se enfrentar.

2. Escopo

As instruções deste manual atendem todos os produtos Bematech Gemco na base de dados SQL Server ou Oracle.

3. Obtenha os scripts

Existem dois meios para a obtenção dos scripts:

 Via CD enviado pela Bematech (pasta “scripts”)  Via FTP – BBS Bematech (www.bematech.com.br) Via BBS, siga os seguintes passos:

1. Acesse www.bematech.com.br e clique em Área restrita.

2. Selecione BBS Gemco e entre com o usuário e a senha fornecidos pela Bematech, selecione os arquivos em “Recebimento” e copie para um diretório de controle dos Scripts em sua máquina.

Observação:

 Se não possuir nenhum usuário e senha, solicite ao Suporte Bematech.

 A BBS armazena os arquivos por tempo limitado, onde a cada 3 meses é realizada uma limpeza automática dos arquivos disponibilizados. Por isso salientamos a importância de sempre copiar os arquivos para a Estação ou Servidor assim que disponíveis.

(2)

4. Organize os scripts

Organize seus scripts. A organização é fundamental para que não haja faltas na ordem de execução e para que tenhamos o histórico do que já foi executado.

Sugerimos a criação de um pasta “scripts” no diretório C:\Suporte\ do próprio servidor ou estação administrativa no Data Center. Abaixo desse diretório crie duas pastas: “Executados” e “Novos”. Assim, teríamos a seguinte estrutura:

C:\Suporte\Scripts\Executados C:\Suporte\Scripts\Novos

No banco de dados à tabela GEMCO_SCRIPTS_EXECUTADOS registra os scripts executados.

Para listar os scripts executados, execute o seguinte comando no SQL Query Analizer (SQL Server) ou SQL Plus (Oracle):

select * from gemco_scripts_executados order by script

5. Nomenclaturas padrão dos bancos de dados

Como referência, ao implantar o sistema Gemco, adotamos a seguinte nomenclatura para os bancos de dados:

SQL Server Oracle

Produção dbGemco GEMCO

Treinamento e testes dbTreinamento TREINO

Demonstração dbDemo DEMO

CEP dbCep CEP

6. Tipos e ordem de execução dos scripts

Os arquivos para atualização ou manutenção do banco de dados possuem a extensão .SQL e são denominados scripts. Os scripts podem ser de dois tipos: banco de dados ou segurança.

Nomenclatura para SQL Server:

 Scripts de banco de dados: IPLAA0000.SQL  Scripts de segurança: SQDDMMAA.SQL

 Scripts de banco de dados - Modular: MODAA0000.SQL Nomenclatura para Oracle:

 Scripts de banco de dados: IPLAA0000.ORA  Scripts de segurança: ORDDMMAA.SQL

(3)

Onde AA é o ano em que o script foi desenvolvido (exemplo: 13 refere-se a scripts do ano de 2013).

Onde MOD é o modular em que o script foi desenvolvido (exemplo: FIN refere-se a scripts do modular Financeiro).

Ordem de execução

A ordem de execução dos scripts para atualizar o banco de dados deve respeitar a sequência de AA (Ano) e depois a sequência Numérica.

Já a execução dos scripts de segurança deve respeitar a sequência da Data.

Exemplo (no caso, para scripts SQL Server):

Suponha que tenham sido recebidos os seguintes scripts:

Script Data Hora Tamanho

IPL130001.SQL 28/12/2013 14:30 60 SQ210913.SQL 21/09/2013 9:59 221 IPL140002.SQL 25/01/2014 15:34 181 SQ030114.SQL 03/01/2014 17:02 2.343 FIN14010.SQL 02/02/2014 13:02 20

Primeiro, deverão ser executados os scripts para atualização do banco de dados:

Script Data IPL130001.SQL 28/12/2013 IPL140002.SQL 25/01/2014 FIN14010.SQL 02/02/2014

Depois, deverão ser executados os scripts para atualização da segurança do Gemco.

Script Data SQ210913.SQL 21/09/2013 SQ030114.SQL 03/01/2014

7. Procedimento para executar os scripts em SQL Server

Os scripts deverão ser executados conforme a ordem apresentadas no tópico 7, através do utilitário MS Query Analyzer ou SQL Server Management Studio.

1. SQL Server Informe o nome do Servidor de Banco de Dados 2. Login Name gemco

3. Password gemco (ou a senha definida) 4. Ok

(4)

5. Após a conexão, certifique-se de que o banco apropriado esteja selecionado na barra de ferramentas.

Na pasta identificada por QUERY, na metade superior da tela:

1. Escolha no Menu principal a opção FILE, OPEN 2. Na caixa OPEN FILE, selecione o arquivo .SQL 3. OPEN < ENTER >

4. Execute o script clicando na a opção QUERY, EXECUTE ou pressione as teclas CTRL+E.

Repita os passos 1 à 4 para todos os scripts novos que ainda não foram executados. Lembre-se sempre de seguir a sequência conforme explicado no tópico 7.

8. Procedimento para executar os scripts em Oracle

Os scripts deverão ser executados conforme a ordem apresentadas no tópico 7, através do utilitário SQL Plus.

Conecte-se com o servidor, preenchendo as seguintes informações:

1. Username GEMCO (no Oracle, o usuário determina qual é a base de dados que sera atualizada)

2. Password GEMCO (ou a senha definida)

3. Host String String de conexão com o servidor de banco de dados 4. Ok < ENTER >

5. No prompt identificado por SQL> digite @<CAMINHO>\<SCRIPT>

Exemplo:

SQL> @C:\G2002\SCRIPTS\SET00010 <ENTER>

(5)

Apêndice A – Principais mensagens de erro ao executar scripts em SQL Server

 Mensagens na execução normal do script:

Mensagem Explicação

The command(s) completed successfully. Indica que o comando executado não retorna dados. Ocorre quando o comando executado for: CREATE TABLE, ALTER TABLE (coluna e remoção de constraint), DROP TABLE, CREATE INDEX, DROP INDEX.

(‘X’ row(s) affected) Indica que o comando alterou ‘X’ linhas da tabela em questão. Ocorre quando o comando executado for: INSERT INTO, UPDATE, DELETE, ALTER TABLE (adição: Primary Key, Foreign Key).

Caution: Changing any part of an object name could break scripts and stored procedures.

The ‘XX’ was renamed to ‘YY’.

Indica que o objeto ‘XX’ (objeto ou coluna) foi renomeado para ‘YY’. Informa também que poderão ocorrer problemas com stored procedures ou scripts.

Default bound to column. Indica que foi associado um default a determinada coluna de determinada tabela. Default unbound from table column. Indica que foi removida a associação de um

default de determinada coluna de determinada tabela.

 Para script executado mais de uma vez:

Mensagem Explicação

Server: Msg 2714, Level 16, State 6, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server]There is already an object named ‘XX’ in the database.

Indica que o objeto ‘XX’ (tabela, primary key, foreign key ou index) já existe no banco de dados.

Server: Msg 2705, Level 16, State 4, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server]Column names in each table must be unique. Column name ‘XX’ in table ‘YY’ is specified more than once.

Indica que a coluna ‘XX’ já existe na tabela ‘YY’.

Server: Msg 15335, Level 11, State 1, Procedure sp_rename, Line 332

[Microsoft][ODBC SQL Server Driver][SQL Server]Error: The @newname value ‘XX’

Indica a tentativa de renomear um objeto (Tabela, Primary Key, Foreign Key ou Index) com um nome que já existe no banco de dados.

(6)

is already in use as a object name and would cause a duplicate that is not permitted.

Server: Msg 15225, Level 11, State 1, Procedure sp_rename, Line 271

[Microsoft][ODBC SQL Server Driver][SQL Server]No item by the name of ‘XX’ could be found in the current database ‘DB’, given that @itemtype was input as '(null)'.

Indica a tentativa de renomear uma coluna com um nome que já existe no banco de dados.

 Mensagem de advertência que poderá retornar:

Mensagem Explicação

Server: Msg 1779, Level 16, State 1, Line 1

[Microsoft][ODBC SQL Server

Driver][SQL Server]Table 'XX' already has a primary key defined on it.

Server: Msg 1750, Level 16, State 1, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server]Could not create constraint. See previous errors.

Indica tentativa de criar uma primary key na tabela ‘XX’, sendo que esta já existe.

Server: Msg 3701, Level 11, State 5, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot drop the table ‘XX’, because it does not exist in the system catalog.

Indica que a tabela ‘XX’ não pode ser apagada porque não existe no banco de dados.

Server: Msg 1913, Level 16, State 1, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server]There is already an index on table ‘XX’ named ‘YY’.

Indica que o índice ‘YY’ não pode ser apagado porque já existe no banco de dados.

Server: Msg 3703, Level 11, State 7, Line 1 [Microsoft] [ODBC SQL Server

Driver][SQL Server]Cannot drop the index ‘XX’, because it does not exist in the system catalog.

Indica que o índice ‘XX’ não pode ser apagado porque não existe no banco de dados.

Server: Msg 3701, Level 11, State 5, Line 1 [Microsoft] [ODBC SQL Server

Driver][SQL Server]Cannot drop the trigger ‘XX’, because it does not exist in the system catalog.

Indica que o trigger ‘XX’ não pode ser apagado porque não existe no banco de dados.

(7)

Server: Msg 2627, Level 14, State 1, Line 1

[Microsoft][ODBC SQL Server

Driver][SQL Server]Violation of PRIMARY KEY constraint ‘XX’. Cannot insert

duplicate key in object ‘YY’.

The statement has been terminated.

Indica que violou a primary key ‘XX’ da tabela ‘YY’. Ocorreu uma tentativa de inserir uma linha na tabela com os campos que formam a primary key ‘XX’ já existente na tabela ‘YY’.

Server: Msg 547, Level 16, State 1, Line 1 [Microsoft][ODBC SQL Server

Driver][SQL Server]INSERT statement conflicted with COLUMN FOREIGN KEY constraint ‘XX’. The conflict occurred in database ‘DB’, table ‘YY’, column ‘WW’. The statement has been terminated.

Indica que violou a foreign key ‘XX’ da tabela. Ocorreu uma tentativa de inserir uma linha na tabela com um campo ‘WW’ que deveria existir na tabela ‘YY’ e não existe.

Server: Msg 3728, Level 16, State 1, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server] ‘XX’ is not a constraint.

Server: Msg 3727, Level 16, State 1, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server]Could not drop constraint. See previous errors.

Indica que o objeto ‘XX’ não foi encontrado no banco de dados e portanto não foi possível executar o comando para eliminar a constraint (Primary Key ou Foreign Key). Ou não existe a constraint ou então possui outro nome.

Server: Msg 1776, Level 16, State 1, Line 1 [Microsoft] [ODBC SQL Server

Driver][SQL Server]There are no primary or candidate keys in the referenced table ‘XX’ that match the referencing column list in the foreign key ‘YY’.

Server: Msg 1750, Level 16, State 1, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server]Could not create constraint. See previous errors.

Indica tentativa de criar uma foreign key ‘YY’ sem existir a primary key na tabela referenciada ‘XX’.

 Mensagens que necessitam da interferência do usuário:

Mensagem Explicação

Can't allocate space for object ‘X’ in database ‘DB’ because the ‘Y’ segment is full. If you ran out of space in Syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase the size of the segment.

Indica que o não há mais espaço no log de transações, e este precisa ser limpo. Normalmente este erro ocorre quando é um comando muito extenso for executado no banco de dados. Caso a limpeza do log não solucione o problema, deve-se verificar o tamanho do

(8)

TEMPDB. Caso o erro persista, deve-se verificar o tamanho do BANCO DE DADOS.

(9)

Apêndice B – Principais mensagens de erro ao executar scripts em Oracle

 Mensagens na execução normal do script:

Mensagem Explicação

Table created. Indica que a tabela foi criada com sucesso. Ocorre quando o comando executado for CREATE TABLE. Table altered. Indica que o comado ALTER TABLE foi realizado com sucesso (Adicionar Coluna, associar Default, criar Primary Key, criar Foreign Keyremover Primary Key, remover Foreign Key ou modificar o tamanho / tipo da coluna).

Index created. Indica que o índice foi criado com sucesso, através do comando CREATE INDEX.

Sequence created. Indica que a sequência foi criada com sucesso. ‘X’ row(s) created. Indica que o comando inseriu ‘X’ linhas da tabela em

questão. Ocorre quando o comando executado for INSERT INTO.

‘X’ rows selected. Indica número de linhas selecionados pelo comando SELECT (este retorno só aparecerá se o número de linhas retornadas for maior ou igual a 6).

‘X’ row(s) updated. Indica que o comando alterou ‘X’ linhas da tabela em questão. Ocorre quando o comando executado for UPDATE.

‘X’ row(s) deleted. Indica que ‘X’ linhas foram removidas da tabela em questão. Ocorre quando o comando executado for DELETE.

Table truncated. Indica que a tabela foi truncada, ou seja, todas as linhas da tabela foram removidas.

Table renamed. Indica que a tabela foi renomeada. Este é o único objeto que pode ser renomeado no Oracle.

Trigger created. Indica que o trigger foi criada com sucesso.

Procedure created. Indica que a stored procedure foi criada com sucesso.

PL/SQL procedure successfully completed.

Indica que o procedimento (Stored Procedure ou um PL/SQL) foi executado com sucesso.

Table dropped. Indica que a tabela foi eliminada com sucesso. Index dropped. Indica que o índice foi eliminado com sucesso. Sequence dropped. Indica que a sequência foi eliminada com sucesso. Trigger dropped. Indica que o trigger foi eliminada com sucesso. Procedure dropped. Indica que a stored procedure foi eliminada com

sucesso.

(10)

Mensagem Explicação ERROR at line 1:

ORA-00955: name is already used by an existing object.

Indica que o objeto (tabela, primary key, foreign key, índice, stored procedure, sequence) já existe no usuário de banco de dados.

ERROR at line 1:

ORA-01430: column being added already exists in table

Indica que a coluna já existe no usuário de banco de dados.

ERROR at line 1:

ORA-02260: table can have only one primary key

Indica que a tabela já possui primary key.

ERROR at line 2:

ORA-02275: such a referential constraint already exists in the table

Indica que a tabela já possui foreign key.

ERROR at line 1:

ORA-04081: trigger 'XX_TR' already exists

Indica que o trigger ‘XX_TR’ já existe no usuário de banco de dados.

ERROR at line 2:

ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found

Indica tentativa de criar índice único, sendo que este já existe.

 Mensagens de advertência:

Mensagem Explicação

ERROR at line 1:

ORA-02260: table can have only one primary key

Indica tentativa de criar uma Primary Key na tabela ‘XX’, sendo que esta já existe.

ERROR at line 1:

ORA-00942: table or view does not exist

Indica que a tabela em questão não pode ser apagada porque não existe no usuário de banco de dados.

ERROR at line 1:

ORA-01418: specified index does not exist

Indica que o índice em questão não pode ser apagado porque não existe no usuário de banco de dados.

ERROR at line 1:

ORA-04080: trigger 'XX_TR' does not exist

Indica que o trigger ‘XX_TR’ não pode ser apagado porque não existe no usuário de banco de dados.

ERROR at line 1:

ORA-00001: unique constraint (GEMCO.XX) violated

Indica que violou a Primary Key ou o índice único ‘XX’. Ocorreu uma tentativa de inserir uma linha na tabela com os valores das colunas que formam a Primary Key ou o índice único já existentes na tabela.

ERROR at line 1:

ORA-02291: integrity constraint (GEMCO.X_FK_Y) violated - parent key not found

Indica que violou a foreign key ‘X_FK_Y’ da tabela. Ocorreu uma tentativa de inserir uma linha na tabela com um campo ‘WW’ que deveria existir na tabela ‘Y’ e não existe.

(11)

ERROR at line 1:

ORA-02443: Cannot drop constraint - nonexistent constraint

Indica que o objeto não foi encontrado no usuário de banco de dados e portanto não foi possível executar o comando para eliminar a constraint (Primary Key ou Foreign Key). Ou não existe a constraint ou então possui outro nome. ERROR at line 1:

ORA-02441: Cannot drop nonexistent primary key

Indica que não foi possível eliminar a Primary Key porque esta não existe.

ERROR at line 3:

ORA-02270: no matching unique or primary key for this column-list

Indica tentativa de criar uma Foreign Key sem existir a Primary Key na tabela referenciada.

ERROR at line 1:

ORA-02266: unique/primary keys in table referenced by enabled foreign keys

Indica tentativa de eliminar uma tabela que é referenciada por outra com uma Foreign Key.

ERROR at line 1:

ORA-00902: invalid datatype

Indica tentativa de criar relacionamento para Foreign Key com colunas de tipos diferentes. ERROR at line 1:

ORA-00947: not enough values

Indica tentativa de inserir dados na tabela com número de argumentos do Insert diferente do número do Values.

ERROR at line 1:

ORA-02298: cannot enable

(GEMCO.XX_FK_Y) - parent keys not found

Indica tentativa de criar um relacionamento entre a tabela ‘XX’ e ‘Y’, sendo que o dado da Foreign Key da tabela filho ‘XX’ não existe na tabela pai ‘Y’.

 Mensagens que necessitam da interferência do usuário:

Mensagem Explicação

Warning: Trigger created with compilation errors.

Indica que o trigger foi gerada com erro de compilação. Será necessário corrigi-lo. Para a visualização do erro digitar no prompt do SQL Plus:

SQL> show error trigger NOME_DO_TRIGGER

<enter> Warning: Procedure created with

compilation errors.

Indica que a stored procedure foi gerada com erro de compilação. Será necessário corrigi-lo. Para a visualização do erro digitar no prompt do SQL Plus:

SQL> show error procedure NOME_DA_SP

<enter> ERROR at line 1:

ORA-00933: SQL command not properly ended

Indica que o comando não foi terminado apropriadamente. Será necessário corrigi-lo.

(12)

ERROR at line 1:

ORA-01658: unable to create INITIAL extent for segment in tablespace GEMCO_DAT

Indica que não foi possível executar o comando (CREATE TABLE, INSERT INTO) porque não existe mais espaço em disco disponível.

ERROR at line 1:

ORA-01555: snapshot too old (rollback segment too small)

Indica que o segmento de rollback habilitado é muito pequeno.

ERROR at line 1:

ORA-01562: failed to extend rollback segment ID = num

Indica que não foi possível aumentar o segmento de rollback identificado por ‘NUM’.

Referências

Documentos relacionados

Conclui-se que o conhecimento do desenvolvimento ponderal evidenciou um padrão racial, que o perímetro torácico está altamente associado ao peso corporal e que equações de

Este presente artigo é o resultado de um estudo de caso que buscou apresentar o surgimento da atividade turística dentro da favela de Paraisópolis, uma

Entendendo, então, como posto acima, propõe-se, com este trabalho, primeiramente estudar a Lei de Busca e Apreensão para dá-la a conhecer da melhor forma, fazendo o mesmo com o

A variação do pH da fase móvel, utilizando uma coluna C8 e o fluxo de 1,2 mL/min, permitiu o ajuste do tempo de retenção do lupeol em aproximadamente 6,2 minutos contribuindo para

A não uniformização quanto ao método de referência pode promover diferenças entre as curvas de calibração geradas por laboratórios de dosimetria citogenética, que podem

O registro de dados na plataforma de trabalho do operador temperatura do ar, °C; temperatura de globo negro, °C; umidade relativa do ar, %; frequência cardíaca do operador,

Por isso na década de 1960 a prefeitura resolve criar não só o baile, mas também o chamado Voo do Frevo, que tinha por objetivo não só trazer artistas do sul e do sudeste do país

O ponto de equilíbrio é o número de unidades que precisão ser vendidas para uma empresa atingir o equilíbrio- não ter lucro e nem prejuízo5. O CVL é qualquer análise