sexta-feira, 28 de dezembro de 2012

SQL's Oracle

Segue alguns SQL para ajudar na administração de servidores Oracle:

# CONTAR PROCESSOS OCIOSOS
select count (*)
from v$session
where username is not null and
status <> 'ACTIVE';
# LISTAR ESSES PROCESSOS
select username, machine, action, status
from v$session
where username is not null and
status <> 'ACTIVE';
# RETORNA OS SELECTS PESADOS RODANDO NO MOMENTO
select s.sql_address, s.sql_hash_value
from v$session s, v$session_wait w
where w.event like 'db file%read'
and w.sid = s.sid ;
# PASSA O NÚMERO DAS ESTATÍSTICAS
select statistic#, value
from v$sesstat
where rownum <= 10
order by value;
# PASSA O NÚMERO DAS ESTATÍSTICAS
select statistic#, value
from v$sysstat
where rownum <= 10
order by value;
# INFORMA AS CONSULTAS QUE ESTÃO TENDO MUITO PARSE (FASES DE COMPILAÇÃO DOS SELECTS)
select name, value
from v$sysstat
where name in ('parse time cpu','parse time elapsed','parse count (hard)','CPU used by this session');

quinta-feira, 27 de dezembro de 2012

Redirecionamentos

Tive muitas dúvidas quando precisei tratar entrada e saída de comando, segue abaixo algumas dicas de como usá-los:
  • > – Redireciona a saída padrão para um arquivo
  • >> – Redireciona a saída padrão pra um arquivo sem apagar o conteúdo do arquivo
  • 2> – Redireciona a saída de erro para arquivo
  • 2>> – Redireciona a saída de erro anexando o conteúdo em um arquivo
  • >&2 – Redireciona a saída padrão para saída de erro
  • 2>&1- Redireciona saída de erro para saída padrão
  • | – Conecta a saída padrão na entrada padrão de outro arquivo

quinta-feira, 20 de dezembro de 2012

Error MySql 'mysql.proc' don't loader or don't exist

Execute o comando:

mysql_fix_privilege_tables
# Caso ocorra algum erro execute com o parâmetro da senha:
mysql_fix_privilege_tables --password=senha_de_root
# Depois reinicie o mysql.
/etc/init.d/mysqld restart

Instalação Servidor OCS


O que é OCS?

(OCS Inventory NG) é um software livre que permite aos usuários para conhecer seus ativos de rede. OCS-NG coleta informações sobre o hardware e software de máquinas em rede que executam o programa cliente OCS ("Agente OCS Inventory"). OCS pode ser utilizado para visualizar o inventário através de uma interface web.

Mãos a obra!!!!

Dependências:
  • httpd
  • php, php-gd, php-pecl-zip, php-mysql, php-mbstring
  • mysql-server
  • perl-Apache-DBI, perl-XML-Simple, perl-SOAP-Lite, perl-Net-IP, perl-XML-SAX-Base perl-Compress-Zlib, perl-XML-Entities, mod_perl
dica: instale o repositório rpmforge, lá tem todos os pacotes perl, instalei tudo usando yum  :D

Habilite o inicio automático dos serviço httpd e mysqld

chkconfig --level 12345 httpd on
chkconfig --level 12345 mysqld on

Instalando o OCS Iventory

tar -zxvf OCSNG_UNIX_SERVER-2.0.5.tar.gz -C /usr/src
ln -s /usr/src/OCSNG_UNIX_SERVER-2.0.5/ /usr/src/ocs/
vim /usr/src/ocs/setup.sh
DB_SERVER_USER="ocs"  alterar_para DB_SERVER_USER="root"
DB_SERVER_PWD="ocs"   alterar_para DB_SERVER_PWD="senha_root
./setup

Tradução das perguntas

O banco de dados está no mesmo servidor de instalação do OCS? [Enter]
Está rodando na porta 3306? [Enter]
O binário do apache está em /usr/sbin/httpd? [Enter]
O arquivo de configuração principal do apache está em /etc/httpd/conf/httpd.conf? [Enter]
A conta de usuário que está rodando o apache é [apache]? [Enter]
O grupo é [apache]? [Enter]
O diretório de configuração do apache para incluir configurações é /etc/httpd/conf.d/? [Enter]
O binário do interpretador Perl está em /usr/bin/perl? [Enter]
Deseja configurar servidor de comunicação neste servidor? [Enter]
Armazenar os logs do servidor de comunicação em /var/log/ocsinventory-server? [Enter]
Afim de garantir que o apache carregue o mod_perl antes do OCS Inventory, posso renomear o arquivo ‘ocsinventory-server.conf’ para ‘z-ocsinventory-server.conf’? [Enter]
Você quer configurar o Web Administration Console neste computador? [Enter]
Depois de falar um pouco sobre atualização e um bla bla bla básico, vem a pergunta: Deseja continuar? [Enter]
Posso copiar os arquivos estáticos do Server Administration para o PHP Web Console em /usr/share/ocsinventory-reports? [Enter]
Posso criar os diretórios de escrita/cache para pacotes de deployement e IPDiscover em /var/lib/ocsinventory-reports? [Enter]

