Apostila - Banco de Dados Firebird

Download Apostila - Banco de Dados Firebird

Post on 23-Oct-2015

329 views

Category:

Documents

57 download

TRANSCRIPT

<ul><li><p>Programa de Capacitao Profissional 2010 </p><p>Pgina 1 de 15 </p><p>SPDATA Servio de Processamento de Dados LTDA </p><p> Treinamento de Banco de Dados Firebird </p><p> Romilton Gonalves Dias Instrutor </p><p>Objetivo: Qualificao dos Profissionais para Gerenciamento e Manuteno do Banco de Dados Firebird </p><p>Objetivos Especficos: </p><p>1. Verso do Firebird utilizada no sistema SGH e projeto de homologao para Firebird 2.1 ....................... Pag 2 2. Novidades da verso 2.1 do Firebird .......................................................................................................... Pag 2 3. Diferena de SuperServer e ClassicServer (quando usar e como migrar) .................................................. Pag 4 4. Instalao do Firebird nas estaes Windows XP, Vista e Seven em Servidores Windows e Linux ........... Pag 4 5. Ferramentas Nativas Gbak, Gfix, Gstat, Gsec e isql .................................................................................... Pag 5 6. Configuraes e cuidados para melhor desempenho ................................................................................ Pag 9 7. Estrutura do banco de dados do sistema SGH ........................................................................................... Pag 9 8. Tipos de Erros e Corrupes ...................................................................................................................... Pag 9 9. Correo do banco de dados corrompido .................................................................................................. Pag 10 10. Ferramentas (isql, Iboconsole, Ibexpert,Putty, Grep ) ............................................................................... Pag 10 11. Comandos Bsicos Linux . Pag 11 12. Formas de configuraes do back-up Automtico (Linux e Windows) ...................................................... Pag 11 13. Restaurar banco de dados completo ou parcial ......................................................................................... Pag 12 14. Comandos SQL DML (Consultas, update, delete, insert) ............................................................................ Pag 13 15. Integrao do Sistema SGH entre os mdulos ........................................................................................... Pag 15 </p><p> Contagem, 27 de Setembro de 2010 </p></li><li><p>Programa de Capacitao Profissional 2010 </p><p>Pgina 2 de 15 </p><p>1 - Verso do Firebird utilizada no sistema SGH e projeto de homologao para Firebird 2.1 </p><p> Atualmente a verso padro homologada pela equipe de desenvolvimento da SPdata Firebird 1.5 que est com a sua ltima verso Firebird-1.5.6.5026-0 e disponvel para download no site oficial www.firebirdsql.org. </p><p> O Processo de homologao para verso do Firebird 2.1 est em fase final e ser disponibilizado nas prximas verses </p><p>2 - Principais novidades do Firebird 2.1 </p><p> Monitoramento de banco de dados Talvez este seja o recurso mais aguardado para esta verso do Firebird. Aqueles que sempre quiseram saber o que se passava dentro de um banco de dados em um determinado momento, agora podero extrair essa informao atravs das tabelas virtuais de monitoramento! Note que, para ter acesso a esse recurso, sua base de dados deve estar com a ODS na verso 11.1. A recuperao das informaes de monitoramento feita atravs de selects normais, executados nas tabelas de monitoramento. importante saber que o acesso informao feito com a transao associada ao select de monitoramento no isolamento Consistency. Com isso, para atualizar as informaes recuperadas (refresh), necessrio fechar a transao atual e executar o select novamente, abrindo uma nova transao. Isso garante que as informaes de tabelas de monitoramento inter-relacionadas (mestre-detalhe) estaro sempre consistentes. A consulta completa das informaes de monitoramento s pode ser realizada pelo owner do banco de dados, ou pelo SYSDBA. Usurios normais s tm acesso s informaes relacionadas sua prpria conexo com o banco. As tabelas de monitoramento so: MON$DATABASE, MON$ATTACHMENTS, MON$TRANSACTIONS, MON$TRANSACTIONS, MON$STATEMENTS, MON$CALL_STACK, MON$IO_STATS, MON$RECORD_STATS. Existem softwares no Mercado que fazem este monitoramento de modo grfico um deles o Sinatica que pode ser baixado do site oficial www.sinatica.com.br </p></li><li><p>Programa de Capacitao Profissional 2010 </p><p>Pgina 3 de 15 </p><p> Cancelando comandos Atravs das tabelas de monitoramento, possvel cancelar queries ou comandos que esto sendo executados. Para isso, basta abrir uma conexo com o banco de dados e dar um delete na tabela mon$statements, apagando o registro que representa o comando que voc quer cancelar. O comando abaixo cancela todos os comandos que esto sendo executados no banco de dados, e que no estejam associados conexo do SYSDBA (que est executando o cancelamento): delete from mon$statements where mon$attachment_id current_connection </p><p> Otimizao do protocolo de comunicao O Firebird, quando utilizado no modelo duas camadas (cliente servidor) em redes de baixa velocidade (ex: Internet), se mostra bastante lento. O culpado, neste caso, o protocolo de comunicao responsvel pela conversa entre a aplicao cliente e o servidor Firebird, que no foi originalmente escrito para ser usado em redes com banda limitada. A soluo definitiva para este problema vir em alguma verso futura do Firebird, com a criao de um novo protocolo de comunicao. No entanto, isso quebrar a compatibilidade de comunicao com servidores antigos. No Firebird 2.1, algumas rotinas do atual protocolo de comunicao foram otimizadas, de forma a gerar menos conversa entre o cliente e o servidor, sem perder a compatibilidade com as verses anteriores do Firebird. Em alguns casos, um ganho de performance de cerca de 40% pde ser observado nas conexes via internet. Para ter total proveito das otimizaes realizadas, necessrio que a conexo esteja usando o fbclient.dll da verso 2.1, e que o servidor tambm seja 2.1 (ou superior). Nota: Drivers que acessam diretamente o servidor, sem passar pela fbclient.dll (ex: JayBird e .NET Provider) devero ter seus cdigos atualizados para que tirem proveito das otimizaes. </p><p> Pr-alocao de espao no disco Sabemos que o arquivo de um banco de dados Firebird cresce de acordo com a necessidade. O Firebird 2.1 introduz a possibilidade de pr-alocar espao, diminuindo a fragmentao do arquivo, o que causa um impacto positivo na performance de leitura do disco. No momento, este recurso est disponvel apenas para a verso Windows. O novo parmetro DatabaseGrowthIncrement pode ser configurado no firebird.conf, e determina o limite mximo (em bytes) que poder ser pr-alocado na requisio de alocao de espao para o banco de dados. O padro 128MB. Configurar esse parmetro com o valor zero desativa o recurso de pr-alocao. Nota: Em situaes muito especficas, havia a possibilidade de corrupo de um BD, caso a partio onde ele estivesse armazenado ficasse cheia. Para solucionar este problema, o Firebird 2.1, no momento de alocao de espao, faz com que as pginas criadas sejam imediatamente gravadas no disco. Isso significa que o Firebird est realizando uma operao de escrita adicional em relao ao modelo anterior, o que, em algumas situaes, pode afetar negativamente o desempenho. </p><p> Backup Incremental Desde a verso 2.0 o Firebird foi incorporado o backup incremental com o aplicativo Nbackup. O nbackup um novo utilitrio de backup que vem junto com o Firebird 2.1 e oferece funcionalidades inexistentes no gbak, ferramenta de backup pr-existente no Firebird, porm, no substitui esse ltimo. Ambos os programas tm as suas vantagens e desvantagens e iro ainda coexistir provavelmente por algum tempo. Neste artigo, aprenda tudo sobre esse poderoso utilitrio. Sintaxe C:\banco&gt; nbackup -B 0 sghdados.001 backnivel0_1-set-2010.nbk C:\banco&gt; nbackup -B 1 sghdados.001 backnivel1_1-set-2010.nbk C:\banco&gt; nbackup -B 2 sghdados.001 backnivel2_1-set-2010.nbk </p></li><li><p>Programa de Capacitao Profissional 2010 </p><p>Pgina 4 de 15 </p><p>3 - Diferena de SuperServer e ClassicServer (quando usar e como migrar) Super Server e Classic Server O Firebird possui duas verses: a verso Super Server a verso Classic Server. Entre as duas a diferena est na forma como est estruturada o gerenciamento das conexes dos clientes e processamento. </p><p>1. Na verso Super Server os recursos (valores recuperados do disco, consultas feitas) so compartilhados por todos os clientes conectados. Super vem de supervisor Ou seja somente um processo rodando no servidor para todos usurios. </p><p>(fbserver) Caso pane ter de Parar o processo e todos os usurios! 2. J na verso Classic Server, cada cliente tem sua prpria instncia do banco de dados (fb_inet_server) e </p><p>comunicam-se entre si atravs de um gerenciador de transaes (fb lock mgr). Ou Seja um processo no servidor para cada conexo no banco de dados caso de pane pode idenificar. </p><p>Super Server ou Classic Server Qual Melhor? Nenhuma das duas verses melhor ou pior, cada uma adequa-se melhor a cada caso ou seja, necessita de anlise. Para determinadas situaes a verso Super Server mais recomendada (Servidor com pouca memria RAM, nmero mdio ou pequeno de clientes conectados, Servidor uniprocessado). Em outras situaes a verso Classic Server sai-se melhor (Muita memria RAM disponvel, Servidores multiprocessados muitas conexes simultneas). A vantagem da verso Classic Server tratar os usurios de forma independente, Uma desvantagem da mesma o consumo elevado da memria RAM (mas caso o server tenha muita memria RAM isto deixa de ser uma desvantagem). Para migrar de Super Server para Classic Server no Linux precisa alterar os buffers de pginas de dentro da pasta /opt/firebird/bin rodar o comando gfix -b 75 /work/banco/sghdados.001 e o xinet.conf alterando a quantidade de instncias, o arquivo de configurao fica dentro da pasta /etc instances = 3000 cps = 50 100 </p><p>No caso do Windows alterar somente os buffers de pfinas com o comando gfix -b 75 -user sysdba -pass senha sghdados.001 (lembrando que o arquivo gfix fica na pasta arquivos de programas e pode ser copiado para dentro da pasta banco. 4 - Instalao do Firebird nas estaes Windows XP, Vista e Seven </p><p>Instalao Firefird Windows Baixe o arquivo Firebird-1.5.6.5026-0-Win32 http://www.firebirdsql.org Escolha a arquitetura Super server ou Classic e marque a opo copiar Biblioteca para pasta de system Como defaul a senha do sysdba masterkey Para alterar via grfico Pode ser no Ibosonsole Na opo usurio e digite Por cima da senha existente e grave No windows fica C:\Arquivos de programas\Firebird\Firebird_1_5 </p><p> ATENO Windows Vista e Seven Se voc estiver instalando em Windows Vista ou Seven, o instalador opo para instalar o Control Panel applet deve ser desativado para evitar ter que quebrar o Painel de Controle do seu sistema Windows. </p></li><li><p>Programa de Capacitao Profissional 2010 </p><p>Pgina 5 de 15 </p><p>Instalao Firebird no Linux Se voc baixou o Firebird em .rpm copie o mesmo para o servidor Linux e digite rpm -Uvh FirebirdSS-1.5.6.5026-0.nptl.i686.RPM Para desinstalar rpm -e FirebirdSS-1.5.6.5026-0.nptl.i686 Se voc baixou o Firebird em .tar Para instalar a verso nptl super Server checar se o servidor suporta getconf GNU_LIBPTHREAD_VERSION tar -xzf FirebirdSS-1.5.6.5026-0.nptl.i686 cd / FirebirdSS-1.5.6.5026-0.nptl.i686 ./install.sh Vai pedir a senha sysdba escolha e de enter Geralmente o Firebird instalado na pasta opt/firebird Para a verso Classic Server configurar o xinet.d aumentar as instncias algumas distribuies do Linux necessitam de instalar libstdc++ No caso do Linux os pacotes Super Server e Classic server so separados o Classic Server FirebirdCS-1.5.5.4926-0.i686 tema diferena pelas letras CS 5 - Ferramentas Nativas Gbak, Gfix, Gstat, Gsec e isql Gbak: Esta ferramenta responsvel por duas operaes no banco de dados: efetuar o backup e restaurar o banco de dados a partir de um backup (restore). Back-up Opes do Gbak para Back-up so -b Back-up -v visualizar o processo -l ignora as limbos -se utiliza api de servio -g ignora a coleta de lixo -ig ignora erros na base (recomendado realizar somente apos o gfix) -pass password do banco -user sysdba -z mostra a verso do firebird No linux o comando fica da seguinte forma /opt/firebird/bin/./gbak -b -v -l -g -user sysdba -pass masterkey -se localhost:service_mgr /work/banco/sghdados.001 /work/banco/001.fbk No Windows fica na pasta Arquivos de programas/firebird/bin/ Voc pode copiar o gbak.exe para a pasta banco e executar CMD gbak -b -v -l -g -user sysdba -pass masterkey -se localhost:service_mgr sghdados.001 001.fbk Restore Opes do Gbak para restore -c cria uma nova base -r substitui o arquivo do banco -i inativa os ndices -use preenche todo o espao da pgina(no usar) -p define o tamanho da pagina -z mostra a verso do firebird -v visualiza o processo - user sysdba -pass senha do banco No linux o comando fica da seguinte forma /opt/firebird/bin/./gbak -c -v -p 8192 -user sysdba -pass masterkey -se localhost:service_mgr /work/banco/001.fbk /work/banco/sghdados.002 (segurana) De preferncia reiniciar o server ou tirar as permisses de gravao do banco anterior chmod 000 sghdados.001 e dar permisses ao sghdados.002 chmod 777 sghdados.002 No Windows fica na pasta Arquivos de programas/firebird/bin/ Voc pode copiar o gbak.exe para a pasta banco e executar CMD gbak -c -v -p 8192 -user sysdba -pass masterkey 001.fbk sghdados.002 Obs: (no caso de fazer o backup via linha de comando no Windows ou Linux incluir a opo -se localhost:service_mgr para chamar a API de servio do firebird porque quando no coloca ele usa o protocolo TCPIP que mais lento por isso que o back-up e restore via linha de comando demora mais do que no iboconsole ibexpert e outras ferramentas que usam a API de servio) isto somente quando for o superserver porque o classic Server j o faz. </p></li><li><p>Programa de Capacitao Profissional 2010 </p><p>Pgina 6 de 15 </p><p>Back-up No Iboconsole </p><p> Restore no Iboconsole </p><p> Para que fazer Back-up Um Backup e Restore ir fazer com que: - As pginas (pages) na Base de Dados utilizadas pelas tabelas e ndices sejam alocadas de forma contgua; - Os ndices sejam recalculados. A rvore de ndices seja reconstruda. - A selectividade dos ndices seja recalculada para todos os ndices. - As pginas TIP (transaction information pages pginas que contm toda a informao sobre as transaes) que contm transaes antigas (old transactions) e transaes correntes (current transactions) sejam inicializadas e os contadores das transaes sejam reiniciados. - No caso de corrupo aps rodar o gfix para criar uma nova estrutura. - Todas as pginas de dados que no so usadas sejam eliminadas. - Nenhuma verso antiga (back version), delta ou registo esteja presente. - Nenhuma pgina de ndice de garbage (lixo) esteja presente. - Todas as tarefas so executadas por um sweep numa conexo nica </p></li><li><p>Programa de Capacitao Profissional 2010 </p><p>Pgina 7 de 15 </p><p>Qual Tamanho de pgina usar? Existem quatro coisas relacionadas ao tamanho de pgina: profundidade dos ndices, tamanho do cache do BD, registros por pgina e tamanho do cluster de disco. A respo...</p></li></ul>