Dicas Firebird
Postado em 25/11/2014 por Rogerio - Categoria: Dicas Linux - Tags: firebird
gbak
gfix
Manutenção de bases Firebird com GFIX
Nas dicas abaixo você pode conferir como realizar pequenas manutenções em bases Firebird
Para realização deste processo é indicado que você faça uma cópia de segurança da base.
Também é necessário ter acesso exclusivo ao arquivo da base de dados, ou seja, não pode ter conexões ativas por outros processos.
Passo 01: Verificar se a base de dados está com corrupção.
gfix -user sysdba -pass senha -v -f base.fdb
Passo 02: Corrigir se há corrupção na base de dados.
gfix -user sysdba -pass senha -m -i base.fdb
Após a conclusão deste item, realizar o procedimento 1 novamente, caso a base de dados apresente corrupção, efetuar o próximo passo.
Passo 03: Fazer um backup sem versão das páginas recentes.
gbak -user sysdba -pass senha -g -b -z -l -v base.fdb base.fbk
Passo 04: Restauração do backup.
gbak -user sysdba -pass senha -g -c -z -v base.fbk base.fdb
Após conclusão deste item, deve-se realizar o passo 1 novamente.
Comandos adicionais
- Cancelar todas as transações abertas
gfix -user sydba -pass senha -rollback all base.fdb
- Colocar a base em shutdown
gfix -user sysdba -pass senha -shut -force 0 base.fdb
- Colocar a base em online
gfix -user sysdba -pass senha -online base.fdb
- Executar o garbage collection na base
gfix -user sysdba -pass senha -s base.fdb
- Desabilitar o sweep ou definir o intervalor
gfix -user sysdba -pass senha -s -housekeeping 0 base.fdb
0 para desabilitar ou 2000 para definir o intervalo em 2000 por exemplo.
- Corrigir erros de acentuação
gbak -c -v -rep -FIX_FSS_D WIN1252 -FIX_FSS_M WIN1252 -P 16384 -user sysdba -pass senha
gbak -c -v -rep -FIX_FSS_METADATA WIN1252 -P 16384 -user sysdba -pass senha base.fbk base.fdb
O P é o número de páginas.
Configurações para performance
Quando instalado em um servidor dedicado, com um bom processador e memória, é possível fazer algumas configurações no Firebird para melhorar o seu desempenho.
O arquivo se localiza na pasta (por padrão)
C:\Program Files\Firebird_2.5\ ou
/opt/firebird/, dentro dele há várias configurações com suas explicações.
Abaixo seguem alguns exemplos de como configurar. Para isso, basta copiar as configurações abaixo e colar dentro do arquivo
firebird.conf, dependendo das configurações do servidor.
Configuração para servidor com processador dual-core, e pelo menos 4GB memória:
DefaultDbCachePages = 4096
FileSystemCacheThreshold = 67108864
FileSystemCacheSize = 70
CpuAffinityMask = 3
Configuração para servidor com processador dual-core, e pelo menos 8GB memória:
DefaultDbCachePages = 8192
FileSystemCacheThreshold = 134217728
FileSystemCacheSize = 70
CpuAffinityMask = 3
Configuração para servidor com processador quad-core, e acima de 8GB memória:
DefaultDbCachePages = 16384
FileSystemCacheThreshold = 268435456
FileSystemCacheSize = 80
CpuAffinityMask = 3
Após feito as alterações no arquivo, reinicie o Firebird, e faça o processo de Backup e Restore do banco de dados definindo o Page Size igual ao que foi configurado na opção DefaultDbCachePages (a primeira da lista).
DefaultDbCachePages - Define o tamanho do arquivo de paginação utilizado pelo cache da máquina. Quanto maior o valor, maior a quantidade de dados que trafegam em um mesmo processo simultâneo, resultando em pesquisas mais rápidas.
FileSystemCacheThreshold - Esta opção define o tamanho do arquivo de cache que o firebird utiliza para salvar os arquivos da paginação da configuração acima.
FileSystemCacheSize - Esta configuração define a porcentagem da memória o firebird pode utilizar para o cache. Não é recomendado definir valores acima de 70 ou 80 se o servidor não for 100% dedicado ao banco de dados.
CpuAffinityMask - Esta configuração define quantos
cores do processador o firebird pode utilizar para os processos. 3 para dual-core, 10 para quad-core, 21 para hexa-core. Definir apenas para os núcleos reais, pois o firebird anterior a versão 3.0 não utiliza todos os núcleos do processador. Esta opção aplica-se apenas a servidores com Windows.
Leitura complementar:
Entendendo o consumo de memória do FB.
Dicas MySQL
Postado em 05/11/2014 por Rogerio - Categoria: Dicas Linux - Tags: mysql
gerar dump todas as bases
mysqldump -u root -p --all-databases > nome_dump.sql
restaurar dump criado anteriormente
mysql -u root -p < nome_dump.sql
/etc/init.d/mysql restart
Stopping MySQL database server: mysqld failed!
Starting MySQL database server: mysqld already running.
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
/etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = passdedebiansysmaint
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = passdedebiansysmaint
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
atualizar o password do usuario debian-sys-maint no servidor novo
update user set password=PASSWORD("passdedebiansysmaint") where User='debian-sys-maint';
eliminar todas as tabelas usando um único comando
SELECT concat('DROP TABLE IF EXISTS ', TABLE_NAME, ';') FROM information_schema.TABLES;
eliminar todas as tabelas usando um único comando modo alternativo.
mysql -u root -pSENHA -Nse 'show tables' DATABASE | while read table; do mysql -u root -pSENHA -e "drop table $table" DATABASE; done
eliminar os dados de todas as tabelas usando um único comando.
mysql -u root -pSENHA -Nse 'show tables' DATABASE | while read table; do mysql -u root -pSENHA -e "truncate table $table" DATABASE; done