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