Confirme todas as perguntas e reinicie o serviço httpd

/etc/init.d/httpd restart

Acesse no navegador: http://ip_do_seu_server/ocsreports.
As advertências referentes a php são corrigidas no arquivo /etc/php.ini.
Informe a senha do banco e avance a tela.
Avance e atualize a tela.
Escolha a linguagem que preferir e logue como administrador.
login: admin
senha: admin
Para finalizar existem umas últimas configurações necessárias, apenas siga as instruções da caixa vermelha e pronto!!!

sexta-feira, 14 de dezembro de 2012

Erro Oracle: ORA-00020

Esse erro ocorre devido os processos do Oracle terem atingido o máximo, vamos a solução:

# Logue com o usuário oracle no servidor e execute os seguintes comandos:

sqlplus /nolog
SQL> connect / as sysdba
SQL> shutdown abort
SQL> startup

Explicação:
Devido o banco está apresentando erros de processos, praticamente nada poderá ser feito (pelo menos eu não consegui). Com o shutdown abort o bando será desmontado de qualquer forma, independe dos erros apresentados e com o startup o mesmo voltará a funcionar, mas logo o número de processos irá atingir seu limite e o erro voltará a ocorrer.

# Comando para visualizar a quantidade máxima de processos:

SQL> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
processes                            integer     150

# Comando para visualizar a quantidade de processos atualmente usados pelo servidor:

SQL> select count(*) from v$process;

  COUNT(*)
----------
        97

# Comando para aumentar a quantidade de processos:

SQL> alter system set processes=300 scope=spfile;

# Para que a configuração entre em vigor é necessário reiniciar o banco

SQL> shutdown immediate
SQL> startup

# Execute mais uma vez o comando para visualizar a quantidade máxima de processos:

SQL> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
processes                            integer     300

terça-feira, 4 de dezembro de 2012

Liberar acesso externo ao MySQL no Linux

Comando:
grant all privileges on *.* to root@192.168.0.2 identified by 'senha';

Explicação:
A máquina de IP 192.168.0.2 poderá acessar o MySQL com o usuário root.

Comando:
grant all privileges on *.* to root@'%' identified by 'senha';

Explicação:
O usuário root poderá acessar o MySQL a partir de qualquer máquina.

Quebrando senha de root do MySQL no Linux

1 - Parar o serviço do MySQL
/etc/init.d/mysql stop

2 - Iniciar o mysqld (servidor daemon) com a opção –skip-grant-tables
nohup mysqld_safe --skip-grant-tables &

3 - Conectar no mysql usando o usuário root sem senha
mysql -u root

4 - Dentro do mysql, executar os comandos abaixo para atualizar a senha do usuário root
update user set password = password('senha_nova') where user = 'root';
flush privileges;
quit

5 - Iniciar o serviço do MySQL
/etc/init.d/mysql start

6 - Para testa a senha nova digite:
mysql -u root -p

7 - Informe a senha de root e pronto!

segunda-feira, 3 de dezembro de 2012

terça-feira, 27 de novembro de 2012

Usando "dd" para testar I/O de disco

Use o comando:


dd if=/dev/zero of=/home/diego/teste bs=1M count=1024

Retorno:

1024+0 records in
1024+0 records out
1073741824 bytes (1,1 GB) copied, 2,9302 seconds, 366 MB/s

Isso mostra o foi criado um chamado teste com o tamanho de 1Gb em três segundos.
Com isso você pode testar performance entre discos (que era o meu caso).

quinta-feira, 22 de novembro de 2012

Compilando PHP com a extensão "mssql.so"

# Link para a compilação PHP e Apache abaixo:

http://suporte-em-ti.blogspot.com.br/2012/11/compilando-apache-e-php-no-linux.html

# Freetds

Baixe o freetds no link ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz e descompacte:

tar -zxvf freetds-stable.tgz
cd freetds-0.91

./configure --enable-msdblib --prefix=/usr/local/freetds
make && make install

touch /usr/local/freetds/include/tds.h
touch /usr/local/freetds/lib/libtds.a

Para que o freetds possa acessar seu servidor SQL Server, edite o arquivo /usr/local/freetds/etc/freetds.conf e adicione as linhas abaixo:

[SQL]
        host = 192.168.1.10
        port = 1433
        tds version = 8.0

# PHP (versão: 5.1.2)

Infelizmente não tenho o link da download dessa versão.

