terça-feira, 29 de setembro de 2009

COALTI

Nos dias 09, 10 e 11 de outubro irá se realizar em Maceió no Hotel Maceió Mar o COALTI (1° Congresso Alagoano de Tecnologia da Informação), com palestras e a realização da prova de certificação LPI. O evento está sendo organizado pelo meu amigo Giba, sinal de que vai ser um grande evento.
Para maiores informações acesse o site do evento:

http://www.coalti.com.br

Grande abraço...

Reparo de bases de dados corrompidas no Mysql

Recentemente, inspirado por bases de dados corrompidas em um servidor capenga, venho utilizando algumas ferramentas para correção de bases de dados do servidor Mysql.

VERIFICANDO

O Mysql permite que bases de dados sejam checadas com o servidor rodando. Segue a listagem das ferramentas e o estado do servidor ao utilizá-las.

MYSQL CHECK TABLE -- Deve ser utilizado no prompt do servidor Mysql (Logicamente o servidor Mysql deve estar rodando)

mysqlcheck -- O servidor Mysql pode ou não estar rodando.

myisamchk -- O servidor deve estar parado.


Verificando tabelas com o CHECK TABLE

CHECK TABLE tablename[,tablename2...] [option][,option2...]


As opções disponíveis permitem o ajuste da verificação que pode ser mais profunda ou superficial.

Quick
A opção mais rápida, não verifica os "rows" em busca de links incorretos. Geralmente utilizada quando não há suspeita de erros.

Fast
Realiza a verificação das tabelas se as mesmas não forem devidamente fechadas. Geralmente utilizada quando a suspeita de erros na base é mínima. Geralmente em decorrencia de uma falha elétrica.

Changed
Similar ao Fast, mas verifica também tabelas que foram alteradas desde a última verificação.

Medium
A opção "default" se nenhuma opção for especificada. Verifica as linhas a procura de links deletados incorretos, verifica e calcula o checksum de todas as chaves e linhas.

Extented
A opção mais lenta, utilizada quando os outros métodos não apontam erros mas ainda há a suspeita de erros. Bastante lento uma vez que verifica todos os valores de todas as colunas e linhas. Aumentando-se o valor da variável key-buffer-size no arquivo de configuração do Mysql torna a verificação mais rápida.

Verificando tabelas com o mysqlcheck

mysqlcheck [options] dbname tablename [tablename2... ]

As opções para o utilitário permitem checar, analizar, reparar e optimizar as bases de dados.

--auto-repair
Utilizada em conjunto com a opção check, vai automaticamente reparar qualquer dado corrompido encontrado.

--check, -c
Verifica as tabelas.

--check-only-changed, -C
Verifica a base em conjunto com a opção changed acima.

--extended, -e
Verifica a base em conjunto com a opção extended acima.

--fast, -F
Verifica a base em conjunto com a opção fast a acima.

--medium-check, -m
Verifica a base em conjunto com a opção medium acima.

--quick, -q
Verifica a base em conjunto com a opção quick acima.

Verificando tabelas com o comando myisamchk

myisamchk [options] tablename.MYI

Trabalha com tabelas do tipo MyISAM (que possuem arquivos .MYD e .MYI para guardar informações sobre dados e índices)

As principais opções disponíveis para o utilitário são:

--check, -c
Opção default

--check-only-changed, -C
Verifica a base junto com a opção changed acima.

--extend-check, -e
Verifica a base em conjunto com a opção extended acima.

--fast, -F
Verifica a base em conjunto com a opção extended acima.

--force, -f
Executa o mode de reparo caso erros sejam encontrados.

--information, -i
Exibe informações sobre a tabela verificada.

--medium-check, -m
Verifica a base em conjunto com a opção medium acima.

--read-only, -T
Não marca a tabela como verificada.

--update-state, -U
Armazena quando a tabela foi checada e o momento de um eventual crash nos arquivos *.MYI

REPARANDO

Na maioria dos casos apenas os índices estarão corrompidos, (O arquivo de índice é um arquivo menor separado que aponta para o arquivo de dados). Dados realmente corrompidos são raros. Conforme na vimos na verificação são três os métodos de reparo.

MYSQL REPAIR TABLE - Deve ser utilizado com o servidor rodando.

mysqlcheck -- O servidor Mysql pode ou não estar rodando.

myisamchk -- O servidor deve estar parado.

Reparando tabelas com o REPAIR TABLE

REPAIR TABLE tablename[,tablename1...] [options].

As principais opções disponíveis são:

QUICK
O mais rápido, uma vez que o arquivo de dados não é modificado.

EXTENDED
Tenta recuperar todas as linhas possíveis no arquivo de dados, o que pode resultar em linhas com inconsistências. Use em último caso. USE_FRM Usado para reconstruir o arquivo de index caso o mesmo esteja corrompido ou se foi excluído.

