Escolar Documentos
Profissional Documentos
Cultura Documentos
Norman Dunbar
ndice
1. Introduo ......................................................................................................................................... 1 2. GSEC Utilitrio do Arquivo de senhas do Firebird ............................................................................ 3 Introduo ...................................................................................................................................... 3 Opes em linha de comando ......................................................................................................... 4 Comandos do GSEC ...................................................................................................................... 5 Modo Interativo ............................................................................................................................. 7 Mostrando os detalhes do usurio ........................................................................................... 7 Adicionando novos usurios ................................................................................................... 8 Eliminando Usurios .............................................................................................................. 8 Alterando informaes de Usurios ......................................................................................... 8 Ajuda .................................................................................................................................... 9 Informao de verso ............................................................................................................. 9 Modo Em lote ............................................................................................................................ 9 Mostrando Detalhes do Usurio ............................................................................................ 10 Adicionando novos usurios ................................................................................................. 10 Eliminando Usurios ............................................................................................................ 10 Alterando Informao de Usurios ........................................................................................ 11 Informao de verso ........................................................................................................... 11 Executando GSEC Remotamente .................................................................................................. 12 Novidades do Firebird 2.0 .................................................................................................... 12 Truques do GSEC ........................................................................................................................ 13 Usurios Normais versus Usurios Privilegiados .................................................................... 13 Differenas entre Modo Lote e Interativo .............................................................................. 13 Cdigos de Sada em Modo Lote .......................................................................................... 14 Erros em Modo Lote Muda para o Modo Interativo ............................................................... 14 3. GSPLIT O filtro de arquivos de backup divididos do Firebird .......................................................... 15 Introduo .................................................................................................................................... 15 Opes de linha de comando GSPLIT ........................................................................................... 16 Parmetros dos Comandos do GSPLIT .......................................................................................... 16 Dividindo Backups ....................................................................................................................... 17 Juntando Arquivos de Backup ....................................................................................................... 18 4. Diversos Script para Firebird em Sistemas Linux/Unix ....................................................................... 20 Introduo .................................................................................................................................... 20 Mudando a senha do SYSDBA ..................................................................................................... 20 Criando nomes de alias de banco de dados .................................................................................... 21 Parmetros createAliasDB.sh ................................................................................................ 22 Uma ajuda com arquivos make ..................................................................................................... 22 Opes fb_config ................................................................................................................. 22 Mudando o usurio de execuo do servidor Firebird ..................................................................... 23 Parmetros do SSchangeRunUser.sh ...................................................................................... 24 Restaurando root como o Usurio de execuo do Servidor Firebird ................................................ 24 Rodando aplicaes embarcadas ou cliente/servidor ....................................................................... 25 5. Prximos utilitrios .......................................................................................................................... 26
iv
Captulo 1
Introduo
O kit de distribuio do Firebird 1.5 instala um conjunto de programas utilitrios para ajudar na utilizao do seu servidor e bancos de dados Firebird. Este livro introduz voc para os vrios utilitrios, alguns mais teis do que outros. Todos estes utilitrios podem ser encontrados no diretrio /bin em ambiente Unix (ou na pasta \bin em Windows) 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. Nota
do Tradutor: nas verses em Portugus do Windows, a localizao padro em c:\Arquivos de Programas\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 internos do banco de dados. GDEF um utiltrio de metadados que foi removido na poca do Interbase 4.0 e retornou na verso 6 de cdigo aberto. A funcionalidade do mesmo provavelmente redundante. GFIX permiter tentar consertar bancos de dados corrompidos, inicializar e parar bancos de dados, resolver transaes "no limbo" em mltiplos bancos de dados, mudar o nmero de buffers de pgina e outras coisas mais. GPRE o pr-processador que converte cdigo fonte, o qual pode ser escrito em um certo nmero de linguagens, 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 usurio privilegiado) 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, achados em alguns sistemas operacionais, ao criar backups de grandes bancos de dados. Este utilitrio distribudo para Windows somente e, infelizmete, parece no funcionar. Por sorte nossa, GBAK permite que os arquivos de backup possam ser quebrados em vrias partes, de modo que GSPLIT no necessrio. Em sistemas Unix existem 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 utilizao 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 as distribuies do Firebird. ISQL usualmente o melhor lugar para testar seus scripts e comandos pela primeira vez. 1
Introduo
QLI Interpretador de Linguagem de Consulta que foi removido a partir do Interbase 4.0 mas retornou no Interbase 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. Nota
Este 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 disponveis para download. Dessa maneira, ser um trabalho lento e gradual de criao de manuais teis.
Captulo 2
O BD (banco de dados) Firebird que guarda os detalhes de todos os usurios BD de segurana. Este localizado num 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 Programas\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 guarda todos os detalhes de cada usurio com acesso permitido a qualquer BD do Firebird. Tendo dito isso, roles de banco 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 sejam adicionados, alterados e eliminados usurios do sistema. Nem todas as colunas na tabela de usurios podem ser mostradas, mesmo que possam ser alteradas. A colunas da senha do usurio nunca mostrada pelo GSEC, mas voc pode mud-la, por exemplo. Assim como mutios utilitrios em linha de comando que vm como o Firebird, GSEC pode ser executado em modo interativo ou em modo lote, e possui uma tela de help mostrando todas as opes do utilitrio; ns veremos isso um pouco mais tarde. Vindo aps este captulo, teremos Opes em linha de comando para o GSEC. 3
GSEC 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.
GSEC
command line usage: gsec [ <options> ... ] <command> [ <parameter> ... ] interactive usage: gsec [ <options> ... ] GSEC> <command> [ <parameter> ... ] available options: -user <database administrator name> -password <database administrator password> -role <database administrator SQL role name> -database <security database> -z available commands: adding a new user: add <name> [ <parameter> ... ] deleting a current user: delete <name> displaying all users: display displaying one user: display <name> modifying a user's parameters: modify <name> <parameter> [ <parameter> ... ] help: ? (interactive only) help displaying version number: z (interactive only) quit interactive session: quit (interactive only) available parameters: -pw <password> -uid <uid> -gid <uid> -fname <firstname> -mname <middlename> -lname <lastname>
Comandos do GSEC
Aps as opes sortidas, vm agora os comandos que voc deseja executar. Os seguintes comandos valem tanto em modo interativo como no modo em lote, mas no modo interativo os traos ('-') antes dos comandos no so necessrios. -add <name> [ <parameter> ... ] Este comando adiciona um novo usurio ao BD. Voc pode opcionalmente adicionar outros detalhes como nome e tambm a senha para o novo usurio, tudo no mesmo comando add. Alternativamente, voc pode adicionar o usurio e depois usar o modify para preencher os detalhes faltantes. 5
GSEC
Nota
do Tradutor: A informao nome (name) na verdade foi quebrada em 3 campos no BD de segurana do Firebird: FIRST_NAME, MIDDLE_NAME e LAST_NAME. Existe tambm um quarto campo calculado FULL_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; enquando que aqui o comum um varchar de 150 caracteres quando tanto.
-delete <name> Este comando remove o usurio nomeado acima do banco. Todos os detalhes do usurios so removidos e no pode desfeito. Caso precise, adicione o usurio novamente. -display [ <name> ] Este comando mostra os detalhes de um usurio, ou de todos os usurios caso nenhum nome de usurio tenha sido especificado. A senha nunca mostrada. -modify <name> <parameter> [ <parameter> ... ] Modifica os detalhes e informaes do usurio A opo <name> como voc deseja que o usurio seja conhecido quando conectando a BD do Firebird. Alguns dos comandos acima precisam de parmetros e estes so um, ou mais dos seguintes: -pw <password> Este parmetro permite que voc especifique uma nova senha para seu usurio. Se voc omitir a senha, a senha corrente ser removida e o usurio ser incapaz de conectar a qualquer BD Firebird. A senha pode ter mais de 8 caracteres, mas quando especificar uma para o GSEC, ou logando em BDs, os caracteres extras sero sumariamente ignorados. -uid <uid> -gid <gid>
-uid e -gid so usados em alguns sistemas POSIX para entrar o userid e groupid do Unix como encontrados nos arquivos de configurao /etc/password e /etc/group . Caso no especificados, assumese o valor zero por padro.
-fname [ <first name> ] Este parmetro permite que voc armazene o prenome do usurio no BD. Isto ajuda identificar usurios a partir do nome de login - o qual pode ser abreviado. Voc pode eliminar o prenome bastando no especificar um. -mname [ <middle name> ] O mesmo do acima, s que se aplicando ao nome do meio. -lname [ <lastname> ] Idem, ibidem aos dois acima, s que aplicando-se ao sobrenome.
GSEC
Modo Interativo
Para usar o GSEC em modo interativo, inicie o utilitrio com esta linha de comando:
C:\>gsec -user sysdba -password masterkey GSEC>
Nota
bvio que a senha do SYSDBA deve ser modificada em um sistema de produo. A linha de comando acima s 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 ser de 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> quit C:\>
As seguintes sees mostram como efetuar vrios comandos em modo interativo. assumido que voc esteja rodando o utilitrio como sendo o usurio sysdba.
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 Mascia GSEC>
Se voc entrar o nome de um usurio no existente como parmetro para o comando display, nada mostrado e o GSEC continua em modo interativo.
GSEC> display alison GSEC>
GSEC
Eliminando Usurios
Da 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 <name> para se certificar de que o usurio foi eliminado com sucesso.
GSEC> delete newuser GSEC> GSEC> display user name uid gid full name -----------------------------------------------------------------------SYSDBA 0 0 NORMAN 0 0 Norman Dunbar EPOCMAN 0 0 Benoit Gilles Mascia GSEC>
Mas, de outra forma, voc tentar eliminar um usurio inexistente, GSEC mostrar uma mensagem de erro, e ir para o SO:
GSEC> delete newuser record not found for user: NEWUSER C:\>
GSEC
GSEC> modify norman -mname MiddleName -fname Fred GSEC> GSEC> display norman user name uid gid full name -----------------------------------------------------------------------NORMAN 0 0 Fred MiddleName Dunbar GSEC>
Se voc deseja remover uma ou mais das informaes do usurio, no passe um novo valor para esse atributo.
GSEC> modify norman -mname -fname -lname GSEC> 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!
Ajuda
O comando help, em modo interativo, mostra a mesma tela de ajuda mostrada acima.
Informao de verso
A verso do GSEC pode ser obtida usando o comando z.
GSEC> z gsec version GSEC> WI-V1.5.0.4306 Firebird 1.5
Modo Em lote
Nota
As seguintes descries de operaes em modo lote, assume-se que tenha-se configurado as variveis de ambiente ISC_USER e ISC_PASSWORD. Elas permitem rodar o GSEC sem ter que especificar as opes -user e -password. O reduzindo, por sua vez, a quantidade de cdigo na linha de comando - significando que quando este arquivo XML for renderizado num PDF, toda a linha de comando caiba numa nica linha de uma pgina A4. No seguro manter essas variveis configuradas todo o tempo, ento no deixe-as assim!
Ateno
Em modo lote, quando voc achar que pode verificar o resultado de uma operao consultando %ERRORLEVEL% em Windows ou $? em vrios sabores de Unix. Isto no funciona, pois o resultado sempre retorna zero.
Para 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 Mascia
Nota
do Tradutor: Nas prximas duas sees, ambos os comandos abordados no retornam confirmao de que a operao foi efetuada com sucesso. Voc deve usar a o comando -display ou -display <name> para verificar.
Eliminando Usurios
Abaixo o comando e sua respectiva sada:
C:\>gsec -delete newuser C:\>gsec -display
10
GSEC
user name uid gid full name -----------------------------------------------------------------------SYSDBA 0 0 NORMAN 0 0 Norman Dunbar EPOCMAN 0 0 Benoit Gilles Mascia
Se voc deseja remover um ou mais informaes do usurio, no passe um novo valor para esse atributo.
C:\>gsec -modify norman -mname -fname -lname C:\>gsec -display user name uid gid full name -----------------------------------------------------------------------SYSDBA 0 0 NORMAN 0 0 EPOCMAN 0 0 Benoit Gilles Mascia
Informao de verso
A 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 tem que utilizar o comando interativo quit para sair. Este uma soluo de contorno, a qual segue. A primeira parte mostra o problema.
C:\>gsec -z gsec version GSEC> WI-V1.5.0.4306 Firebird 1.5
A soluo ter um pequeno arquivo contendo o comando quit e forar GSEC a ler este arquivo quando necessitar de entrada de dados do usurio, como segue:
C:\>copy con fred quit ^Z 1 file(s) copied.
11
GSEC
Isto pode ser uma boa idia para qualquer dos comandos que deixam voc "preso" no modo interativo quando deveria estar rodando em lote. Redirecionando a entrada de arquivo de comando, GSEC ler a linha de texto desse arquivo a qualquer momento que necessitar entrada de usurio. Forando-o a ler o comando quit , voc consegue sair. Nota
O comando -z no necessita de um -user e -password, ele mostrar os detalhes da verso e ento dir a voc que no tem um nome/senha - mas voc pode ignorar tranqilamente a mensagem.
Nota
No exemplo acima, eu quebrei a linha de comando em duas linhas. Isto para prevenir a mesma "caia fora"do lado direito da pgina quando renderizada como um documento PDF. O comando inteiro pode, e deve, ser digitado em uma nica linha.
Uma vez conectado no BD de segurana remoto, voc pode manipular usurios da maneira normal tanto em modo interativo e ou em lote (como descrito acima).
12
GSEC A verso do GSEC provida com o Firebird 2.0 pode ser utilizada para manter BDs de segurana de verses anteriores do FIrebird e, esperado, verses do Interbase apartir da 6.0 e acima. Entretanto, na verso 2.0 do Firebird, o formato do BD de segurana ser mudado e por causa disto, GSEC de verses anteriores no podero ser utilizados para manter o BD de segurana do Firebird 2.0
Truques do GSEC
A seguir uma linha resumida de truques e idiossincrasias que detectei no meu uso do GSEC. Alguns desses j foram mencionados acima, outros podem no ter sido. Coletando todos em um s lugar, voc poder ser capaz de descobrir o que est acontecendo se tiver problemas.
Note tambm que voc ser deixado em modo interativo quando um erro ocorrer. A linha de comando correta deve 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 0
13
GSEC
NORMAN EPOCMAN 0 0 0 0 Norman Dunbar Benoit Gilles Mascia
Desta vez, GSEC cumpriu seu papel, mostrandos todos usurios conhecidos e terminou o utilitrio. Ateno
Se as variveis de ambiente ISC_USER e ISC_PASSWORD foram definidas, e isso no uma boa idia por razes de segurana, GSEC pode rodar sem passar as opes -user ou -password.
Ateno
Assim como todos os utilitrio de linha de comando, melhor usar a verso do GSEC que vier junto com o seu servidor no pacote de instalao.
14
Captulo 3
Ateno
Em 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 tentanto fazer o GSPLIT funcionar para voc. 15
GSPLIT
Nota
Tome nota do erro no texto de help acima. O comando de linha de comando para juntar mltiplas sees de um 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').
GSPLIT entre os dgitos dos parmetros e a letra da unidade. Deve haver um espao entre o nome do arquivo e o tamanho. Os restantes dos parmetros especificam os outros arquivos. O arquivo final, porm, no deve ter um tamanho especificado por causa que este ser usado armazenar os bytes restantes aps os outros arquivos terem side preenchidos at sua capacidade. Se houvesse um tamanho especificado, esse ser sumariamente ignorado sem 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 em tamanho, 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 tentar especificar um arquivo menor que isso. Nota
GSPLIT corretamente especifica um Kilobyte como 1024 bytes, um Megabyte como 1024 Kilobytes e um Gigabyte como 1024 Megabytes.
-J[OIN_BK_FILE] <file> [... <file>] Para juntar arquivos e us-los para restaurar um banco de dados, voc simplesmente especifica os nomes dos arquivos na ordem correta. Se eles no estiverem na ordem correta, GSPLIT ir reclamar e o restore ser abandonado.
Dividindo Backups
Para 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.fbk
Ateno
O comando acima assume que as variveis de ambiente ISC_USER e ISC_PASSWORD foram definidas. Para o caso desta demonstrao, isso aceitvel, mas num sistema real, considere as implicaes antes de definir essas variveis. Alm disso, o comando acima foi dividido em duas linhas pra permitir que a gerao de pdf deste manual funcionasse. 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.fbk fail to read input from ib_stdin, errno = 9 gsplit: progam fails to generate multi-volumn back-up files Done with volume #0, "stdout" Press return to reopen that file, or type a new name followed by return to open a different file. Name:^C
17
GSPLIT Se 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 para evitar quaisquer problemas. O utilitrio atualmente criou o primeiro arquivo da lista acima, norman_1.fpk, e escrito 100 bytes de um cabealho especial que identifica o mesmo como sendo um arquivo criado pelo GSPLIT. Ateno
O comando acima assume que as variveis de ambiente ISC_USER e ISC_PASSWORD foram definidas. Para o caso desta demonstrao, isso aceitvel, mas num sistema real, considere as implicaes antes de definir essas variveis. Alm disso, o comando acima foi dividido em duas linhas pra permitir que a gerao de pdf deste manual funcionasse. Na realidade, o comando tem que digitado em uma nica linha.
Nota
Os erros de ortografia em "program" e "volume" foram produzidos pelo utilitrio.
Ateno
Alm disso, o comando acima foi dividido em duas linhas pra permitir que a gerao de pdf deste manual funcionasse. 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 atravs do 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.fdb gsplit: expected GSPLIT description record gsplit: Exiting before completion due to errors gsplit: progam fails to join multi-volumn back-up files gbak: ERROR: expected backup description record gbak: Exiting before completion due to errors
Ateno
Alm disso, o comando acima foi dividido em duas linhas pra permitir que a gerao de pdf deste manual funcionasse. 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 dois no so compatveis. 18
GSPLIT
Nota
Os erros de ortografia em "program" e "volume" foram produzidos pelo utilitrio.
19
Captulo 4
20
Cuidado
O script deve ser rodado como usurio root, e, quando executado, changeDBAPassword.sh ir perguntar a voc senha 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' a qual uma palavra inventada, a qual deve menos crackevel ou adivinhvel.
# cd /opt/firebird/bin # ./changeDBAPassword.sh Please enter current password for SYSDBA user : masterkey Please enter new password for SYSDBA user : biroguin GSEC> GSEC> Running ed to modify /etc/init.d/firebird #
Cuidado
Todas as vezes que voc mudar a senha do SYSDBA usando o utilitrio GSEC, voc deve mudar o script de inicializao tambm. Para garantir uma atualizao completa, sempre use este script quando mudar a senha do usurio SYSDBA.
Se o seu sistema no for configurado propriamente, o passo da criao um banco de dados pode falhar mas o alias ainda ser adicionado ao arquivo de alias. Isto pode levar a voc subseqentemente ser incapaz de adicionar o alias propriamente, porque o script verifica para no sobrescrever um alias existente. Voc ter que manualmente editar o alias para remover o alias invlido. Para criar novos bancos de dados, eles devem ser propriedade do usurio firebird, e tambm propriedade do grupo firebird. A segue mostramos um novo diretrio sendo criado pelo usurio root para permitir que bancos de 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 de dados Firebird. Obviamente, no exemplo acima, o diretrio /u01 j existia. 21
Parmetros createAliasDB.sh
Para rodar o script createAliasDP.sh, use uma linha de comando similar seguinte:
# createAliasDB.sh <new_alias> <database_name>
O script precisa de dois parmetros na linha de comando, ambos obrigatrios: new_alias O primeiro parmetro o novo alias que voc deseja criar. O alias no pode existir previamente no arquivo de alias, ou um erro ser mostrado e nenhuma ao posterior ser efetuada. database_filename O segundo parmetro especifica o caminho copleto do arquivo de banco de dados. Voc no pode especificar um caminho relativo pois isso pode levar a nomes de arquivos de banco de dados invlidos em tempo de conexo. O script ir rejeitar qualquer tentativoa de passar um caminho relativo em vez de um caminho completo. Um novo banco de dados ser criado se o nome passado no script no exista previamente. Se o banco de dados j existir previamente, apenas o alias ser criado e adicionado ao arquivo de alias.
Opes fb_config
Para rodar o script fb_config, use uma linha de comando similar a seguinte:
fb_config <option> [ <option> [...]]
O script precisa de uma ou duas opes na linha de comando: --help Este parmetro mostra a lista de opes permitidas. No deve ser usada em adio a outras opes. --cflags 22
Diversos Script Linux/Unix Esta opo retorna a lista de diretrios onde esto os arquivos de incluso do Firebird. requerida por compiladores C e C++ para permitir que as diretivas #include sejam corretamente resolvidas. No meu sistema, esta opo retona '-I/opt/firebird/include' . --libs Esta opao retorna a lista de diretrios onde bibliotecas do Firebird esto localizadas e a lista dessas bibliotecas 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. --embedlibs Esta opo retorna a lista de diretrios onde esto as bibliotecas do Firebird e uma lista dessas bibliotecas que so requeridas para serem linkeditadas pelo linkeditor para criar uma aplicao embarcada Firebird. Esta opo retorna '-L/opt/firebird/lib -lfbembed' no meu sistema. --bindir No meu sistema, essa opo retorna '/opt/firebird/bin' como o caminho completo do diretrio /bin do Firebird. --version Esta 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` ...
O script SSchangeRunUser.sh permite que o usurio e grupo, sob o qual o servidor roda, seja alterado. Por padro, 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 qualquer lugar do sistema de arquivos. Com o novo usurio Firebird, restries podem ser colocadas em onde bancos de dados podem ser criados. 23
Diversos Script Linux/Unix O 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 inicar e parar o servidor Firebird.
Parmetros do SSchangeRunUser.sh
Para rodar o script, use uma linha de comando similar seguinte:
SSchangeRunUser.sh <username> <groupname>
O script precisa de dois parmetros na linha de comando, ambos os quais so opcionais de modo que voc ser perguntado caso ambos sejam omitidos. Se voc suprir apenas um parmetros, assumido que seja o nome do usurio e voc ser perguntado pelo nome do grupo. username Este parmetro configura o nome do usurio abaixo do qual o SuperServer ir ser executado. O valor suprido validado contra as entradas em /etc/passwd. groupname Este parmetro configura o nome do grupo sob o qual SuperServer ir ser executado. O valor suprido ser validade contra as entradas em /etc/group. O seguinte exemplo mostra o uso do SSchangeRunUser.sh para mudar o grupo e o usurio proprietrio do firebird. O usurio e o grupo firebird atualmente o padro quando o Firebird instalado ento no h necessidade de voc rodar o scritp a no ser que voc tenha j mudado esses detalhes.
# cd /opt/firebird/bin # ./SSchangeRunUser.sh firebird firebird Updating /opt/firebird Updating startup script Completed #
24
Diversos Script Linux/Unix Este script simplesmente restaura o antigo formato de instalao onde o Firebird SuperServer roda sob o grupo e usurio root. Este script simplesmente um empacotamente do script SSchangeRunUser.sh, passando root como nome de usurio e nome de grupo.
O exemplo a seguir mostra como este script pode ser usado para mudar do servidor embarcado para uso cliente/servidor:
# cd /opt/firebird/bin # ./changeGdsCompatibleLibraryLink.sh For classic server there are two optional backward compatible client libraries. 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 access Your current setting is: /usr/lib/libgds.so -> /opt/firebird/lib/libfbembed.so Which 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 o symlink 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 ir perceber que o ajuste corrente deve ser diferente daquela mostrada quando previamente executou o script.
25
Captulo 5
Prximos utilitrios
Como isto um trabalho em progresse, por favor desculpe o "repentino" fim deste livro. Assim que eu pesquisar e documentar os utilitrios de linha de comando restante, eu adicionarei novos captulos neste livro. At o momento 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 internos do banco de dados. GDEF um utiltrio de metadados que foi removido na poca do Interbase 4.0 e retornou na verso 6 de cdigo aberto. A funcionalidade do mesmo provavelmente redundante. GFIX permiter tentar consertar bancos de dados corrompidos, inicializar e parar bancos de dados, resolver transaes "no limbo" em mltiplos bancos de dados, mudar o nmero de buffers de pgina e outras coisas mais. GPRE o pr-processador que converte cdigo fonte, o qual pode ser escrito em um certo nmero de linguagens, 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 utilizao 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 as distribuies do Firebird. ISQL usualmente o melhor lugar para testar seus scripts e comandos pela primeira vez. QLI Interpretador de Linguagem de Consulta que foi removido a partir do Interbase 4.0 mas retornou no Interbase 6.0 por causa da deciso de abrir o cdigo do Interbase. Norman Dunbar.
26