tar -zxvf php-5.1.2.tar.gz
cd php-5.1.2/ext/mssql/
phpize
./configure --with-mssql=/usr/local/freetds/ --with-php-config=/usr/bin/php-config
make
cd ../../
./configure --with-apxs2=/usr/www/bin/apxs --with-mysql --with-ldap --with-gd --with-jpeg-dir=/usr/lib/ --with-zlib --with-png-dir=/usr/lib/ --enable-track-vars --enable-sigchild --with-xml --with-mssql-dir=/usr/local/freetds/ --prefix=/usr/www/php
make && make install
cp ext/mssql/modules/mssql.so /usr/www/php/extensions/

Edite o arquivo /usr/www/php/lib/php.ini e adicione a entrada abaixo.

extension=mssql.so

quarta-feira, 21 de novembro de 2012

Compilando Apache e PHP no Linux

# Apache

Baixe o apache no seguinte link http://httpd.apache.org/download.cgi e descompacte:

tar -zxvf httpd-2.4.3.tar.gz
cd httpd-2.4.3
./configure --prefix=/usr/www/ --enable-modules-so
make && make install

# PHP

Baixe o PHP no seguinte link http://php.net/downloads.php e descompacte:

tar -zxvf php-5.4.8.tar.gz
cd php-5.4.8
./configure --with-apxs2=/usr/www/bin/apxs --with-mysql --with-ldap --with-gd --with-jpeg-dir=/usr/lib/ --with-zlib --with-png-dir=/usr/lib/ --enable-track-vars --enable-sigchild --with-xml
--prefix=/usr/www/php
make && make install
mkdir /usr/www/php/extensions

# Configurações finais

Adicione as linhas abaixo no arquivo /usr/www/conf/httpd.conf

DirectoryIndex index.html index.php
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

Crie o arquivo index.php no diretório /usr/www/htdocs/ com o seguinte conteúdo:

<?php phpinfo() ?>

Inicie o serviço do Apache com o comando:

/usr/www/bin/apachectl start

# Testando

Abra o navegador e digite:

http://ip_do_seu_servidor_apache/index.php

quarta-feira, 14 de novembro de 2012

Alterando vários valores/palavras dentro do VI/VIM

Segue o comando:

:%s/valor_antigo/valor_novo/gc

Situação:
Tenho um arquivo com o seguinte conteúdo:

Diego estuda Windows.
Diego estuda Windows.
Diego estuda Windows.
Diego estuda Windows.
Diego estuda Windows.

Quero alterar todas as palavras "Windows" para "Linux":

:%s/Windows/Linux/gc

Resultado:

Diego estuda Linux.
Diego estuda Linux.
Diego estuda Linux.
Diego estuda Linux.
Diego estuda Linux.

Criar ISO de diretórios

# Criando a ISO

mkisofs -r -J -o nome_do_arquivo.iso /home/diego

# Montando a ISO

mount -o loop nome_do_arquivo.iso /mnt

Jogos Ubuntu

Para fãs de jogos e Ubuntu como eu, segue:

http://www.ubuntugames.org/

Adicionem como repositório, vale a pena! :D

Identificar inserção de cdrom e fazer automontagem

Estava com o seguinte problema:

Precisava compartilhar o drive de cdrom no meu Ubuntu pelo samba, mas quando inseria um CD ou DVD eles sempre montavam em caminhos diferente.
Sabemos que nas versões atuais o Ubuntu monta suas mídias dentro de /media

Resolução do problema:
Adicionar a seguinte minha no arquivo /etc/fstab

/dev/sr0        /media/cdrom    iso9660 defaults,auto,user,ro     0  0


Pronto! O Ubuntu sempre irá montar automaticamente qualquer mídia dentro do diretório /media/cdrom
Segue abaixo algumas informações que eu não conhecia todas e achei interessante divulgar:

  • 1ª coluna: Especificação do arquivo do dispositivo que será montado
  • 2ª coluna: Local (diretório) onde o dispositivo especificado na 1ª será montado
  • 3ª coluna: Tipo de sistema sistema de arquivos
    • ext2 - Sistema de arquivos do Linux
    • ext3 - Sistema de arquivos journaling (ext2 + journaling)
    • reiserfs - Sistema de arquivos journaling do Linux
    • msdos - Sistema de arquivos MS-DOS
    • vfat - Sistema de arquivos Win9x
    • ntfs - Sistema de arquivos Win2k, XP
    • iso9660 - Sistema de arquivos do CD-ROM
    • auto - Detecta o tipo de sistema automaticamente
  • 4ª coluna: Opções para montar os dispositivos
    • defaults - Montagem padrão para o dispositivo
    • exec - Permite que programas sejam executados a partir do do dispositivo
    • noexec - Nega que programas sejam executados
    • auto - Monta o dispositivo automaticamente na inicialização
    • noauto - O dispositivo deve ser especificado para a montagem
    • user - Permite que qualquer usuário monte o dispositivo
    • nouser - Não permite que usuários comuns montem o dispositivo
    • rw - Permissão de leitura e gravação para o dispositivo
    • ro - Permissão somente leitura para o dispositivo
  • 5ª coluna: Dump para o dispositivo
    • 0 - Não faz dump;
    • 1 - Faz dump.
  • 6ª coluna: Verificação e reparo do dispositivo.
    • 0 - Não faz a verificação e reparo.
    • 1 - Faz a verificação e reparo.


