sexta-feira, 19 de dezembro de 2008

Recuperando um banco de dados em estado 'Suspect'

Este é um dos momentos altos na vida de um DBA ou administrador de sistemas: o banco não está disponível, o sistema não funciona e o seu telefone não pára!

O ideal é que o bom administrador tenha sempre suas cópias de segurança (backup) atualizadas, backup de log de transações, snapshots, enfim, esteja pronto para o pior.

Abaixo seguem uma seqüência de comandos que normalmente ajudam nestas horas:

EXEC sp_resetstatus 'Banco-em-Suspect';
ALTER DATABASE [Banco-em-Suspect] SET EMERGENCY;

DBCC CHECKDB('Banco-em-Suspect');


ALTER DATABASE [Banco-em-Suspect] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;


DBCC CHECKDB('Banco-em-Suspect', REPAIR_ALLOW_DATA_LOSS);


ALTER DATABASE [Banco-em-Suspect] SET MULTI_USER;



Explicando os comandos

EXEC sp_resetstatus 'Banco-em-Suspect'
Reseta o status de 'Suspect' do banco de dados. O log de erros do SQL Server deve ser consultado e todos os problemas resolvidos antes de executar esta stored procedure. Pare e reinicie a instância do SQL Server após rodar sp_resetstatus.

ALTER DATABASE [Banco-em-Suspect] SET EMERGENCY
O banco de dados é marcado como READ_ONLY (somente leitura), o log está desabilitado e o acesso fica limitado a quem faz parte da função fixa de servidor sysadmin.

DBCC CHECKDB('Banco-em-Suspect')

DBCC CHECKDB('Banco-em-Suspect', REPAIR_ALLOW_DATA_LOSS)
Verifica a integridade física e lógica de todos os obejtos do banco de dados. A opção REPAIR_ALLOW_DATA_LOSS tenta reparar todos os erros relatados. Esses reparos podem provocar alguma perda de dados.
Use as opções REPAIR apenas como um último recurso. Para reparar erros, recomendo restaurar de um backup. Operações de reparo não consideram nenhuma das restrições que podem existir em tabelas ou entre tabelas. Se a tabela especificada estiver envolvida em uma ou mais restrições, recomendo executar DBCC CHECKCONSTRAINTS após uma operação de reparo. Se for necessário usar REPAIR, execute DBCC CHECKDB sem uma opção de reparo para localizar o nível de reparo a ser usado. Se você usar o nível de REPAIR_ALLOW_DATA_LOSS, recomendo fazer backup do banco de dados antes de executar DBCC CHECKDB com essa opção.
ALTER DATABASE [Banco-em-Suspect] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [Banco-em-Suspect] SET MULTI_USER
SINGLE_USER especifica que somente um usuário por vez pode acessar o banco de dados. ROLLBACK IMMEDIATE especifica que a reversão (rollback) deve ser feita imediatamente.
MULTI_USER libera o banco para acesso de todos os usuários após a verificação.

Agora faltam as devidas observações e comentários para e considerações em versões anteriores ao SQL Server 2005.

Lembrem-se: Nada como um bom e velho backup!

quinta-feira, 24 de julho de 2008

Auditando acl's no squid

Para saber quais regras estão bloqueando ou liberando acesso no proxy squid, é interessante editar o arquivo squid.conf, a opção debug_options, da seguinte forma:

debug_options ALL, 1 33,2

Dessa forma, é fácil saber porque o acesso foi DENIED ou ALLOWED, quando se tem várias regras. Para isso, basta verificar o arquivo /var/log/squid/cache.log (para distros Red Hat like - Fedora, CentOS).

Para ativar, basta recarregar as configurações, digitando o comando:

# squid -k reconfigure

quinta-feira, 5 de junho de 2008

Instalar o Fedora num pen drive usando Windows

O seguinte tutorial irá mostrar como instalar o Fedora 8 ou 9 num pen drive.
Recentemente, foi disponibilizada uma ferramenta que pode fazer esta instalação, além de permitir que algumas informações sejam salvas para uso em boots posteriores.

Pré-requisitos:

Como instalar o Fedora num pen drive a partir do Windows:

  1. Download o Fedora liveusb-creator-2.4.zip
  2. Extraia o liveusb-creator-2.4.zip para seu PC
  3. Vá até a pasta que você extraiu o liveusb-creator-2.4 e clique liveusb-creator.exe para executar a ferramenta
  4. Apesar de simples, o processo de criação involve os seguintes passos:
    1. Selecionar Usar umLive CD existente ou Download Fedora (baixar Fedora)
    2. Definir o destino (Target Device), o seu pen drive
    3. Definir o tamanho de Persistent Overlay que define o espaço alocado para salvar configurações
    4. Clique Create Live USB para iniciar o início do processo de criação
É necessário que sua máquina possa inicializar através de um dispositivo USB.
Agora é só aproveitar!

Artigo original: http://www.pendrivelinux.com/2008/05/17/install-fedora-9-to-a-flash-drive-using-windows/

Obrigado a Luke Macken and Kushal Das, da comunidade Fedora!

