Firebird Commandline Brazilian Portuguese

Download Firebird Commandline Brazilian Portuguese

Post on 02-Jan-2016

48 views

Category:

Documents

14 download

TRANSCRIPT

Utilitrios em Linha deComando do FirebirdNorman DunbarUtilitrios em Linha de Comando do FirebirdNorman DunbarTraduo para o Portugus do Brasil: Fabricio ArajoPublicado 2004Copyright 2004 Norman Dunbarivndice1. Introduo ......................................................................................................................................... 12. GSEC Utilitrio do Arquivo de senhas do Firebird ............................................................................ 3Introduo ...................................................................................................................................... 3Opes em linha de comando ......................................................................................................... 4Comandos do GSEC ...................................................................................................................... 5Modo Interativo ............................................................................................................................. 7Mostrando os detalhes do usurio ........................................................................................... 7Adicionando novos usurios ................................................................................................... 8Eliminando Usurios .............................................................................................................. 8Alterando informaes de Usurios ......................................................................................... 8Ajuda .................................................................................................................................... 9Informao de verso ............................................................................................................. 9Modo Em lote ............................................................................................................................ 9Mostrando Detalhes do Usurio ............................................................................................ 10Adicionando novos usurios ................................................................................................. 10Eliminando Usurios ............................................................................................................ 10Alterando Informao de Usurios ........................................................................................ 11Informao de verso ........................................................................................................... 11Executando GSEC Remotamente .................................................................................................. 12Novidades do Firebird 2.0 .................................................................................................... 12Truques do GSEC ........................................................................................................................ 13Usurios Normais versus Usurios Privilegiados .................................................................... 13Differenas entre Modo Lote e Interativo .............................................................................. 13Cdigos de Sada em Modo Lote .......................................................................................... 14Erros em Modo Lote Muda para o Modo Interativo ............................................................... 143. GSPLIT O filtro de arquivos de backup divididos do Firebird .......................................................... 15Introduo .................................................................................................................................... 15Opes de linha de comando GSPLIT ........................................................................................... 16Parmetros dos Comandos do GSPLIT .......................................................................................... 16Dividindo Backups ....................................................................................................................... 17Juntando Arquivos de Backup ....................................................................................................... 184. Diversos Script para Firebird em Sistemas Linux/Unix ....................................................................... 20Introduo .................................................................................................................................... 20Mudando a senha do SYSDBA ..................................................................................................... 20Criando nomes de alias de banco de dados .................................................................................... 21Parmetros createAliasDB.sh ................................................................................................ 22Uma ajuda com arquivos make ..................................................................................................... 22Opes fb_config ................................................................................................................. 22Mudando o usurio de execuo do servidor Firebird ..................................................................... 23Parmetros do SSchangeRunUser.sh ...................................................................................... 24Restaurando root como o Usurio de execuo do Servidor Firebird ................................................ 24Rodando aplicaes embarcadas ou cliente/servidor ....................................................................... 255. Prximos utilitrios .......................................................................................................................... 261Captulo 1IntroduoO kit de distribuio do Firebird 1.5 instala um conjunto de programas utilitrios para ajudar na utilizao doseu servidor e bancos de dados Firebird. Este livro introduz voc para os vrios utilitrios, alguns mais teisdo que outros.Todos estes utilitrios podem ser encontrados no diretrio /bin em ambiente Unix (ou na pasta \bin emWindows) abaixo da raiz da instalao do Firebird. No Linux esses utilitrios podem ser achados em /opt/firebird/bin enquanto que em Windows, a localizao padro em c:\program files\firebird\firebird_1_5\bin.Notado Tradutor: nas verses em Portugus do Windows, a localizao padro em c:\Arquivos de Pro-gramas\firebird\firebird_1_5\bin. FB_LOCK_PRINT o utilitrio que imprime detalhes da pgina de travamentos internais do banco de dados. GBAK utilitrio de backup e restore do banco de dados. Tambm permite alterar vrios parmetros internosdo banco de dados. GDEF um utiltrio de metadados que foi removido na poca do Interbase 4.0 e retornou na verso 6 decdigo aberto. A funcionalidade do mesmo provavelmente redundante. GFIX permiter tentar consertar bancos de dados corrompidos, inicializar e parar bancos de dados, resolvertransaes "no limbo" em mltiplos bancos de dados, mudar o nmero de buffers de pgina e outras coisasmais. GPRE o pr-processador que converte cdigo fonte, o qual pode ser escrito em um certo nmero de lingua-gens, contendo vrios "pseudo-cdigos" SQL embutidos em chamadas para o engine do Firebird. GSEC utilitrio de manipulao do banco de dados de segurana. Ele permite ao DBA (ou qualquer usurioprivilegiado) manter contas de usurios para vrios bancos de dados do Firebird. Usando suas vrias opes,usurios podem adicionados, eliminados ou seus dados atualizados no banco de dados de segurana. GSPLIT um filtro que permite "passar por cima" de limitaes de tamanho mximo de arquivos, achadosem alguns sistemas operacionais, ao criar backups de grandes bancos de dados. Este utilitrio distribudopara Windows somente e, infelizmete, parece no funcionar. Por sorte nossa, GBAK permite que os arquivosde backup possam ser quebrados em vrias partes, de modo que GSPLIT no necessrio. Em sistemas Unixexistem utilitrios do sistema operacional que podem ser utilizados em lugar do GSPLIT, se necessrio. GSTAT permite ao administrador do Firebird a capacidade de obter estatsticas sobre a sade geral e utiliza-o de vrias partes do banco de dados. ISQL o utilitrio interativo que permite a execuo de consultas ad-hoc contra um banco de dados Firebird. uma ferramenta console (modo texto) - assim como muitos dos utilitrios - e fornecido com todas asdistribuies do Firebird. ISQL usualmente o melhor lugar para testar seus scripts e comandos pela primeiravez.Introduo2 QLI Interpretador de Linguagem de Consulta que foi removido a partir do Interbase 4.0 mas retornou noInterbase 6.0 por causa da deciso de abrir o cdigo do Interbase Existem vrios scripts de shell que so instalados sob Linux e outros sistemas Unix.NotaEste livro um trabalho em progresso. Cada captulo detalha um utilitrio separado e assim que o cada um completado de forma satisfatria para mim, eu o adicionarei ao repositrio do CVS onde estaro disponveispara download. Dessa maneira, ser um trabalho lento e gradual de criao de manuais teis.3Captulo 2GSEC Utilitrio do Arquivode senhas do FirebirdIntroduoGSEC o utilitrio de segurana de banco de dados. Ele permite ao DBA (ou qualquer usurio privilegiado) acapacidade de manter contas de usurio para vrios bancos de dados Firebird. Usando vrias opes, usuriospodem ser adicionados, alterados ou eliminados do banco de dados de segurana.Nota possvel em alguns sistemas operacionais que usurios que no so capazes de rodar o GSEC, at mesmosabendo a senha do usurio SYSDBA. Isto acontece por cause que esses SOs permitem ao administrador con-figurar permisses de sistema de arquivos as quais previnem a execuo de certos programas ou utilitrios porrazes de segurana.O BD (banco de dados) Firebird que guarda os detalhes de todos os usurios BD de segurana. Este localizadonum banco de dados normal chamado security.fdb. A localizao padro para este arquivo est em: C:\Program Files\Firebird\Firebird_1_5 para o Windows (C:\Arquivos de Progra-mas\Firebird\Firebird_1_5 para as verses em portugus) . /opt/firebird para Linux e outros sistemas Unix.O BD de segurana tem duas tabelas, usurio e host_info. A tabela host_info vazia e a tabela de usurios guardatodos os detalhes de cada usurio com acesso permitido a qualquer BD do Firebird. Tendo dito isso, roles debanco e privilgios iro prevenir usurios logando e manipulando BDs aos quais eles no possuem direitos.O utilitrio GSEC manipula dados na tabela de usurios no BD de segurana, e fazendo isto, permite que sejamadicionados, alterados e eliminados usurios do sistema. Nem todas as colunas na tabela de usurios podem sermostradas, mesmo que possam ser alteradas. A colunas da senha do usurio nunca mostrada pelo GSEC, masvoc pode mud-la, por exemplo.Assim como mutios utilitrios em linha de comando que vm como o Firebird, GSEC pode ser executado emmodo interativo ou em modo lote, e possui uma tela de help mostrando todas as opes do utilitrio; ns veremosisso um pouco mais tarde.Vindo aps este captulo, teremos Opes em linha de comando para o GSEC.GSEC4 Comandos do GSEC e seus parmetros. Rodando GSEC em modo em lote ou interativo, ambos permitiro a voc:- Mostrar detalhes do usurio.- Alterar detalhes do usurio.- Adicionar novos usurios.- Eliminar usurios existentes. Usando GSEC para administrar um BD de segurana remoto. Algumas dicas, truques e malandragens do GSEC.Opes em linha de comandoIndependente do modo que o GSEC est rodando, existem um nmero de opes que podem ser adicionadasna linha de comando. Essas so: -user Permite que o nome do usurio sysdba seja especificado se o BD est para ser modificado, ou um nome deusurio normal se o banco para apenas mostrado. No necessrio se as variveis de ambiente ISC_USERe ISC_PASSWORD existirem e estiverem com os valores corretos. -password Especifica a senha para o nome de usurio na opo acima. No necessrio se as variveis de ambienteISC_USER e ISC_PASSWORD existirem e estiverem com os valores corretos. -role Especifica a sql role que ser utilizada para usurio que est conectando. -database Voc pode especificar o caminho completo do BD de segurana que o GSEC acessar e com isso administrarremotamente os usurios daquele servidor. Este parmetro ser censurado (no sentido de que no se deveutilizar esta opo) a partir da verso 2.0 do Firebird, quando ento dever ser utilizada a opo -server . -server Esta opo vale apenas para verso 2.0 do Firebird. Entretanto, ela pode ser utilizada para manutenir o BDde segurana para verses anteriores do Firebird e, desejamos, verses do Interbase da 6.0 em diante. Elaconecta voc ao BD de segurana do servidor Firebird nomeado e permite que voc mantenha os detalhes deusurios mesmo no sabendo exatamente onde est o BD de segurana no servidor remoto. -zMostra o nmero de verso do GSEC. -helpMostra a seguinte tela de informao: gsec utility - maintains user password databaseGSEC5 command line usage: gsec [ ... ] [ ... ] interactive usage: gsec [ ... ] GSEC> [ ... ] available options: -user -password -role -database -z available commands: adding a new user: add [ ... ] deleting a current user: delete displaying all users: display displaying one user: display modifying a user's parameters: modify [ ... ] help: ? (interactive only) help displaying version number: z (interactive only) quit interactive session: quit (interactive only) available parameters: -pw -uid -gid -fname -mname -lname Comandos do GSECAps as opes sortidas, vm agora os comandos que voc deseja executar. Os seguintes comandos valem tantoem modo interativo como no modo em lote, mas no modo interativo os traos ('-') antes dos comandos no sonecessrios. -add [ ... ]Este comando adiciona um novo usurio ao BD. Voc pode opcionalmente adicionar outros detalhes comonome e tambm a senha para o novo usurio, tudo no mesmo comando add. Alternativamente, voc podeadicionar o usurio e depois usar o modify para preencher os detalhes faltantes.GSEC6Notado Tradutor: A informao nome (name) na verdade foi quebrada em 3 campos no BD de segurana doFirebird: FIRST_NAME, MIDDLE_NAME e LAST_NAME. Existe tambm um quarto campo calculadoFULL_NAME que a concatenao dos outros 3. Isso bem tipicamente anglo-saxo. Outra curiosidade que eles alocaram para as informaes de nome o equivalente um varchar de quase 300 caracteres; enquandoque aqui o comum um varchar de 150 caracteres quando tanto. -delete Este comando remove o usurio nomeado acima do banco. Todos os detalhes do usurios so removidos eno pode desfeito. Caso precise, adicione o usurio novamente. -display [ ]Este comando mostra os detalhes de um usurio, ou de todos os usurios caso nenhum nome de usurio tenhasido especificado. A senha nunca mostrada. -modify [ ... ]Modifica os detalhes e informaes do usurioA opo como voc deseja que o usurio seja conhecido quando conectando a BD do Firebird. Algunsdos comandos acima precisam de parmetros e estes so um, ou mais dos seguintes: -pw Este parmetro permite que voc especifique uma nova senha para seu usurio. Se voc omitir a senha, asenha corrente ser removida e o usurio ser incapaz de conectar a qualquer BD Firebird. A senha pode termais de 8 caracteres, mas quando especificar uma para o GSEC, ou logando em BDs, os caracteres extrassero sumariamente ignorados. -uid -gid -uid e -gid so usados em alguns sistemas POSIX para entrar o userid e groupid do Unix como encontradosnos arquivos de configurao /etc/password e /etc/group . Caso no especificados, assumese ovalor zero por padro. -fname [ ]Este parmetro permite que voc armazene o prenome do usurio no BD. Isto ajuda identificar usurios apartir do nome de login - o qual pode ser abreviado. Voc pode eliminar o prenome bastando no especificarum. -mname [ ]O mesmo do acima, s que se aplicando ao nome do meio. -lname [ ]Idem, ibidem aos dois acima, s que aplicando-se ao sobrenome.GSEC7Modo InterativoPara usar o GSEC em modo interativo, inicie o utilitrio com esta linha de comando:C:\>gsec -user sysdba -password masterkeyGSEC>Notabvio que a senha do SYSDBA deve ser modificada em um sistema de produo. A linha de comando acimas se aplica a sistemas recm-instalados ou de desenvolvimento local.O prompt GSEC> mostrado acima indica que o utilitrio est esperando por um comando. As opes -user e -password so as do usurio que deseja manipular o BD de segurana. Obviamente o nome de usurio deve serde um usurio sysdba vlido se o objetivo efetuar alteraes. Usurios podem apenas ler o BD.Para sair do GSEC em modo interativo, se usa o comando quit:GSEC> quitC:\>As seguintes sees mostram como efetuar vrios comandos em modo interativo. assumido que voc estejarodando o utilitrio como sendo o usurio sysdba.Mostrando os detalhes do usurioPara mostrar todos os usurios no BD de segurana, o comando e o seu resultado so:GSEC> display user name uid gid full name------------------------------------------------------------------------SYSDBA 0 0NORMAN 0 0 Norman DunbarEPOCMAN 0 0 Benoit Gilles MasciaGSEC> Para mostrar detalhes de um nico usurio, passe nome do usurio como parmetro para o comando display:GSEC> display epocman user name uid gid full name------------------------------------------------------------------------EPOCMAN 0 0 Benoit Gilles MasciaGSEC> Se voc entrar o nome de um usurio no existente como parmetro para o comando display, nada mostradoe o GSEC continua em modo interativo.GSEC> display alisonGSEC> GSEC8Adicionando novos usuriosAo adicionar um novo usurio em movo interativo, nada mostrado para confirmar que o usurio foi realmenteadicionado. Voc precisa usar o comando display ou display para se certificar de que o usuriofoi adicionado com sucesso.GSEC> add newuser -pw newuser -fname New -lname UserGSEC> GSEC> display newuser user name uid gid full name------------------------------------------------------------------------NEWUSER 0 0 New UserGSEC> Eliminando UsuriosDa mesma forma que no comando de adicionar, no h confirmao de que o usurio foi realmente eliminado.Voc precisa usar o comando display ou display para se certificar de que o usurio foi eliminadocom sucesso.GSEC> delete newuserGSEC> GSEC> display user name uid gid full name------------------------------------------------------------------------SYSDBA 0 0NORMAN 0 0 Norman DunbarEPOCMAN 0 0 Benoit Gilles MasciaGSEC> Mas, de outra forma, voc tentar eliminar um usurio inexistente, GSEC mostrar uma mensagem de erro, eir para o SO:GSEC> delete newuserrecord not found for user: NEWUSERC:\>Alterando informaes de UsuriosUsurios j existentes podem ter uma ou mais de suas informaes (como prenome, nome do meio, sobrenomeou senha) alteradas. Mais uma vez no h confirmao de que a modificao ocorreu com sucesso, ento use ocomando display como descrito nas sees de outros comandos.GSEC> modify norman -pw newpasswordGSEC> GSEC9GSEC> modify norman -mname MiddleName -fname FredGSEC> GSEC> display norman user name uid gid full name------------------------------------------------------------------------NORMAN 0 0 Fred MiddleName DunbarGSEC> Se voc deseja remover uma ou mais das informaes do usurio, no passe um novo valor para esse atributo.GSEC> modify norman -mname -fname -lnameGSEC> display norman user name uid gid full name------------------------------------------------------------------------NORMAN 0 0 Agora eu posso ser conhecido como "o homem sem nome", assim com o Clint Eastwood!AjudaO comando help, em modo interativo, mostra a mesma tela de ajuda mostrada acima.Informao de versoA verso do GSEC pode ser obtida usando o comando z.GSEC> zgsec version WI-V1.5.0.4306 Firebird 1.5GSEC>Modo Em loteNotaAs seguintes descries de operaes em modo lote, assume-se que tenha-se configurado as variveis de am-biente ISC_USER e ISC_PASSWORD. Elas permitem rodar o GSEC sem ter que especificar as opes -usere -password. O reduzindo, por sua vez, a quantidade de cdigo na linha de comando - significando quequando este arquivo XML for renderizado num PDF, toda a linha de comando caiba numa nica linha de umapgina A4.No seguro manter essas variveis configuradas todo o tempo, ento no deixe-as assim!AtenoEm modo lote, quando voc achar que pode verificar o resultado de uma operao consultando %ERRORLE-VEL% em Windows ou $? em vrios sabores de Unix. Isto no funciona, pois o resultado sempre retorna zero.GSEC10Em modo lote, a linha de comando para rodar o GSEC a seguinte: gsec [ ... ] [ ... ]Mostrando Detalhes do UsurioPara mostrar todos os usurios no BD de segurana, o comando e sua respectiva sada seguem:C:\>gsec -display user name uid gid full name------------------------------------------------------------------------SYSDBA 0 0NORMAN 0 0 Norman DunbarEPOCMAN 0 0 Benoit Gilles MasciaPara mostrar detalhes de um nico usurio, passe nome do usurio como parmetro do comando display:C:\>gsec -display epocman user name uid gid full name------------------------------------------------------------------------EPOCMAN 0 0 Benoit Gilles MasciaNotado Tradutor: Nas prximas duas sees, ambos os comandos abordados no retornam confirmao de que aoperao foi efetuada com sucesso. Voc deve usar a o comando -display ou -display paraverificar.Adicionando novos usuriosAbaixo o comando e sua respectiva sada:C:\>gsec -add newuser -pw newuser -fname New -lname UserC:\>gsec -display user name uid gid full name------------------------------------------------------------------------SYSDBA 0 0NORMAN 0 0 Norman DunbarNEWUSER 0 0 New UserEPOCMAN 0 0 Benoit Gilles MasciaEliminando UsuriosAbaixo o comando e sua respectiva sada:C:\>gsec -delete newuserC:\>gsec -displayGSEC11 user name uid gid full name------------------------------------------------------------------------SYSDBA 0 0NORMAN 0 0 Norman DunbarEPOCMAN 0 0 Benoit Gilles MasciaAlterando Informao de UsuriosUsurios existentes podem ter uma ou mais de suas informaes alteradas.C:\>gsec -modify norman -pw newpasswordC:\>gsec -modify norman -mname MiddleName -fname FredC:\>gsec -display user name uid gid full name------------------------------------------------------------------------SYSDBA 0 0NORMAN 0 0 Fred MiddleName DunbarEPOCMAN 0 0 Benoit Gilles MasciaSe voc deseja remover um ou mais informaes do usurio, no passe um novo valor para esse atributo.C:\>gsec -modify norman -mname -fname -lnameC:\>gsec -display user name uid gid full name------------------------------------------------------------------------SYSDBA 0 0NORMAN 0 0EPOCMAN 0 0 Benoit Gilles MasciaAgora ningum sabe quem eu sou... ;o)Informao de versoA verso do GSEC pode ser obtida usando o comando -z . Porm, note que aps a execuo desse comando,o modo interativo ser ativado. Ele no sai assim como os outros comandos em lote, de modo que voc temque utilizar o comando interativo quit para sair. Este uma soluo de contorno, a qual segue. A primeira partemostra o problema.C:\>gsec -zgsec version WI-V1.5.0.4306 Firebird 1.5GSEC> A soluo ter um pequeno arquivo contendo o comando quit e forar GSEC a ler este arquivo quandonecessitar de entrada de dados do usurio, como segue:C:\>copy con fredquit^Z 1 file(s) copied.GSEC12C:\>gsec -z C:\>Isto pode ser uma boa idia para qualquer dos comandos que deixam voc "preso" no modo interativo quandodeveria estar rodando em lote. Redirecionando a entrada de arquivo de comando, GSEC ler a linha de textodesse arquivo a qualquer momento que necessitar entrada de usurio. Forando-o a ler o comando quit , vocconsegue sair.NotaO comando -z no necessita de um -user e -password, ele mostrar os detalhes da verso e ento dir avoc que no tem um nome/senha - mas voc pode ignorar tranqilamente a mensagem.Executando GSEC RemotamenteGSEC pode ser usado para administrar o BD de segurana num servidor remoto. Para isto voc deve especificaro nome do BD de segurana na linha de comando como mostrado no seguinte exemplo que conecta meu clienteGSEC em Windows XP como o meu servidor Linux chamado Ganymede e permite que eu gerencie usuriosno meu servidor Linux.C:\>gsec -database ganymede:/opt/firebird/security.fdb -user sysdba -password masterkeyGSEC>NotaNo exemplo acima, eu quebrei a linha de comando em duas linhas. Isto para prevenir a mesma "caia fora"dolado direito da pgina quando renderizada como um documento PDF. O comando inteiro pode, e deve, serdigitado em uma nica linha.Uma vez conectado no BD de segurana remoto, voc pode manipular usurios da maneira normal tanto emmodo interativo e ou em lote (como descrito acima).Novidades do Firebird 2.0Sob o FIrebird 2.0, existe uma nova opo de linha de comando -server a qual permite ao adminstrador acapacidade de manter detalhes de usurios remotamente sem ter que relembrar o caminho completo do BD desegurana em todos os servidores Firebird.Usando esta nova opo em linha de comando similar a corrente opo -database, porm, sob o Firebird2.0 a opo -database ser censurada e completamente removida numa verso futura.Tomando o exemplo de acesso remoto acima, no Firebird 2.0 a linha de comando ser similar a isto:C:\>gsec -server ganymede -user sysdba -password masterkeyGSEC>GSEC13A verso do GSEC provida com o Firebird 2.0 pode ser utilizada para manter BDs de segurana de versesanteriores do FIrebird e, esperado, verses do Interbase apartir da 6.0 e acima. Entretanto, na verso 2.0 doFirebird, o formato do BD de segurana ser mudado e por causa disto, GSEC de verses anteriores no poderoser utilizados para manter o BD de segurana do Firebird 2.0Truques do GSECA seguir uma linha resumida de truques e idiossincrasias que detectei no meu uso do GSEC. Alguns desses jforam mencionados acima, outros podem no ter sido. Coletando todos em um s lugar, voc poder ser capazde descobrir o que est acontecendo se tiver problemas.Usurios Normais versus Usurios PrivilegiadosApenas um usurio sysdba pode alterar o BD de segurana. Usurios normais podem rodar o GSEC, mas apenaslistar os contedos. A seguir mostramos o que acontece quando tentar alterar o banco quando rodando GSECcomo um usurio normal.C:\>gsec -user norman -password normanGSEC> add myuser -pw mypasswordadd record errorno permission for insert/write access to TABLE USERSUsurios normais podem apenas mostrar os detlhes do BD de segurana.C:\>gsec -user norman -password norman -display user name uid gid full name------------------------------------------------------------------------SYSDBA 0 0NORMAN 0 0 Norman DunbarEPOCMAN 0 0 Benoit Gilles MasciaDifferenas entre Modo Lote e InterativoOs comandos do GSEC aplicam-se a ambos os modos de operao, porm, quando rodando em modo lote, vocdeve prefixar o comandos com um trao (-) ou ser apresentada uma mensagem de erros similar a seguinte:C:\>gsec -user sysdba -password masterkey displayinvalid parameter, no switch definederror in switch specificationsGSEC>Note tambm que voc ser deixado em modo interativo quando um erro ocorrer. A linha de comando corretadeve ter um trao na frente do comando display, como segue:C:\>gsec -user sysdba -password masterkey -display user name uid gid full name------------------------------------------------------------------------SYSDBA 0 0GSEC14NORMAN 0 0 Norman DunbarEPOCMAN 0 0 Benoit Gilles MasciaDesta vez, GSEC cumpriu seu papel, mostrandos todos usurios conhecidos e terminou o utilitrio.AtenoSe as variveis de ambiente ISC_USER e ISC_PASSWORD foram definidas, e isso no uma boa idia porrazes de segurana, GSEC pode rodar sem passar as opes -user ou -password.AtenoAssim como todos os utilitrio de linha de comando, melhor usar a verso do GSEC que vier junto com oseu servidor no pacote de instalao.Cdigos de Sada em Modo LoteQuando executando GSEC sob Windows, voc pode capturar o cdigo de sada em %ERRORLEVEL% e verificarse houve sucesse ou fracasso do ltimo comando executado.Quando o sistema operacional for Unix - qualquer quer seja o sabor - o cdigo de sada pode ser achado navarivel $?.Desafortunadamente, GSEC aparente sempre retornar zero e isso torna impossvel criar um script que saiba lidarcom erros tanto em Windows como em Unix. Triste, porm verdadeiro.Erros em Modo Lote Muda para o Modo InterativoAlgumas vezes, quando executando em modo lote, uma condio de erro no GSEC resulta no mesmo passandoao modo interativo. Isto no muito se voc iniciou o GSEC em modo lote de um script, por cause que o scriptvai ficar esperando algo ser digitado.15Captulo 3GSPLIT O filtro dearquivos de backupdivididos do FirebirdIntroduoNo passado, muitos systemas operacionais impuseram um limite que define quo grande um arquivo nico podeficar. Este limite foi 2Gb em alguns sistemas, e 4Gb em outros. For exemplo, nos sistemas Unix HP-UX 10.20 ou11.00, o tamanho mximo de arquivo 2Gb a no ser que o arquivo tenha a opo de arquivos largos habilitada.Este limite ainda existe em alguns sistemas.GSPLIT um utilitrio de filtro introduzido no Interbase 5.0 o qual permite que o arquivo de sada do utilitrioGBAK (quando fazendo backup do banco de dados) para divid-lo em um nmero de pedaos para serem jun-tados e usados para restaurar um banco de dados. At o Interbase 5.0, os arquivos de sada eram limitados a 2Gbpelo prprio utilitrio GBAK - mesmo em sistemas que permitiam arquivos chegarem a 4Gb.Neste captulo, nos teremos: Opes de linha de comandos para o GSPLIT. Opes do GSPLIT e seus parmetros. Dividindo backups usando GSPLIT. Juntando pedaos de backups usando GSPLIT.NotaA partir do Interbase 6.0, GSPLIT no mais necessrio pois GBAK arquivos grande serem divididos direta-mente. Os detalhes para o GSPLIT dados aqui so apenas para referncia e voc est advertido a usar o GBAKpara dividir grandes arquivos de backup mesmo que o GSPLIT seja suprido com sua verso do Firebird.GSPLIT suprido apenas com a verso Windows do Firebird 1.5, no sendo distribudo com a verso Linux.Linux no requer um utilitrio separado para dividir arquivos pois j possui o comando split assim como usandoo GBAK.AtenoEm testes com o Firebird 1.5, em Windows XP Home, GSPLIT no parece funcionar e sempre retorna erro 9.Por causa dos problemas em fazer GSPLIT funcionar corretametne, como voc pde ver acima neste captulo,voc est avisado para usar as capacidades de diviso e juno do utilitrio GBAK em vez de ficar tentantofazer o GSPLIT funcionar para voc.GSPLIT16Opes de linha de comando GSPLITGSPLIT possui trs opes de linha de comando, embora, estritamente falando, a opo -help no realmentevlida. Estas so: -split_bk_file Especifica que o GSPLIT deve ser usado para dividir a sada do GBAK em um nmero de arquivos diferentescomo parte do backup do banco de dados. Esta opo pode ser encurtada se requerido, desde que pelo menso-s seja especificada: -join_bk_file Especifica que o GSPLIT ser usado para reunir um certo nmero de arquivos e usar o resultado como entradapara o GBAK como parte de uma restaurao de um banco de dados. Esta opo pode ser encurtada serequerido, desde que pelo menos -j seja especificado. -helpUsando a opo -help, especificando uma opo ilegal, ou omitindo todas as opes, mostra a seguinte in-formao:gsplit: invalid option '-help'gsplit: Command Line Options Are:gsplit -S[PLIT_BK_FILE] {k|m|g} [... [{k|m|g}]] or gsplit -J[OINT_BK_FILE] [... ]gsplit: option can be abbreviated to the unparenthesized charactersgsplit: Exiting before completion due to errorsNotaTome nota do erro no texto de help acima. O comando de linha de comando para juntar mltiplas sees deum grande backup no -JOINT_BK_FILE como mostrado, mas de fato -JOIN_BK_FILE.Nota do Tradutor: Alm disso o prprio GSPLIT rejeita a opo -help (com a mensagem invalid option'-help').Parmetros dos Comandos do GSPLITTodos as duas opes da linha de comandos do GSPLIT requerem parmetros. Quando dividindo um backup,os parmetros so: -S[PLIT_BK_FILE] {k|m|g} [... [{k|m|g}]]O primeiro parmetro o primeiro nome de arquivo, seguido pelo tamanho mximo ao qual permitido ter.Voc pode especificar o tamanho em kylobytes, megabytes ou gigabytes. No deve haver nenhum espaoGSPLIT17entre os dgitos dos parmetros e a letra da unidade. Deve haver um espao entre o nome do arquivo e otamanho.Os restantes dos parmetros especificam os outros arquivos. O arquivo final, porm, no deve ter um tamanhoespecificado por causa que este ser usado armazenar os bytes restantes aps os outros arquivos terem sidepreenchidos at sua capacidade. Se houvesse um tamanho especificado, esse ser sumariamente ignoradosem exibir mensagens de erro ou aviso.Se voc tiver um arquivso de backup que tiver 4Gb e voc pedir apenas dois arquivos, cada com 1Gb emtamanho, GSPLIT ir ignorar o tamanho do arquivo final e o preencher at que a operao se complete.O utilitrio previne que arquivos com menos de 1Mb e ir exibir uma mensagem de erro se voc tentarespecificar um arquivo menor que isso.NotaGSPLIT corretamente especifica um Kilobyte como 1024 bytes, um Megabyte como 1024 Kilobytes e umGigabyte como 1024 Megabytes. -J[OIN_BK_FILE] [... ]Para juntar arquivos e us-los para restaurar um banco de dados, voc simplesmente especifica os nomes dosarquivos na ordem correta. Se eles no estiverem na ordem correta, GSPLIT ir reclamar e o restore serabandonado.Dividindo BackupsPara executar GSPLIT, use-o como um filtro na linha de comando do GBAK, como o exemplo seguinte mostra:C:\>gbak -b norman.fdb stdout | gsplit -split norman_1.fbk 1m norman_2.fbk 1m norman_3.fbkAtenoO comando acima assume que as variveis de ambiente ISC_USER e ISC_PASSWORD foram definidas. Parao caso desta demonstrao, isso aceitvel, mas num sistema real, considere as implicaes antes de definiressas variveis.Alm disso, o comando acima foi dividido em duas linhas pra permitir que a gerao de pdf deste manualfuncionasse. Na realidade, o comando tem que digitado em uma nica linha. bastante infeliz que o utilitrio no parece funcionar, como a seguinte tela mostra:C:\>gbak -b norman.fdb stdout | gsplit -split norman_1.fbk 1m norman_2.fbk 1m norman_3.fbkfail to read input from ib_stdin, errno = 9gsplit: progam fails to generate multi-volumn back-up filesDone with volume #0, "stdout" Press return to reopen that file, or type a new name followed by return to open a different file. Name:^CGSPLIT18Se voc digitar um nome de arquivo no prompt este ser usado como uma completa descarga do banco de dados,ento seja cuidadoso para no sobrescrever algo importante. Eu prefiro pressionar CTRL-C neste ponto paraevitar quaisquer problemas.O utilitrio atualmente criou o primeiro arquivo da lista acima, norman_1.fpk, e escrito 100 bytes de umcabealho especial que identifica o mesmo como sendo um arquivo criado pelo GSPLIT.AtenoO comando acima assume que as variveis de ambiente ISC_USER e ISC_PASSWORD foram definidas. Parao caso desta demonstrao, isso aceitvel, mas num sistema real, considere as implicaes antes de definiressas variveis.Alm disso, o comando acima foi dividido em duas linhas pra permitir que a gerao de pdf deste manualfuncionasse. Na realidade, o comando tem que digitado em uma nica linha.NotaOs erros de ortografia em "program" e "volume" foram produzidos pelo utilitrio.Juntando Arquivos de BackupSupondo que o backup acima tivesse funcionado, o comando para restaura um de um nmero de arquivos criadospelo GSPLIT seria como segue:C:\>gsplit -join norman_1.fbk norman_2.fbk norman_3.fbk | gbak -c stdin create_norman.fdbAtenoAlm disso, o comando acima foi dividido em duas linhas pra permitir que a gerao de pdf deste manualfuncionasse. Na realidade, o comando tem que digitado em uma nica linha.Se voc tiver um nmero arquivos de backup divididos gerados usando o prprio GBAK e no filtrado atravsdo GSPLIT, voc no pode GSPLIT para junt-los para uma restaurao como o prximo exemplo mostra:C:\>gsplit -join norman_1.fbk norman_2.fbk norman_3.fbk | gbak -c stdin create_norman.fdbgsplit: expected GSPLIT description recordgsplit: Exiting before completion due to errorsgsplit: progam fails to join multi-volumn back-up filesgbak: ERROR: expected backup description recordgbak: Exiting before completion due to errorsAtenoAlm disso, o comando acima foi dividido em duas linhas pra permitir que a gerao de pdf deste manualfuncionasse. Na realidade, o comando tem que digitado em uma nica linha.Aparenta que GSPLIT e GBAK possuem diferentes informaes de cabealho nos arquivos de backup e os doisno so compatveis.GSPLIT19NotaOs erros de ortografia em "program" e "volume" foram produzidos pelo utilitrio.20Captulo 4Diversos Script para Firebirdem Sistemas Linux/UnixIntroduoAps a uma instalao com sucesso do Firebird 1.5, o diretrio /opt/firebird/bin conter uma certonmero de scripts de shell. Este captulo da detalhes do que server esse scripts e como eles so usados.Neste captulo, ns temos: changeDBAPassword.sh createAliasDB.sh fb_config changeRunUser.sh restoreRootRunUser.sh changeGdsLibraryCompatibleLink.shNotaA lista acima correta no momento de escrita deste documento e aplica-se ao Firebird 1.5 SuperServer ins-talados num sistema Linux. Outros sabores de Unix podem ter diferentes scripts. Eu no tenho condies dediscutir as mudanas potenciais porque eu no tenho acesso a outros sistemas Unix.Mudando a senha do SYSDBAO script changeDBAPassword.sh permite a mudana da senha do usurio SYSDBA e que vrios scripts deinicializao a ter sua propriedade mudada de acordo. O script rodado em modo no-interativo como partedo processo de instalao para criar uma senha inicial aleatoriamente gerada a qual armazenada no arquivo /opt/firebird/SYSDBA.password. A senha subseqentemente usada no script de inicializao /etc/rc.d/init.d/firebird, a qual possui um symlink apontando apara /etc/init.d/firebird. O bancode dados de segurana /opt/firebird/security.fdb tambm atualizado com a nova senha.Diversos Script Linux/Unix21CuidadoO script deve ser rodado como usurio root, e, quando executado, changeDBAPassword.sh ir perguntar a vocsenha corrente do SYSDBA e ento a nova senha. Ambas iro aparecer na tela ento para melhorar a segurana,no permita a ningum olhar sobre o seu ombro quando rodar o script.Aps a execuo do script, o arquivo /opt/firebird/SYSDBA.password conter a senha em texto puro,ento tenha certeza que este arquivo no ser legvel por ningum alm do root.A seguir um exemplo de execuo do script para mudar a senha do SYSDBA de 'masterkey' para 'biroguin' aqual uma palavra inventada, a qual deve menos crackevel ou adivinhvel.# cd /opt/firebird/bin# ./changeDBAPassword.shPlease enter current password for SYSDBA user : masterkeyPlease enter new password for SYSDBA user : biroguinGSEC> GSEC>Running ed to modify /etc/init.d/firebird#CuidadoTodas as vezes que voc mudar a senha do SYSDBA usando o utilitrio GSEC, voc deve mudar o script deinicializao tambm. Para garantir uma atualizao completa, sempre use este script quando mudar a senhado usurio SYSDBA.Criando nomes de alias de banco de dadosO script createAliasDB.sh permite que a criao de um novo banco de dados, e um alias que um banco dedados seja criado no arquivo /opt/firebird/aliases.conf.NotaO script createAliasDB.sh deve ser executado como usurio root.Se o seu sistema no for configurado propriamente, o passo da criao um banco de dados pode falhar mas o aliasainda ser adicionado ao arquivo de alias. Isto pode levar a voc subseqentemente ser incapaz de adicionar oalias propriamente, porque o script verifica para no sobrescrever um alias existente. Voc ter que manualmenteeditar o alias para remover o alias invlido.Para criar novos bancos de dados, eles devem ser propriedade do usurio firebird, e tambm propriedade dogrupo firebird. A segue mostramos um novo diretrio sendo criado pelo usurio root para permitir que bancosde dados Firebird serem criados.# cd /u01# mkdir databases# chown firebird:firebird databases#Neste ponto o diretrio /u01/firebird disponvel para uso como repositrio para um ou mais bancos dedados Firebird. Obviamente, no exemplo acima, o diretrio /u01 j existia.Diversos Script Linux/Unix22Parmetros createAliasDB.shPara rodar o script createAliasDP.sh, use uma linha de comando similar seguinte:# createAliasDB.sh O script precisa de dois parmetros na linha de comando, ambos obrigatrios: new_aliasO primeiro parmetro o novo alias que voc deseja criar. O alias no pode existir previamente no arquivode alias, ou um erro ser mostrado e nenhuma ao posterior ser efetuada. database_filenameO segundo parmetro especifica o caminho copleto do arquivo de banco de dados. Voc no pode especificarum caminho relativo pois isso pode levar a nomes de arquivos de banco de dados invlidos em tempo deconexo. O script ir rejeitar qualquer tentativoa de passar um caminho relativo em vez de um caminhocompleto.Um novo banco de dados ser criado se o nome passado no script no exista previamente. Se o banco dedados j existir previamente, apenas o alias ser criado e adicionado ao arquivo de alias.Uma ajuda com arquivos makeO script fb_config intencionaod para ser usado com um arquivo make para suprir vrios ajustes e opesde compilador as quais so especficas da instalao sendo usada.NotaEste script pode ser executado por qualquer usurio que tiver privilgios de execuo nele. Voc no precisaser root para usar este script.Opes fb_configPara rodar o script fb_config, use uma linha de comando similar a seguinte:fb_config [ [...]]O script precisa de uma ou duas opes na linha de comando: --helpEste parmetro mostra a lista de opes permitidas. No deve ser usada em adio a outras opes. --cflagsDiversos Script Linux/Unix23Esta opo retorna a lista de diretrios onde esto os arquivos de incluso do Firebird. requerida por com-piladores C e C++ para permitir que as diretivas #include sejam corretamente resolvidas. No meu sistema,esta opo retona '-I/opt/firebird/include' . --libsEsta opao retorna a lista de diretrios onde bibliotecas do Firebird esto localizadas e a lista dessas biblio-tecas que so requeridas para serem linkeditadas pelo linkeditor para uma aplicao cliente servidor Firebird.Esta opo retorna '-L/opt/firebird/lib -lfbclient' no meu sistema. --embedlibsEsta opo retorna a lista de diretrios onde esto as bibliotecas do Firebird e uma lista dessas bibliotecasque so requeridas para serem linkeditadas pelo linkeditor para criar uma aplicao embarcada Firebird. Estaopo retorna '-L/opt/firebird/lib -lfbembed' no meu sistema. --bindirNo meu sistema, essa opo retorna '/opt/firebird/bin' como o caminho completo do diretrio /bindo Firebird. --versionEsta opo retorna uma string de verso de 3 partes feita da concatenao verso do build do Firebird,um trao, a verso do pacote, um ponto e a arquitetura do sistema. No meu laptop sistema Linux retorna'1.5.0.4290-0.i686'.A seguir uma breve treco de um arquivo make o qual mostra como definir duas macros, FBFLAGS e FBLIBS,e as inicia com os valores corretos usando o fb_config. Note o uso caractere crase (`) em vez da aspa simples (')....FBFLAGS = `fb_config --cflags`FBLIBS = `fb_config --libs`...Mudando o usurio deexecuo do servidor FirebirdExistem duas verses do script changeRunUser.sh, a prefixada 'SS' para instalaes Super Server e a outraprefixada 'CS' para instalaes Classic Server. A seguinte explanao descreve somente a verso SuperServer.NotaEste script deve ser executado como root.O script SSchangeRunUser.sh permite que o usurio e grupo, sob o qual o servidor roda, seja alterado. Porpadro, estes so o grupo e usurio firebird, porm, em verses anteriores rodavem como usurio root que indesej sob o ponto de vista de segurana do sistema e permitia que bancos de dados sejam criados em qualquerlugar do sistema de arquivos. Com o novo usurio Firebird, restries podem ser colocadas em onde bancos dedados podem ser criados.Diversos Script Linux/Unix24O script muda o o grupo e o usurio proprietrio de um nmero de arquivos no diretrio de instalao do Firebird,o arquivo de log e tambm script de inicializao /etc/rc.d.init.d/firebird o qual usado para inicare parar o servidor Firebird.Parmetros do SSchangeRunUser.shPara rodar o script, use uma linha de comando similar seguinte:SSchangeRunUser.sh O script precisa de dois parmetros na linha de comando, ambos os quais so opcionais de modo que voc serperguntado caso ambos sejam omitidos. Se voc suprir apenas um parmetros, assumido que seja o nome dousurio e voc ser perguntado pelo nome do grupo. usernameEste parmetro configura o nome do usurio abaixo do qual o SuperServer ir ser executado. O valor suprido validado contra as entradas em /etc/passwd. groupnameEste parmetro configura o nome do grupo sob o qual SuperServer ir ser executado. O valor suprido servalidade contra as entradas em /etc/group.O seguinte exemplo mostra o uso do SSchangeRunUser.sh para mudar o grupo e o usurio proprietriodo firebird. O usurio e o grupo firebird atualmente o padro quando o Firebird instalado ento no hnecessidade de voc rodar o scritp a no ser que voc tenha j mudado esses detalhes.# cd /opt/firebird/bin# ./SSchangeRunUser.sh firebird firebirdUpdating /opt/firebirdUpdating startup scriptCompleted#Restaurando root como o Usuriode execuo do Servidor FirebirdExistem duas verses do script restoreRootRunUser.sh. O prefixado 'SS' para instalaes SuperServere aquele prefixado 'CS' para instaes Classic Server. A explanao seguinte descreve somente a verso Su-perServer.There are two versions of the restoreRootRunUser.sh script. The one prefixed 'SS' is for Super Serverinstallations and the one prefixed 'CS' is for Classic Server installations. The following describes the SuperServer version only.NotaEste script deve ser executado como root.Diversos Script Linux/Unix25Este script simplesmente restaura o antigo formato de instalao onde o Firebird SuperServer roda sob o grupo eusurio root. Este script simplesmente um empacotamente do script SSchangeRunUser.sh, passando rootcomo nome de usurio e nome de grupo.Rodando aplicaesembarcadas ou cliente/servidorEste script, changeGdsLibraryCompatibleLink.sh, disponvel somente com instalaes Classic Ser-ver, e usado para mudar o symlink libgds.so para a biblioteca apropriadas para a instalao. Existem duaspossveis bibliotecas que o symlink pode apontar: /opt/firebird/lib/libfbclient.so para aplicaes cliente/servidor. /opt/firebird/lib/libfbembed.so para aplicaes embarcadas do servidor.Aps a instalao, o symlink libgds.so aponta para a biblioteca cliente servidor por padro, ento se vocest rodando uma aplicao embarcadda, voc deve rodar este script para apontar o libgds.so para bibliotecaembarcada.NotaEste script deve executado como root.O exemplo a seguir mostra como este script pode ser usado para mudar do servidor embarcado para uso clien-te/servidor:# cd /opt/firebird/bin# ./changeGdsCompatibleLibraryLink.shFor classic server there are two optional backward compatible clientlibraries. These are libfbclient.so and libfbembed.so.libfbclient.so) enables your client to be multithreaded but must connect to a database via a server.libfbembed.so) allows the client to directly open the database file, but does not support multithreaded accessYour current setting is:/usr/lib/libgds.so -> /opt/firebird/lib/libfbembed.soWhich option would you like to choose(client|embed|remove) [client] client#A opo default client que ir recriar o symlink para a biblioteca cliente/servidor, embed ir recriar osymlink para o servidor embarcado, enquanto remove ir remover o symlink.No h mensagens mostradas para informar o sucesso do script; porm, se voc rodar isso de novo, voc irperceber que o ajuste corrente deve ser diferente daquela mostrada quando previamente executou o script.26Captulo 5Prximos utilitriosComo isto um trabalho em progresse, por favor desculpe o "repentino" fim deste livro. Assim que eu pesquisare documentar os utilitrios de linha de comando restante, eu adicionarei novos captulos neste livro. At omomento que o livro estiver completo, este captulo dar breves detalhes do que eu ainda necessito completar. FB_LOCK_PRINT o utilitrio que imprime detalhes da pgina de travamentos internais do banco de dados. GBAK utilitrio de backup e restore do banco de dados. Tambm permite alterar vrios parmetros internosdo banco de dados. GDEF um utiltrio de metadados que foi removido na poca do Interbase 4.0 e retornou na verso 6 decdigo aberto. A funcionalidade do mesmo provavelmente redundante. GFIX permiter tentar consertar bancos de dados corrompidos, inicializar e parar bancos de dados, resolvertransaes "no limbo" em mltiplos bancos de dados, mudar o nmero de buffers de pgina e outras coisasmais. GPRE o pr-processador que converte cdigo fonte, o qual pode ser escrito em um certo nmero de lingua-gens, contendo vrios "pseudo-cdigos" SQL embutidos em chamadas para o engine do Firebird. GSTAT permite ao administrador do Firebird a capacidade de obter estatsticas sobre a sade geral e utiliza-o de vrias partes do banco de dados. ISQL o utilitrio interativo que permite a execuo de consultas ad-hoc contra um banco de dados Firebird. uma ferramenta console (modo texto) - assim como muitos dos utilitrios - e fornecido com todas asdistribuies do Firebird. ISQL usualmente o melhor lugar para testar seus scripts e comandos pela primeiravez. QLI Interpretador de Linguagem de Consulta que foi removido a partir do Interbase 4.0 mas retornou noInterbase 6.0 por causa da deciso de abrir o cdigo do Interbase.Norman Dunbar.Utilitrios em Linha de Comando do FirebirdndiceIntroduoGSEC Utilitrio do Arquivo de senhas do FirebirdIntroduoOpes em linha de comandoComandos do GSECModo InterativoMostrando os detalhes do usurioAdicionando novos usuriosEliminando UsuriosAlterando informaes de UsuriosAjudaInformao de versoModo Em loteMostrando Detalhes do UsurioAdicionando novos usuriosEliminando UsuriosAlterando Informao de UsuriosInformao de versoExecutando GSEC RemotamenteNovidades do Firebird 2.0Truques do GSECUsurios Normais versus Usurios PrivilegiadosDifferenas entre Modo Lote e InterativoCdigos de Sada em Modo LoteErros em Modo Lote Muda para o Modo InterativoGSPLIT O filtro de arquivos de backup divididos do FirebirdIntroduoOpes de linha de comando GSPLITParmetros dos Comandos do GSPLITDividindo BackupsJuntando Arquivos de BackupDiversos Script para Firebird em Sistemas Linux/UnixIntroduoMudando a senha do SYSDBACriando nomes de alias de banco de dadosParmetros createAliasDB.shUma ajuda com arquivos makeOpes fb_configMudando o usurio de execuo do servidor FirebirdParmetros do SSchangeRunUser.shRestaurando root como o Usurio de execuo do Servidor FirebirdRodando aplicaes embarcadas ou cliente/servidorPrximos utilitrios