Migração de Servidores Físicos - Samba

Migração de Servidores Físicos - SambaSamba

Há algum tempo atrás me passaram a missão de migrar o servidor PDC da minha empresa devido um processo de virtualização que estamos passando.
Primeiramente usei o mesmo Sistema Operacional no servidor novo e os mesmos pacotes do Samba, copiei os arquivos de configuração de um servidor para o outro, mas vi que somente isso não resolvia meu problema. Então vou mostrar o procedimento correto.


Abaixo a configuração do meu servidor antigo:

Sistema Operacional: CentOS 5.3 i386
Versão do Samba: 3.5.12
Autenticação: OpenLDAP

Servidor Novo:

Sistema Operacional: CentOS 5.7 x86_64
Versão do Samba: 3.5.15
Autenticação: OpenLDAP

# Entre no servidor antigo e execute o seguinte comando:

net getlocalsid
net getdomainsid

# Salve as duas saídas.
# Entre no servidor novo:
# Instale os pacotes do Samba e de forma alguma reinicie o serviço. Copie o arquivo de configuração do samba do servidor antigo.
Execute os seguintes comandos

net setlocalsid (+ resultado do comando net getlocalsid do servidor antigo)
net setdomainsid (+ resultado do comando net getdomainsid do servidor antigo)

# OBS: não é necessário os parenteses "()"

# Feito esse procedimento reinicie o serviço do Samba e pronto. No meu caso foi necessário fazer mais um passo, pois meu servidor usa o OpenLDAP para autenticar os usuários

smbpassword -W

# Pronto!!!

Alterar o diretório dos Archives no Oracle

# Logue com o usuário oracle e siga o procedimento abaixo:

sqlplus /nolog
SQL> connect / as sysdba
SQL> alter system set log_archive_Dest_1='location=/bkporacle/arch/';
SQL> show parameter log_archive

# Irá mostrar o seguinte resultado:


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest                     string
log_archive_dest_state_1             string      enable
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1                   string      LOCATION=/arch MANDATORY REOPE
                                                 N
log_archive_dest_10                  string
log_archive_dest_2                   string
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string
log_archive_dest_7                   string
log_archive_dest_8                   string
log_archive_dest_9                   string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_duplex_dest              string
log_archive_format                   string      arch_%t_%s.arc
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     FALSE
log_archive_trace                    integer     0
SQL> alter system set log_archive_Dest_1='location=/bkporacle/arch/';

Sistema alterado.

SQL> show parameter log_archive

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest                     string
log_archive_dest_state_1             string      enable
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1                   string      location=/bkporacle/arch/
log_archive_dest_10                  string
log_archive_dest_2                   string
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string
log_archive_dest_7                   string
log_archive_dest_8                   string
log_archive_dest_9                   string
log_archive_duplex_dest              string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_format                   string      arch_%t_%s.arc
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     FALSE
log_archive_trace                    integer     0


sexta-feira, 9 de novembro de 2012

Rodando o VMware vSphere no Windows 7

Encontrei um problema para rodar o VMware vSphere no Windows 7 (64bits).
Depois de apanhar um pouco encontrei a solução.

  1. Baixe a DLL system.dll no seguinte link: http://techhead.co/files/system.dll
  2. Entre no diretório: C:\Program Files (x86)\VMware\Infrastructure\Virtual Infrastructure Client\Launcher
    • Crie a pasta "lib" e copie a dll baixada para dentro dessa pasta
  3. Edite o arquivo VpxClient.exe.config da seguinte forma:
    • <?xml version="1.0" encoding="utf-8"?>
    • <configuration>
    • <system.net>
    • <connectionManagement>
    • <clear/>
    • <add address="*" maxconnection="8" />
    • </connectionManagement>
    • </system.net>
    • <appSettings>
    • <add key = "protocolports" value = "https:443"/>
    • </appSettings>
    • <runtime>
    • <developmentMode developerInstallation="true"/>
    • </runtime>
    • </configuration>
  4. Crie a variável de ambiente DEVPATH da seguinte forma:

    • Nome da variável: DEVPATH
    • Valor da variável: C:\Program Files (x86)\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\lib

  5. Salve as configurações e execute o VMware vSphere

Instalando Ubunto pelo pendrive


  • Informe a unidade do pendrive:
  • Clique em Ok e espere o processo terminar
  • Agora é só dar o boot pelo pendrive