segunda-feira, 26 de maio de 2008

Como transferir um banco de dados de um collation para outro no SQL Server

Só uma referência:

http://support.microsoft.com/kb/325335/en-us

Esqueceu a senha do administrador do Active Directory? (Windows 2000)

Este site apresenta uma maneira interessante para resetar a senha do administrador de um domínio Windows 2000 Server (não sei se funciona em um domínio Windows Server 2003).

http://www.petri.co.il/reset_domain_admin_password_in_windows_2000_ad.htm

Uma outra versão do mesmo procedimento:
http://www.jms1.net/nt-unlock.shtml

Para resetar a senha local de um administrador (Windows NT/2000/XP/2003/Vista), você pode utilizar a ferramenta disponibilizada neste site:

Thanks to Petter Nordahl-Hagen
http://home.eunet.no/pnordahl/ntpasswd/

SQL Server 2005 - Descobrindo o collation do database (usando T-SQL)

Execute o seguinte script no Query Editor (SSMS):

SELECT DATABASEPROPERTYEX(‘AdventureWorks’, ‘Collation’)  SQLCollation;

O resultado será:

SQLCollation

————————————

SQL_Latin1_General_CP1_CI_AS

Quer saber qual a versão do Service Pack do seu SQL Server?

Quando executamos a consulta:

SELECT @@VERSION

Temos o seguinte resultado:
Microsoft SQL Server  7.00 - 7.00.623 (Intel X86)
Nov 27 1998 22:20:07
Copyright (c) 1988-1998 Microsoft Corporation
Desktop Edition on Windows NT 5.1 (Build 2600: )
Para saber qual o service pack, temos:

Versão
RTM (Gold, sem SP)SP1SP2SP3SP4
SQL 200810.00.1600.2210.00.2531



SQL 20059.00.1399.069.00.20479.00.3042

9.00.4035


SQL 20008.00.1948.00.3848.00.5328.00.7608.00.2039
SQL 7.07.00.6237.00.6997.00.8427.00.9617.00.1063



Essas informações eu obtive no site "Microsoft SQL Server 2008, 2005, 2000 and 7.0 Builds" (http://sqlserverbuilds.blogspot.com/) que contém outras informações interessantes sobre as compilações do programa.

Ou, se preferir, direto no site da Microsoft:
Como identificar a versão e a edição do seu SQL Server

Atualizado em 09/07/2009

quarta-feira, 2 de abril de 2008

Qmail + uvscan (McAfee)

Hoje atendi um cliente que estava com problemas de atualização do AV.
A solução consta de um servidor qmail + spamassassin + uvscan e efetua diariamente a atualização do arquivo de assinaturas de vírus.

No último dia 20, simplesmente parou de enviar e receber mensagens. Quando me deparo com os logs (/var/spool/qscan/qmail-queue.log) vejo a seguinte mensagem:

error_condition: X-Qmail-Scanner-2.01st: corrupt or unknown McAfee scanner error or memory/resource/perms problem - exit status 2048/8
Primeira ação foi voltar o arquivo .dat anterior. Voltou a funcionar. Achei que fosse aquela atualização ou o download que pudesse ter corrompido.
No dia seguinte, a mesma situação. Voltei o .dat que funcionava. Só que passados vários dias, e nada de melhorar (achei que fosse a versão do engine do AV - Scan engine v5.1.00 for Linux e DAT file v52xx).

Até que resolvi alterar um parâmetro do qmail, após ler vários fóruns: alterei o valor softlimit do arquivo /var/qmail/supervise/qmail-smtpd/run, que ficou assim:

exec /usr/local/bin/softlimit -m 50000000 \
O valor original era 40000000. Reiniciei o serviço do qmail, atualizei o arquivo do AV e funcionou!

Mais uma batalha vencida... rs

terça-feira, 19 de fevereiro de 2008

Instalando Courier no Fedora Core 7 (yum)

Estou montando um servidor de e-mail com Postfix e precisei instalar os pacotes courier (courier-imap, courier-authlib e courier-maildrop). No repositório padrão do Fedora Core 7 não temos estes pacotes (eu prefiro utilizar pacotes rpm para instalação, já pensando na manutenção, pois fica mais fácil para atualizar depois, ainda que a compilação tenha suas inúmeras vantagens).

No repositório Enlartenment (www.enlartenment.com)temos estes pacotes disponíveis. Thanks to Michael Fleming.

Primeiro vamos adicionar a chave de assinatura GnuPG do repositório com o seguinte comando:

#rpm --import http://www.enlartenment.com/RPM-GPG-KEY.mf 

Crie o arquivo /etc/yum.repos.d/enlartenment.repo, com o seguinte conteúdo:

[enlartenment]
name=Enlartenment Repository for $releasever - $basearch
baseurl=http://www.enlartenment.com/packages/fedora/$releasever/$basearch/
enabled=1
gpgcheck=1

Agora, basta utilizar o yum para instalar os pacotes desejados:

# yum install courier-imap courier-authlib courier-authlib-mysql maildrop