USE_FRM
Deve ser utilizado quando os arquivos *.MYI (arquivos de índice) estiverem faltando ou corrompidos. Utilizado para reconstruir os arquivos de index.


Reparando tabelas com o mysqlcheck

mysqlcheck [options] [db_name [tbl_name ...]]

Podem ser utilizadas todas as opções descritas para o utilitário acima adicionando-se a elas a opção (--repair, -r).

Reparando tabelas com o myisamchk

myisamchk [options[ [tablenames]


O servidor deve estar parado, ou as tabelas inativas, o que é garantido quando ao opção --skip-external-locking não está em uso. O caminho para as arquivos .MYI deve ser especificado. As principais opções disponíveis são:

--backup, -B
Cria um backup (.BAK) da tabela antes de repará-la.

--correct-checksum
Realiza correções de checksum.

--data-file-length=valor, -D=valor
Especifica o valor máximo do arquivo de dados. Utilizado na recriação do arquivo.

--extend-check, -e
Tenta recuperar todas as linhas possíveis no arquivo de dados, o que pode resultar em linhas com inconsistências. Use em último caso.

--force, -f
Reescreve arquivos temporários antigos (.TMD) ao invés de abortar o reparo caso encontre um.

--recover, -r
A opção mais utilizada, repara a maioria dos problemas encontrados.

--safe-recover, -o
Verificação mais detalhada, porém mais lenta que a -r. Lê todas as linhas e reconstroi os índices baseado nelas.

--tmpdir=caminho
Altera o caminho de criação dos arquivos temporários

--quick
O método de reparo mais rápido, uma vez que o arquivo de dados não é modificado.

Exemplos:

mysql> CHECK tabela01 EXTENDED;

mysql> REPAIR tabela01 EXTENDED USE_FRM,

mysqlcheck --medium-check --auto-repair banco01 tabela01 -u usuário -p

mysqlcheck --repair --check banco01 tabela01

myisamchk --check --update-state *.MYI

myisamchk --repair --backup *.MYI


Como esses comandos simples consigo resolver a maioria dos problemas em bases de dados Mysql. Quaisquer dúvidas ou contribuições são bem vindas.

Um grande abraço a todos da comunidade.


quinta-feira, 17 de setembro de 2009

Apache autenticando no AD / LDAP com o ubuntu server 9.04

Olá amigos do software livre. Estive meio atarefado e não venho postando no blog como gostaria, mas chega de conversa mole e vamos ao que interessa.

É praticamente padrão o uso de aplicações web nas intranets das empresas. Para facilitar o controle de usuários mantendo uma base centralizada podemos autenticar o apache na base de dados do AD ou se vc tiver mais sorte migra tudo pra uma base LDAP em linux... Hehehe.

Vamos aos passos para a autenticação do Apache2 no AD / LDAP.

Primeiramente devemos habilitar o módulo authnz_ldap que já vem instalado juntamente com o apache2 criando o link simbólico no diretório /etc/apache2/mods-enabled/ ou través do comando a2enmod.

a2enmod authnz_ldap

ou

ln -s /etc/apache2/mods-avaliable/authnz_ldap.load /etc/apache2/mods-enabled/authnz_ldap.load

Habilitado o módulo vamos as configurações para a autenticação.

No arquivo de configuração do seu site no "conteiner" Directory adicione os parâmetros abaixo:

AuthType Basic
AuthName "Acesso ao Site"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPUrl ldap://servidor_ldap:porta/DC=dominio,DC=com,DC=br?sAMAccountName
AuthLDAPBindDN "CN=usuário,OU=usuários,DC=domínio,DC=com,DC=br"
AuthLDAPBindPassword "senha"
require valid-user


Após as configurações recarrege as configurações do apache para que o módulo seja carregado.

/etc/init.d/apache2 force-reload

Agora é só acessar ao site e conferir a autenticação.

Um abraço a todos.

quarta-feira, 9 de setembro de 2009

Backup do Mysql com o mysqldump

Devido a correria aqui no trampo estou sem tempo para postar no blog.
Estou fazendo um monte backups para passarmos para para a nova estrutura de servidores blade.
Já que estamos falando em backup aqui vai como realizar backups no mysql com o mysqldump e as descrições de algumas opções importantes.

Opções:

-A: Todos os bancos de dados
-B: Seleciona o banco de dados a ser salvo
-d: Salva toda a estrutura de tabelas mas sem os dados
-c: Usar comandos insert completos na criação do arquivo de saída.

Exemplos:

mysqldump -u usuário --password=senha -A > arquivo_de_saída

mysqldump -u usuário --password=senha -A -d >arquivo_de_saída

mysqldump -u usuário --password=senha -B Banco01 Banco02 > arquivo_de_saída

mysqldump -u usuário --password=senha -B Banco01 [tabelas]
> arquivo_de_saída

É isso ai.

Até a próxima...