terça-feira, janeiro 19

Yes, I'm Alive! Found my new posts at GrepOra.com!

Hello dear readers, I have a good news to spread with the good winds of innovation and technology!


Some areas that you can found my articles include: Oracle Application Express, APEX, including plsql and other scripting tools.

In that so long time, many things happened in my life. I'm a lucky guy. Had privilege to travel, and drive!, for almost 8 months in all south america. I also lost the love of my life sometimes, and always found a new one some time latter. Don't worry! I stay some time thinking in Macchu Picchu, and ok, I'll still work with IT, no way, I love it.

quinta-feira, novembro 19

Shell scripts for Oracle DBA's ;-)

I changed my company recently and now work elsewhere.
That`s a great news because
now also have new challenges ;-)

I would like to share some of new scripts that I`ve write. Sometimes this scripts might be odd, but they are really helpful in our environment.

I`ll put here in a form of commented source code once they are considerable simple to understand.
So enjoy! copy, share and have fun.

To see all articles about this stuff, search for tag shell_for_dbas.

sexta-feira, dezembro 19

How to Move Datafiles to Different Diskgroup

Sometimes you'll need to move some datafiles to another diskgroup in ASM. Maybe you need to put old data on slower disks.

You can get more information about this process in this metalink document: 438580.1

Prereqs
-------
Have a full cold backup for the database is recommended.

Solution
--------

1. Create a new diskgroup with desired redundancy.
asm> create diskgroup DG01 external redundancy disk 'ORCL:SDX';

2. Take the tablespace offline:
sql> alter tablespace USERS offline;

3. Copy the datafiles using RMAN:
rman> copy datafile '+DG/PROD/users01.dbf' to '+DG01';

3.1 Create ASM alias for the datafile. (This is not a required step)
RMAN will create the datafile with full name in ASM, to simplify your life,
you could create an alias in ASM filesystem, like this sample:
asmcmd> makealias +DG/PROD/datafile/users.256.3231232 +DG/PROD/users01.dbf

4. Rename the datafile in the database controlfile.
sql> alter database rename file '+DG/PROD/users01.dbf' to '+DG01/PROD/users01.dbf';

5. Take the tablespace online:
sql> alter tablespace USERS online;

6. Delete original datafiles:
asmcmd> rm +DG/PROD/users01.dbf

quinta-feira, julho 17

Workshop Standby - Conceitos

1. Introducao

O dataguard prove algumas features de alta disponibilidade, disaster recovery, e protecao dos dados. Ele mantem um banco adicional, transacionalmente consistente com um banco primario.Este banco standby pode ser utilizado quando o banco primario se torna indiponivel, de maneira planejada ou nao, minimizando o downtime. Um banco standby ainda pode utilizado para backup, relatorios, proporciando um uso eficiente de recursos (CPU/IO)Em conjunto com o Oracle RAC habilita um ambiente com um altissimo nivel de disponibilidade.

2. Standby Database

Existem dois tipos de sincronizacao entre bancos primarios e bancos standby, chamados standby Fisico e Logico.

2.1 Standby Fisico

Eh uma copia fisicamente identica ao banco primario, bloco-a-bloco. Um standby fisico eh sincronizado atraves do Redo Apply, que executa um recover do banco aplicando as informacoes de redo log geradas pelo banco primario.

2.2 Standby Logico

Contem os mesmos dados do banco primario, entretando a estrutura fisica pode ser diferente. Diferente do standby fisico, o logico eh atualizado pelo SQL Apply, que converte as informacoes dos redo logs para instrucoes SQL, que entao sao executadas normalmente.

3. Gerenciamento do DataGuard

O gerenciamento e monitoramento pode ser feito atraves do Enterprise Manager, alem eh claro de ferramentas 'text-mode'.

4. Alguns Requisitos Interessantes

  • DataGuard eh uma feature da Database Enterprise
  • Banco primario em Archivelog :)
  • Mesma plataforma, de linux32 para linux32, ou de win pra win... embora um ambiente primario 32bits pode ser replicado para um ambiente standby em hardware 64, mas com oracle 32bits.
  • Mesma versao do Oracle (e do parametro compatible)
  • Pode-se configurar um standby no mesmo server do primario!
  • Os arquivos de senha, devem possuir a mesma senha
  • FORCE LOGGING eh interessante, para evitar problemas

5. Online, Archived and Standby Redo Logs

Os arquivos de Online Redo Logs sao responsaveis por armazenas as alteracoes feitas em qualquer banco de dados Oracle. O oracle reutiliza esses arquivos de log de maneira cirular.

Ja em bancos que estao com o modo Archived habilitados, toda vez que o Oracle enche um redolog e passa a utilizar o seguinte, um processo ARCn faz uma copia do redolog recem utilizado, sao estes os archived redo logs. Eles podem ser utilizados para recover do banco, e também para transmitir as alteracoes ocorridas para os bancos standby!

Standby Redo Logs sao similares aos Online Redos, porem armazenam alteracoes recebidas de outras instancias. Standby Redologs sao necessarios quando se deseja implementar:

  • Maxima protecao e disponibilidade
  • Realtime apply
  • Standby Databases em cascata
  • Tem a vantagem de poderem residir em ASM/raw e serem multiplexados.

sexta-feira, junho 27

Instalando CentOS domU (Debian and CentOS dom0)

Já faz um tempo que utilizo o xen como ferramenta de virtualizacão para fins de desenvolvimento e em até producao. O melhor case é um server de virtualizacao de um Active Directory para cerca de mil usuarios junto com servidores linux com servicos de proxy, firewall, jboss, todos os guest's rodando em uma única máquina fisica. Desde aquele dia, tenho confiado no xen.
No Debian, sempre tive algumas dificuldades para instalar guests de outras Distros. Essa é a motivacao para escrever o artigo.
Vou considerar que você já possui o Xen instalado e funcionando, pelo menos para domU utilizando Debian.

Inicio
Estou utilzando o dvd do CentOS5, com Debian Etch, Xen3.0.3

1) Imagens para boot inicial
Para o boot inicial, é necessário os arquivos images/xen/initrd.img e images/xen/vmlinuz. Eles são responsáveis por iniciar o processo de instalacão do CentOS no DomU.

1.1) Arquivo de configuracao do xen (inicial)
Escolha uma das opcoes de disco, e descomente!
kernel = "/media/cdrom/images/xen/vmlinuz"
ramdisk = "/media/cdrom/images/xen/initrd.img"
# extra = "text ks=http://localserver/minimal-ks.cfg"
# bootloader = "/usr/lib/xen-3.0.3-1/bin/pygrub"
name = "centos"
memory = "256"
# disk = [ 'phy:/dev/vgscooby/xen_centos,xvda,w' ]
# disk = [ 'file:/xen/centos.iso,xvda,w' ]
vif = [ 'bridge=br0' ]
vcpus = 1
on_reboot = 'destroy'
on_crash = 'destroy'

xm create -c /etc/xen/centos

A instalacao inicia normalmente (modo texto). Utilizei NFS durante a instalacao, exportando /media/cdrom no Debian (Dom0).

Após a instalacao é necessário alterar o arquivo de configuracao do xen (/etc/xen/centos):
bootloader = "/usr/lib/xen-3.0.3-1/bin/pygrub"
name = "centos"
memory = "256"
disk = [ 'phy:/dev/vgscooby/xen_centos,xvda,w' ]
#disk = [ 'file:/xen/centos.iso,xvda,w' ]
vif = [ 'bridge=br0' ]
vcpus = 1
on_reboot = 'destroy'
on_crash = 'destroy'

2) Ai comecam os problemas
O bootloader tem um bug no debian id=390678 que exige a seguinte alteracao:
arquivo => /usr/lib/xen-3.0.2-1/lib/bin/pygrub
alterar isto => sys.path = [ '/usr/lib/python' ] + sys.path
alterar para => /usr/lib/xen-3.0.3-1/lib/python/

3) Instalar pacotes
Para compilar os passos abaixo é necessário os pacotes python2.4-dev e e2fslibs-dev

4) Baixar os fontes do Xen
http://bits.xensource.com/oss-xen/release/3.0.3-0/src.tgz/xen-3.0.3_0-src.tgz
Baixe e descompacte os fontes do Xen, eles são necessários para compilar um modulo do python utilizado pelo bootloader que não vem no Debian.

tar xvf xen-3.0.3_0-src.tar
cd xen-3.0.3_0-src/tools/pygrub
make
ls -la build/lib.linux-i686-2.4/grub/fsys/
total 16
drwxr-xr-x 3 root root 4096 2008-06-27 03:25 .
drwxr-xr-x 3 root root 4096 2008-06-27 03:25 ..
drwxr-xr-x 2 root root 4096 2008-06-27 03:25 ext2
-rw-r--r-- 1 root root 2072 2006-10-15 09:22 __init__.py

4.1) Copie todo o diretorio build/lib.linux-i686-2.4/grub/fsys/ext2 para /usr/lib/xen-3.0.3-1/lib/python/grub/fsys/

5) mkdir /var/lib/xen
Esse diretorio (mesmo vazio) é necessario

6) Finalmente! Rode seu DomU com CentOS!

Links Interessantes para Referencia
http://strugglers.net/~andy/blog/2008/01/20/red-hat-based-linux-under-xen-from-debian-etch/
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=390678
http://www.kuro5hin.org/story/2007/4/23/3719/35994

quinta-feira, junho 5

Understanding ASM (Automatic Storage Management)

Caracteristicas Gerais

  • Requer aproximadamente 60 ~ 100 Mb de memoria
  • Executar um shutdown no ASM vai executar o mesmo shutdown nas instancias conectadas no ASM
  • Datafiles criados no ASM tem o tamanho de 100M e sao extendidos sem limite maximo
  • ASM extents sao alocados
  • ASM cria extends de 1M (coarse striping) ou de 128k (fine striping)
  • sql> alter system enable restricted session; -> previne conexao ao ASM

Novos processos
  • RBAL (asm e instancias)
    • No ASM coordena atividade nos diskgroups.
    • Na instancia é reponsavel por abrir e fechar os discos
  • ORBn (asm): executa os movimento dos extents entre os discos/diskgroups
  • OSMB (instancias): faz a comunicacao entre a instancia e o ASM

Parametros de inicializacao
  • INSTANCE_TYPE = ASM (padrao é rdbms)
  • DB_UNIQUE_NAME = +ASM
  • ASM_POWER_LIMIT = de 1 a 11 - controla o impacto das operacoes de rebalanceamento de maneira que nao deixe o sistema de IO lento. Default = 1 (baixa interferencia)
  • ASM_DISKSTRING = especifica os discos visiveis ao ASM. Null => todos os visiveis ficam disponiveis
  • ASM_DISKGROUPS = lista dos nomes dos diskgroups para montar/desmontar automatico
    sql> alter diskgroup all mount;
  • LARGE_POOL_SIZE = minimo de 8M

Beneficios do ASM
  • IO performace é aumentada, porque os dados sao espalhados em varios discos
  • Disponibilidade é aumentada:
    • é possível extender sem parar o banco
    • a redundancia dos dados aumenta a disponibilidade
  • Facilidade para adicionar novos diskgroups

Alterando Diskgroups
  • adicionar discos
    sql> alter diskgroup data1 add failgroup d1fg3 disk '/dev/raw/raw6' name d1c force;
  • dropar discos
    sql> alter diskgroup data2 drop disk d2d;
  • undropppig discos - cancela operacao de drop que ainda nao foi concluida
    sql> alter diskgroup data2 undrop disks;
  • rebalancing diskgroup
    sql> alter diskgroup data1 rebalance power 5;
  • montar/desmontar
    sql> alter diskgroup data3 [mount|dismount];
  • check consistencia - verifica consistencia interna de um diskgroup
    sql> alter diskgroup data3 check all [norepair];

Migrando base para ASM com RMAN
  • Passos basicos para migrar uma base:
  1. Anotar os nomes dos control e redo logs
  2. Shutdown immediate
  3. Backup do banco
  4. Editar spfile para usar OMF para todos os destinos
  5. Editar spfile e remover control_files parameter
  6. Rodar um script de rman que faca um "backup as copy" de todos os datafiles para um destino no ASM
  7. Feito!

Guia de estudos para OCP

Depois de um longo tempo desativado, volto com uma série de artigos que visam auxiliar o profissionais que pretender realizar a prova para obter a certificacão OCP.
Os posts são uma série de resumos que fiz enquanto estava estudando e resolvi compartilhar.
Todo o material também estará disponível na minha página em http://cassianoroloff.googlepages.com

Abracos e bons estudos!

terça-feira, outubro 23

Mundial vai usar ERP Oracle

A Mundial SA (lembra das tesouras mundial?) vai investir R$ 6 mi na implantacao do E-Business Suit. Primeiramente o sistema será instalado nas unidades de Caxias, Porto Alegre, Gravataí e São Paulo. A segunda fase do projeto envolve as subsidiárias da empresa nos Estados Unidos, Argentina e na China.
O ERP rodará em plataforma RISC, com sistema operacional AIX.
A Mundial já utiliza o banco da Oracle há 12 anos.
O executivo Michael Ceitlin, diretor superintendente da Mundia destaca a importância do fato do sistema ser totalmente na web.
No ano passado a compania gaúcha faturou R$ 263 mi e espera crescimento de 10% em 2007.

Confira em detalhes: baguete.com.br

sábado, outubro 20

Oracle 11g no Debian Etch

Confira um tutorial para a instalacão do novo Oracle enterprise 11g no Debian Etch! Eu já estou com ele rodando... e o visual do instalador ainda combina com o padrão azul do gnome no debian! heheheh

segunda-feira, setembro 17

Hot backup Oracle com Ruby!

Linguagens como python, perl e scripts em bass são bem conhecidas dos SysAdmins, e isso é fato. Há algum tempo venho fazendo os scripts em Ruby principalmente pela sua sintaxe e facilidade.
Tinha alguns scripts de hot backup de algumas bases Oracle, que ainda não estavam sendo feitos com o RMAN, aí decidi reescrever os scripts em ruby, por brincadeira mesmo. Os scripts em SQL eram muito confusos além de extremamente longos (SQL né!)

Os scripts em ruby foram colocados no meu website, e quem tiver interesse pode fazer o download. O link é http://cassianoroloff.googlepages.com/rubyscripts

quinta-feira, agosto 23

How to install Oracle Database 10g on Debian

Oracle Enterprise Database is certified to running on RedHat, SuSe and YellowDog beyond many unix and windows, but don't Debian. Recently Oracle has deployed a package of the Express (and free) version in .deb format. This how to is intented to help to install Enterprise Edition. By the way, it's with you own risks!

Install required debian packages

  • rpm
  • gcc
  • alien
  • libdb1-compat
  • libdb4.4++-dev
  • libdb4.4-dev
  • libstdc++-5
  • libstdc++-5-dev
  • compat-db-4.1.25-9 = couldn't find
  • gnome-control-center = 2.14.2.-7
  • gcc-3.4.3-9.EL4 = gcc 4.1.1.1-15 and gcc3.4.6-5
  • gcc-c++-3.4.3-9.EL4
  • glibc-2.3.4-2 = libc6 2.3.6
  • glibc-common-2.3.4-2 = libc6-dev 2.3.6
  • gnome-libs-1.4.1.2.90-44.1
  • libstdc++-3.4.3-9.EL4 = cpp-3.4 3.4.6-5 /g++-3.4 3.4.6-5 / gcc-3.4 3.4.6-5 / libstdc++-6-devel
  • pev 3.4.6-5 = coundn't not found
  • libstdc++-devel-3.4.3-9.EL4
  • make-3.80-5
  • pdksh-5.2.14-30 = pdksh 5.2.14-20
  • sysstat-5.0.5-1 = sysstat 7.0.0-4
  • xscreensaver-4.18-5.rhel4.2 = xscreensaver 4.24-5
  • libaio-0.3.96 = libaio1 0.3.106-3
  • libaio-dev 0.3.106-3
  • libdb1-compat 2.1.3-9
  • linux-kernel-header 2.6.18-7
  • openmotif21 = lesstif2 0.94.4-2
Create some links for compatibility with Red Hat

ln -s /usr/bin/rpm /bin/rpm
cd /usr/lib
ln -s libstdc++.so.6 libstdc++.so.5
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
ln -s /etc /etc/rc.d

Some packages are from non-free pool package. So you need alter your /etc/apt/sources.list. Below you can see my sources.list:

deb http://linorg.usp.br/debian/ etch main contrib non-free
deb-src http://linorg.usp.br/debian/ etch main contrib non-free
deb ftp://ftp.debian.org/debian/ etch main contrib non-free
deb-src ftp://ftp.debian.org/debian/ etch main contrib non-free

deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free

Create Oracle user
groupadd oinstall
groupadd dba
useradd -m -g oinstall -G dba oracle
passwd oracle

Configure kernel parameters
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144

Setting shell limits for oracle user

file /etc/security/limits.conf:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

file /etc/pam.d/login: (I don't need change, it's already ok)
session required /lib/security/pam_limits.so

Now: Installing Oracle software!!!

./runInstaller -IgnoreSysPrereqs

domingo, agosto 19

The machine is us

quarta-feira, maio 16

Testes de desempenho com LVM - 2% !!!!!

Para quem ainda não conhece, o Logical Volume Manager é um sistema para gerenciamento de armazenagem em disco, que vem se tornando padrão no linux. Ele consiste basicamente em uma camada a mais entre os discos e o Kernel, e passa a oferecer uma versão lógica dos discos. Com isso ganhamos muita flexibilidade no gerenciamento de "partições lógicas".

Entre os principais recursos, estão a facilidade de aumentar o sistema de arquivos, simplesmente adicionando mais discos físicos. O contrário também é possível, ou seja, reduzir o tamanho de um volume lógico. O recurso de snapshots é também muito útil, principalmente para backups e ambientes de testes, esse recurso ficou inda melhor na versão 2 da LVM, agora é possível criar snapshot read-write, na primeira versão apenas snapshots read-only estavam disponíveis.

Como diz o título, não tenho como objetivo fazer aqui um tutorial de como implantar ou instalar LVM, mas apenas mostrar alguns resultados de testes de desempenho realizados.

O Ambiente
Os testes foram realizados em um storage IBM DS4000, com 14 discos scsi 73gb 10k, conectado diretamente a um servidor IBM 440. O storage contém uma única lun, utilizando RAID 10 (1 + stripping). Não foi o objetivo dos testes comparar tipos de RAID, e essa configuracão foi utilizada devido ao equipamento já estar dessa forma, e os testes foram realizados num intervalo entre a migracão de um sistema, nao havendo tempo hábil para alteracões. Duas situacões de particionamento ocorreram no testes comparativos:

  • Volumes físicos: sdb1 (200GB), sdc1 (200GB)
  • LVM - Volumes lógicos: lva (200GB), lvb (200GB)
Todas as unidades foram formatadas com ext3 (opcões default), e o servidor foi reiniciado (inclusive o storage) entre cada um dos testes, garantindo assim que não haveria interferência de dados em cache.

Os Testes
Foram realizados testes de criacão e cópia de arquivos de diversos tamanhos, nas duas unidades. Basicamente, foi medido o tempo de:
  • Criacão e cópia de um arquivo de 2 Gb.
  • Criacão e cópia de 10 arquivos de 100 Mb
  • Criacão e cópia de 32 mil arquivos com tamanhos variando entre 1Kb e 32Kb (1000 arquivos de 1kb, 1000 arquivos de 2kb, 1000 arquivos de 3kb, sucessivamente)
Cada uma dessas tarefas foi realizada 10 vezes para ser utilizado o tempo médio como comparativo.

Os Resultados
Os números são impressionantes, pode-se afirmar com total certeza, que praticamente "nenhuma" queda de desempenho é notada utilizando LVM, contrariando o que muitos imaginam.
Em muitos casos, o tempo gasto para a realizacão das tarefas foi menor utilizando LVM. Principalmente nos casos de arquivos pequenos. Quando maior a quantidade de arquivos e quanto menor o seu tamanho, o desempenho do sistema de arquivos utilizando-se LVM chega a ser melhor do que utilizando dispositivos físicos diretamente.
Nos arquivos de 2Gb, uma pequena diferenca foi notada. Nos arquivos maiores, que apresentaram piores resultados, ainda assim o overhead fica inferior a 2%.

quarta-feira, abril 25

Definindo o editor do sqlplus no linux

O sqlplus possui um recurso de editar o commando sql, atualmente armazenado no buffer, em um editor externo. Isso funciona no windows, utilizando o Notepad como editor padrão.

No linux, isso não sai funcionando logo na instalação, e é necessário alterar um parâmetro do sqlplus para que seja possível usar o Vi (ou outro editor de sua preferência):

sql> define _editor=vi;

Você também pode alterar o arquivo que o sqlplus vai gravar, para usar sintax highligth, ou deixar oculto...

sql> set editfile '.filetemp.sql';

Para tornar essas alterações permanentes, coloque esses parâmetros em um arquivo chamado login.sql no diretório corrente. O sqlplus sempre busca esse arquivo de parâmetros ao iniciar.

terça-feira, abril 17

Debian Etch (agora estavel!!!)

Há poucos dias atras (8/Abr/2007) o projeto Debian anunciou o novo release, o debian 4, codinome etch. Desde o lançamento da versão 3, sarge, já se passavam 21 meses.

Com instalador gráfico, disponível já faz algum tempo, o Debian Etch conta com instalador traduzido em 58 idiomas. A instalação pode ser feita de diversas formas, a partir de CDs/DVD, de um mirror na internet, chaveiros USB, etc...

O gerenciador de pacotes, apt-get, foi muito melhorado. Agora verifica a integridade de pacotes baixados e está mais consistente e seguro.

Rodando nas mais diversas arquiteturas, suporta 11 modelos de processadores, rodando desde palmtops até supercomputadores, e quase tudo que se encontra entre eles. Entre as arquiteturas suportadas, além é claro da i386, estão: Sun SPARC (sparc), HP Alpha (alpha) e HP PA-RISC (hppa), IBM PowerPC e IBM S/390. E agora introduzidas as versões Debian GNU/Linux 4.0 para AMD64 and Intel EM64T (amd64).

Um grande número de pacotes foi atualizado, como é tradição do debian, e agora conta com ambiente gráfico Gnome 2.14, KDE 3.5.5, Xfce 4.4. Softwares como OpenOffice.org 2.0, Gimp 2.2, Iceweasel (uma versão sem as restrições da licença do Firefox), PostgreSQL 8.1.8, MySQL 5.0, Kernel 2.6.18, Apache 2.2.3, Samba 3.0 Asterisk 1.2, e mais de 18.000 outros pacotes prontos para usar.

sábado, março 31

Oracle Open World (Latin América)

Durante os dias 27, 28 e 29 de Marco ocorreu em São Paulo a Oracle Open World. O evento apresentou solucões e tendências não apenas da própria Oracle, como também de parceiros como a IBM, SUN, HP, Dell além da gaúcha Acão informática.

O evento foi uma grande oportunidade para a Oracle apresentar produtos vindos das suas últimas aquisicões em 2006 e principalmente 2005. Essas compras deixaram a Oracle muito mais agressiva no mercado de solucões integradas de software. Como mostrou o Cyro Diehl, hoje a Oracle já está presente em pequenas e médias empresas, "hoje temos Oracle Applications em escritórios de advocacias e padarias", disse Diehl.

Gostaria de ressaltar uma iniciativa da Oracle Education Fundation - www.think.com - empresa sem fins lucrativos criada pela Oracle para incentivar a educacão. A idéia é uma comunidade online, onde alunos e professores podem entrar e aprender com base na colaboracão mútua. Para ter acesso as ferramentas interativas, websites, email, há muito espaço para criar e compartilhar idéias. As escolas precisam se cadastrar junto à instituicão, que então libera o acesso aos professores e alunos. Os pais e professores tem um excelênte controle de conteúdo, deixando assim esse sistema de aprendizado muito seguro.

Para quem não esteve presente, existem diversas entrevistas disponíveis no site do TVOracle http://oracle.corptv.com.br As entrevistas de Cyro Diehl - think.com, Javier Cordeiro - Fusões e o video de coletiva realizada com o presidente mudial Charles Philips são bacanas.

segunda-feira, março 19

Vim Tips

Hello! Vim is a great editor (the best text editor in my opinion). But at first look it seems crazy and very confuse.

Vertical selection:
Many people know the visual selection, but Vim has also the vertical selection:

CTRL + v

produces this:

vertical selection example.
bla bla bla bla bla bla
ble ble ble ble ble ble
bli bli bli bli bli bli
blo blo blo blo blo
blu blu blu blu blu

Auto indent on past:
When you past any content copied from another application (ie. firefox), vim automatically indent each line, but it's useless. So you can change this configuration while past:
:set paste
then... past your text...

segunda-feira, março 12

How to install UML with kernel 2.6 (and use in production!)

My friend Francisco try to install uml on debian sarge, and I think so it was hard to he as hard to me. And becase that little story I made this how to.

I named host the computer that will runing another uml machines, and virtual user mode machines I called umlhosts.

First you need to install debian sarge on host, and I think so you know how do this, but if you don't, download Debian Net Install from this link, and follow this instructions. We also need create one commom user, here called ernexto on host. This user will run virtual machines.

With host machine running, install User Mode Linux, these are the basic steps:

1. Install uml-utilities package:

apt-get install uml-utilities;
2. Install user_mode_linux package:
This package exists only in debian testing (etch), so if you're installing on etch host, you don't need change apt sources.list file, but my friend Xico is installing on Sarge... type all these commands! hehehe
cd /etc/apt;
cp sources.list sources.list.backup;
echo "deb http://http.us.debian.org/debian testing main contrib non-free" >> /etc/apt/sources.list;
apt-get update;
apt-get install user-mode-linux;
mv sources.list.backup sources.list;
3. Install bridge:
If you need use network in umlhosts, you need this package. Exists many ways to put network working, you can learn more at UML official site.
apt-get install bridge-utils;
4. Download one filesystem:
At uml site, you can download many filesystems. Redhat, debian, slack and others are available. We are going to download Debian 3.0 filesystem from this link. After download, unzip the file using
bunzip2 Debian-3.0r0.ext2.bz2
5. Running it!
Now we have all that we need to running many uml virtual hosts without network configuration. You can test the uml installation typing these commands:
linux ubd0=Debian-3.0r0.ext2;
You will see the commom linux initialization screen, services wake up, and if all occured successful, the login screen. You can logging it using username: root, and blank password.

6. Setup network:
You can normal shutdown the umlhost. We use tun/tap devices to run virtual network. Tun/tap is good for security reasons, becase use preconfigured devices. We will create one tun/tap device, called tap0, belongs to ernexto.
tunctl -u ernexto
echo 1 > /proc/sys/net/ipv4/ip_forward
route add -host 172.16.0.51 dev tap0
echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
arp -Ds 172.16.0.50 eth0 pub

brctl addbr br0
ifconfig eth0 0.0.0.0 promisc up
ifconfig tap0 0.0.0.0 promisc up
ifconfig br0 172.16.0.50 netmask 255.255.0.0 up
brctl stp br0 off
brctl setfd br0 1
brctl sethello br0 1
brctl addif br0 eth0
brctl addif br0 tap0

7. Finish
With tap device configured, you can run umlhost again, now starting with eth0 device.
linux.uml ubd0=Debian,eth0=tap0
After loggin in umlhost, configure network normally, using command ifconfig eth0. You can set default gatway to host ip.

For more information, see links bellow, or send mail to me.
http://user-mode-linux.sourceforge.net
http://www.debian.org

quarta-feira, fevereiro 28

Quem é que joga a fumaca pro alto...

Last week Eric Raymond published a post in Fedora devel list wich the subject "Goodbye fedora". In the message he wrote why is migrating to Ubuntu. Significant reasons to migrate from fedora includes "technical and political levels", he said. The Fedora mail list received many messages explain about the Raymond's problems and why Fedora is a good system. This is going to be one of the longest threads in the mail list history. You can read the Raymond's message following these link https://www.redhat.com/archives/fedora-devel-list/2007-February/msg01006.html

In my opinion, rpm package dependeces are very crazy, and new yum (up2date on RH) are good, but apt-get of the Debian is the best choice. I instaled to test fedora 6 on my laptop without problems. I just liked the 3d desktop of Gnome, nothing more.

The Debian Etch (testing version) are stable to desktops. You can install easily. The net-install cd have just 180 Mb and at the end of the installation you have a up to date system. The stable version (Sarge) is the best option to servers, and it is really stable.

Debian Sarge on servers and Debian Etch on desktops!!!


segunda-feira, fevereiro 26

Monitoramento com snmp e rrdtool

Logo depois que um sistema qualquer é implantado, como por exemplo um novo servidor, surge a necessidade de realizar um monitoramento dos novos serviços que estão rodando. Cada serviço tem suas particularidades, e o monitorá-los nos permite perceber essas características, como a taxa de crescimento do uso da banda da internet, ou os horarios em que os usuarios mais utilizam o banco de dados da empresa.

Com esses dados podemos "prever" algumas coisas importantes. Quando será necessário incrementar o link da internet é uma delas! Para realizar essas tarefas, existe o snmp. porém ele por si só é um tanto complexo. Aí surge o rrdtool (http://oss.oetiker.ch/rrdtool/)

Semelhante ao conhecido mrtg, ele nos permite gerar gráficos a partir dos dados obtidos com o snmp. Mas pode faz além disso: como os dados são inseridos através de scripts, você pode monitorar praticamente qualquer coisa que resulte um número. A primeira tela abaixo, é do site oficial http://oss.oetiker.ch/rrdtool/ e a segunda mostra o load de um servidor de ftp que estou criando...

Outra ferramenta muito boa é o cacti (www.cacti.org). Desenvido em php, este é uma front-end completo para o rrdtool. Ele consegue obter os dados diretamente de snmp, além de script em python/perl/shell ou qualquer outra coisa executável. Na internet você ainda encontra diversos plugins que aumentam a sua capacidade.