Confiram no link abaixo :
http://goo.gl/rQejT
" Oracle Database 11g Release 2 Enterprise Edition provides comprehensive features to easily manage the most demanding transaction processing, business intelligence, and content management applications.
Now you have easy access to information that you need to administer your Oracle Database with our downloadable Interactive Quick Reference. We have taken our traditional printed poster for Database Administrators, and created an electronic format packed with even more information.
Use this helpful reference as a cheat sheet for writing custom data dictionary scripts, locating views pertinent to a specific database component, and more. "
Friday, December 24, 2010
Tuesday, December 14, 2010
Anúncio de emprego - dá pra entender?
Encontrei este anuncio em um site especializado em vagas para TI.
Estes anúncios esquisitos me dão medo!
DBA ORACLE
Perfil: Desenvolvimento de aplicações utilizando Oracle10/11g, MS SQL 2000/2008 com grandes(500GB +) e médio (1100GB) bancos de dados J2EE para apoiar as 3 aplicações web escritas em nível frameworks de desenvolvimento Java,como Hibernate,Spring e Struts. Um forte conhecimento para apoiar, desenvolver aplicações web Java EE usando peixes de vidro, Tomcat e servidores de aplicação Websphere é necessária Oracle em uma plataforma de aplicações web-based 02/01 anos experiência em desenvolvimento de aplicações de servidores padrão usando java padrão (vidro peixe, Tomcat e Websphere) Banco de dados Application (DBA), Application Developer(AP)/Quality Assurance (QA)
Inglês fluente
Enviar currículo com pretensão salarial e disponibilidade para início.
Alguém topa?
DBA ORACLE
Perfil: Desenvolvimento de aplicações utilizando Oracle10/11g, MS SQL 2000/2008 com grandes(500GB +) e médio (1100GB) bancos de dados J2EE para apoiar as 3 aplicações web escritas em nível frameworks de desenvolvimento Java,como Hibernate,Spring e Struts. Um forte conhecimento para apoiar, desenvolver aplicações web Java EE usando peixes de vidro, Tomcat e servidores de aplicação Websphere é necessária Oracle em uma plataforma de aplicações web-based 02/01 anos experiência em desenvolvimento de aplicações de servidores padrão usando java padrão (vidro peixe, Tomcat e Websphere) Banco de dados Application (DBA), Application Developer(AP)/Quality Assurance (QA)
Inglês fluente
Enviar currículo com pretensão salarial e disponibilidade para início.
Alguém topa?
Tuesday, October 26, 2010
unable to see package body on sqldeveloper - SOLVED
Solução :
grants :
GRANT EXECUTE ON DBMS_METADATA TO user_unable_to_see ;
GRANT CREATE ANY PROCEDURE TO user_unable_to_see;
Cabe analisar a segurança ao conceder os privilégios acima.
Oks?!!
Julio Cesar Correa
grants :
GRANT EXECUTE ON DBMS_METADATA TO user_unable_to_see ;
GRANT CREATE ANY PROCEDURE TO user_unable_to_see;
Cabe analisar a segurança ao conceder os privilégios acima.
Oks?!!
Julio Cesar Correa
Marcadores:
oracle,
package,
package body,
pl/sql,
plsql,
sql developer,
sqldeveloper,
TI
Friday, October 08, 2010
How to use Oracle db service_name in jdbc connection string
simple like that:
using only SID :
jdbc:oracle:thin:@10.1.1.5:1521:mydbusing sid or service_name :
Change " : " to " / " .
Marcadores:
connection,
jdbc,
oracle,
service name,
string,
TI
Wednesday, September 22, 2010
PL/SQL - wrapping/obfuscating objects
Preciso escrever um post um pouco mais detalhado,mas por hoje vou deixar algumas linha de código por aqui.Acho que deve ajudar.
A palavra "Wrap" tem alguns significados dentre eles embrulhar ou envolver algo ,normalmente para protegê-lo.
No nosso caso iremos proteger nosso codigo.
Pois bem " wrapping" é diferente de "encrypting" .Uma vez tendo um wrapped object você não consegue mais desfaze-lo* .
Para trabalhar com criptografia existem outros pacotes no Oracle que não iremos entrar em detalhe agora,mas se você procura por isso pode encontrar alguns detalhes em :
Usando wrap utility :
Tenho um arquivo ".sql" que contem o codigo da minha procedure em pl/sql.
$ ls |grep my_p
my_proc.sql
jccorrea|arvato28 ~/Documents
$
jccorrea|arvato28 ~/Documents
$ wrap iname=my_proc.sql
PL/SQL Wrapper: Release 11.2.0.1.0- Production on Thu Sep 23 19:01:15 2010
Copyright (c) 1993, 2009, Oracle. All rights reserved.
Processing my_proc.sql to my_proc.plb
jccorrea|arvato28 ~/Documents
$ more my_proc.plb
CREATE OR REPLACE PROCEDURE my_procfoo wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
43 79
If0FucdLbueE4p3U0uRQWu+lr9Awg5nnm7+fMr2ywFyFO1+WFpeu3NlywcB0iwlp523+mYFc
pdKZUjK/ssKLwMAy/tLWmboxxXXFVMe+kr5UgqampybzvA==
/
jccorrea|arvato28 ~/Documents
$
Feito isso você pode rodar o arquivo my_proc.plb para criar a procedure.
Usando a package DBMS_DDL
Usando a package dbms_ddl podemos usar o objeto create_wrapped para fazer a mesma coisa que fizemos acima :
SQL> declare
my_ddl varchar2(150) ;
begin
my_ddl := 'create or replace procedure my_procfoo as v_num integer; begin v_num := 5 ; end;' ;
dbms_ddl.create_wrapped(my_ddl);
end ; 2 3 4 5 6
7 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.01
SQL> select TEXT
from all_source
where name = 'MY_PROCFOO'
and type = 'PROCEDURE' 2 3 4
5 /
TEXT
--------------------------------------------------------------------------------
procedure my_procfoo wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
TEXT
--------------------------------------------------------------------------------
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
3f 75
IpCGLNo/BDIha28AwTNsfGHp6Cgwg5nnm7+fMr2ywFyFO1+WFpeu3Nly6rh0K+dt/pmBXKXS
mVIyv7LCK7jAMv7S1p6jMcV1xVTVU5K+VIKmphHX89g=
TEXT
--------------------------------------------------------------------------------
Elapsed: 00:00:00.06
SQL>
Em um próximo post trateremos o assunto de criptografia !
Abs,
JC
/
jccorrea|arvato28 ~/Documents
$
Feito isso você pode rodar o arquivo my_proc.plb para criar a procedure.
Thursday, September 09, 2010
GUOB TECH DAY 18/10/2010 - São Paulo
Olá,
Está chegando a hora do grande evento sobre tecnologia Oracle no Brasil organizado pelo GUOB com apoio do OTN e LAOUC.
Em breve (18/10/2010) teremos o GUOB TECH DAY 2010 em São Paulo .
Está chegando a hora do grande evento sobre tecnologia Oracle no Brasil organizado pelo GUOB com apoio do OTN e LAOUC.
Veja a lista dos palestrantes internacionais confirmados:
Daniel Morgan (DBA, USA)
Robert Freeman (DBA, USA)
Hans Forbrich (Dev/Applicationes, Canada)
Ben Prusinski (DBA/EBS, USA)
Ronald Bradford (MySQL, USA)
Francisco Munoz Alvarez (DBA, NZ)
E completando a lista nosso principal palestrante, Tom Kyte.
Reserve este dia para um grande momento com os principais autores de artigos e livros sobre tecnologia Oracle.
Prepare sua viagem, divulgue para seus amigos. Não perca esta grande oportunidade.
Em breve abriremos as inscrições para o evento. Esteja associado ao GUOB.
Faça seu cadastro em nosso site para receberes maiores informações.
Faça seu cadastro em nosso site para receberes maiores informações.
--------------------
Mais informações no site do GUOB : http://www.guob.com.br/
Para quem ainda não conhece o GUOB é membro do LAOUC, Latin American Oracle Users Council, entidade que integra os grupos de usuários Oracle na América Latina .
Abraços,
JC
Thursday, September 02, 2010
Max Gehringer - O marketing pessoal e a progressão da carreira
Para mim todos os artigos são excelentes e descritos com o "pé no chão".
http://goo.gl/CRmH
http://cbn.globoradio.globo.com/comentaristas/max-gehringer/MAX-GEHRINGER.htm#
http://goo.gl/CRmH
http://cbn.globoradio.globo.com/comentaristas/max-gehringer/MAX-GEHRINGER.htm#
Marcadores:
carreiras,
imagem,
marketing pessoal,
mundo corporativo,
TI
Max Gehringer - A administração do tempo
Este custa caro :
http://goo.gl/BlFJ
http://cbn.globoradio.globo.com/comentaristas/max-gehringer/2009/11/12/A-ADMINISTRACAO-DO-TEMPO.htm#
http://goo.gl/BlFJ
http://cbn.globoradio.globo.com/comentaristas/max-gehringer/2009/11/12/A-ADMINISTRACAO-DO-TEMPO.htm#
Marcadores:
administração do tempo,
carreiras,
tecnologia,
tempo,
TI
Max Gehringer - Apelidos no ambiente de trabalho
Mais um artigo excelente!
http://goo.gl/EfPj
http://goo.gl/EfPj
Max Gehringer - A inveja no trabalho
Eu sempre aprecio os artigos do Max Gehringer,vou colocar os posts que mais gostei de ouvir e aqueles que eu tenho nos meus livros.É uma pessoas que passou por diversos cargos em uma empresa.Enfim,tem muito o que contar e ensinar.
Segue o link do audio :
http://goo.gl/ENzZ
http://cbn.globoradio.globo.com/comentaristas/max-gehringer/2009/06/15/INVEJA-NO-TRABALHO.htm
Segue o link do audio :
http://goo.gl/ENzZ
http://cbn.globoradio.globo.com/comentaristas/max-gehringer/2009/06/15/INVEJA-NO-TRABALHO.htm
Monday, August 23, 2010
Uninstalling "schema visualizer" from Oracle SQL Developer
Quem instalou um plugin chamado schema visualizer no Oracle SQL Developer e agora quer desisntalar(principalmente porque ele fica tentando abrir um navegador e ir para a o site do fabricante) pode realizá-lo desta forma segundo o site do fabricante:
1. Exit Oracle SQL Developer.
2.Delete file sqldev_path/sqldeveloper/extensions/com.sumsoftsolutions.erd4oracle.sqldev.jar
3.Delete directory
sqldev_path/sqldeveloper/extensions/com.sumsoftsolutions.erd4oracle.sqldev
Where sqldev_path is your SQL Developer installation directory.
Para mim funcionou ok!!!
Saturday, August 21, 2010
Ubuntu via Wubi - Recover the boot using Live CD
Para quem já usou o wubi para instalar o Ubuntu sem precisar trabalhar diretamente com particionamento de disco e tal,já pode ter caído com alguns problemas na hora do boot.
Em uma máquina minha aconteceu um deste problemas.O melhor mesmo é instalar na forma tradicional mesmo (partionando disco,configurando passo-a-passo),mas como eu não quero mexer em nada no meu disco por estes dias tive que usar a forma de recuperação do boot usando o Live CD.
https://wiki.ubuntu.com/WubiGuide
Após subir o Ubuntu usando o Live CD faça:
Abra um terminal(command line mode) .
root@ubuntu:/home/ubuntu# fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8a4615a8
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 102400 7 HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2 13 3917 31354880 7 HPFS/NTFS
/dev/sda3 3917 11749 62914560 7 HPFS/NTFS
/dev/sda4 11749 19457 61915136 7 HPFS/NTFS
Sei que a partição onde instalei o Wubi no Windows 7 é a /dev/sda3.Lá para o usuário que resolveu dar uma olhada tem os discos virtuais criados pelo Wubi para o seu Ubuntu .
Usando o comando blkid eu consigo mais informações sobre as partições e disco:
root@ubuntu:/home/ubuntu# blkid
/dev/loop0: TYPE="squashfs"
/dev/sda1: LABEL="System Reserved" UUID="8A8C6D878C6D6E9F" TYPE="ntfs"
/dev/sda2: UUID="B4DAA353DAA310A2" TYPE="ntfs"
/dev/sda3: LABEL="DATA2" UUID="100AD95B0AD93F02" TYPE="ntfs"
/dev/sda4: LABEL="DATA1" UUID="264038024037D771" TYPE="ntfs"
Também me lembro que a partição que instalei chama-se DATA2 .Partindo desta eu posso inicializar a recuperação:
-- criar um ponto de montagem
root@ubuntu:/home/ubuntu# sudo mkdir /win
-- monta a partição
root@ubuntu:/# sudo mount /dev/sda3 /win
-- mostrandi informações do device
root@ubuntu:/# df -Ph
Filesystem Size Used Avail Use% Mounted on
aufs 1.5G 60M 1.5G 4% /
none 1.5G 280K 1.5G 1% /dev
/dev/sr0 700M 700M 0 100% /cdrom
/dev/loop0 672M 672M 0 100% /rofs
none 1.5G 112K 1.5G 1% /dev/shm
tmpfs 1.5G 24K 1.5G 1% /tmp
none 1.5G 108K 1.5G 1% /var/run
none 1.5G 0 1.5G 0% /var/lock
none 1.5G 0 1.5G 0% /lib/init/rw
/dev/sda3 60G 31G 30G 51% /win
root@ubuntu:/#
-- criando o ponto de montagem do disco virtual do Ubuntu
root@ubuntu:/home/ubuntu# sudo mkdir /vdisk
-- montando o disco virtual
root@ubuntu:/# sudo mount -o loop /win/ubuntu/disks/root.disk /vdisk
root@ubuntu:/#
-- executando o utiliátio filesystem check - fsck para procurar possíveis problemas que afetaram o boot:
root@ubuntu:/# sudo fsck /win/ubuntu/disks/root.disk
fsck from util-linux-ng 2.17.2
e2fsck 1.41.11 (14-Mar-2010)
/win/ubuntu/disks/root.disk: recovering journal
/win/ubuntu/disks/root.disk contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Inodes that were part of a corrupted orphan linked list found. Fix? yes
Inode 1050146 was part of the orphaned inode list. FIXED.
Inode 1077514 was part of the orphaned inode list. FIXED.
Inode 1701061 was part of the orphaned inode list. FIXED.
Inode 1702072 was part of the orphaned inode list. FIXED.
Inode 1702193 was part of the orphaned inode list. FIXED.
Inode 1702199 was part of the orphaned inode list. FIXED.
Inode 1702364 was part of the orphaned inode list. FIXED.
Inode 1702367 was part of the orphaned inode list. FIXED.
Inode 1702426 was part of the orphaned inode list. FIXED.
Inode 1702547 was part of the orphaned inode list. FIXED.
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: -(4447807--4447809) -(4447811--4447818) -(4453421--4453424) -4453429 -4453431
Fix? yes
Inode bitmap differences: -1050146 -1077514 -1701061 -1702072 -1702193 -1702199 -1702364 -1702367 -1702426 -1702547
Fix? yes
/win/ubuntu/disks/root.disk: ***** FILE SYSTEM WAS MODIFIED *****
/win/ubuntu/disks/root.disk: 289154/1905008 files (0.2% non-contiguous), 2919640/7614464 blocks
root@ubuntu:/#
Obs.
As opções de Fix deve ser passada pelo usuário.
-- Verificando novamente o filesystem para ver se a correção foi realmente efetuada .
root@ubuntu:/# sudo fsck /win/ubuntu/disks/root.disk
fsck from util-linux-ng 2.17.2
e2fsck 1.41.11 (14-Mar-2010)
/win/ubuntu/disks/root.disk: clean, 289154/1905008 files, 2919640/7614464 blocks
root@ubuntu:/#
Tudo OK,então :
- faça o restart do Ubuntu(up pelo LIve CD).
- Retire o CD,e tecle enter para continaur o processo de restart
- Suba o Ubuntu novamente,sem o Live CD.
É isso!
Abs,
JC
Em uma máquina minha aconteceu um deste problemas.O melhor mesmo é instalar na forma tradicional mesmo (partionando disco,configurando passo-a-passo),mas como eu não quero mexer em nada no meu disco por estes dias tive que usar a forma de recuperação do boot usando o Live CD.
https://wiki.ubuntu.com/WubiGuide
Após subir o Ubuntu usando o Live CD faça:
Abra um terminal(command line mode) .
root@ubuntu:/home/ubuntu# fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8a4615a8
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 102400 7 HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2 13 3917 31354880 7 HPFS/NTFS
/dev/sda3 3917 11749 62914560 7 HPFS/NTFS
/dev/sda4 11749 19457 61915136 7 HPFS/NTFS
Sei que a partição onde instalei o Wubi no Windows 7 é a /dev/sda3.Lá para o usuário que resolveu dar uma olhada tem os discos virtuais criados pelo Wubi para o seu Ubuntu .
Usando o comando blkid eu consigo mais informações sobre as partições e disco:
root@ubuntu:/home/ubuntu# blkid
/dev/loop0: TYPE="squashfs"
/dev/sda1: LABEL="System Reserved" UUID="8A8C6D878C6D6E9F" TYPE="ntfs"
/dev/sda2: UUID="B4DAA353DAA310A2" TYPE="ntfs"
/dev/sda3: LABEL="DATA2" UUID="100AD95B0AD93F02" TYPE="ntfs"
/dev/sda4: LABEL="DATA1" UUID="264038024037D771" TYPE="ntfs"
Também me lembro que a partição que instalei chama-se DATA2 .Partindo desta eu posso inicializar a recuperação:
-- criar um ponto de montagem
root@ubuntu:/home/ubuntu# sudo mkdir /win
-- monta a partição
root@ubuntu:/# sudo mount /dev/sda3 /win
-- mostrandi informações do device
root@ubuntu:/# df -Ph
Filesystem Size Used Avail Use% Mounted on
aufs 1.5G 60M 1.5G 4% /
none 1.5G 280K 1.5G 1% /dev
/dev/sr0 700M 700M 0 100% /cdrom
/dev/loop0 672M 672M 0 100% /rofs
none 1.5G 112K 1.5G 1% /dev/shm
tmpfs 1.5G 24K 1.5G 1% /tmp
none 1.5G 108K 1.5G 1% /var/run
none 1.5G 0 1.5G 0% /var/lock
none 1.5G 0 1.5G 0% /lib/init/rw
/dev/sda3 60G 31G 30G 51% /win
root@ubuntu:/#
-- criando o ponto de montagem do disco virtual do Ubuntu
root@ubuntu:/home/ubuntu# sudo mkdir /vdisk
-- montando o disco virtual
root@ubuntu:/# sudo mount -o loop /win/ubuntu/disks/root.disk /vdisk
root@ubuntu:/#
-- executando o utiliátio filesystem check - fsck para procurar possíveis problemas que afetaram o boot:
root@ubuntu:/# sudo fsck /win/ubuntu/disks/root.disk
fsck from util-linux-ng 2.17.2
e2fsck 1.41.11 (14-Mar-2010)
/win/ubuntu/disks/root.disk: recovering journal
/win/ubuntu/disks/root.disk contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Inodes that were part of a corrupted orphan linked list found. Fix
Inode 1050146 was part of the orphaned inode list. FIXED.
Inode 1077514 was part of the orphaned inode list. FIXED.
Inode 1701061 was part of the orphaned inode list. FIXED.
Inode 1702072 was part of the orphaned inode list. FIXED.
Inode 1702193 was part of the orphaned inode list. FIXED.
Inode 1702199 was part of the orphaned inode list. FIXED.
Inode 1702364 was part of the orphaned inode list. FIXED.
Inode 1702367 was part of the orphaned inode list. FIXED.
Inode 1702426 was part of the orphaned inode list. FIXED.
Inode 1702547 was part of the orphaned inode list. FIXED.
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: -(4447807--4447809) -(4447811--4447818) -(4453421--4453424) -4453429 -4453431
Fix
Inode bitmap differences: -1050146 -1077514 -1701061 -1702072 -1702193 -1702199 -1702364 -1702367 -1702426 -1702547
Fix
/win/ubuntu/disks/root.disk: ***** FILE SYSTEM WAS MODIFIED *****
/win/ubuntu/disks/root.disk: 289154/1905008 files (0.2% non-contiguous), 2919640/7614464 blocks
root@ubuntu:/#
Obs.
As opções de Fix deve ser passada pelo usuário.
-- Verificando novamente o filesystem para ver se a correção foi realmente efetuada .
root@ubuntu:/# sudo fsck /win/ubuntu/disks/root.disk
fsck from util-linux-ng 2.17.2
e2fsck 1.41.11 (14-Mar-2010)
/win/ubuntu/disks/root.disk: clean, 289154/1905008 files, 2919640/7614464 blocks
root@ubuntu:/#
Tudo OK,então :
- faça o restart do Ubuntu(up pelo LIve CD).
- Retire o CD,e tecle enter para continaur o processo de restart
- Suba o Ubuntu novamente,sem o Live CD.
É isso!
Abs,
JC
Wednesday, August 18, 2010
Ruby + Oracle(tests) : get_ddl objects usando a gem ruby-plsql
Com um arquivo básico .rb e contendo :
Após executar :
require 'rubygems'
require 'ruby-plsql'
plsql.connection = OCI8.new("dbajcc","mypasswd","my_db")
content = plsql.DBMS_METADATA.GET_DDL('FUNCTION','SHOW_DT','DBAJCC')
Dir.chdir('/home/jccorrea/Documents/my_repository/ruby')
puts Dir.pwd #return the current directory
aFile = File.new("fct1_show_dt.sql","w")
aFile.syswrite(content)
aFile.close
Após executar :
jccorrea|mylinuxpc ~
$ cd Documents/my_repository/ruby/
jccorrea|mylinuxpc ~/Documents/my_repository/ruby (master*)
$ ls
01_connect_dboracle.rb exp_db_objets.rb~ fct2_show_dt.sql README
01_hello.rb expdp_db_full_str.dmp fct_show_date.sql
01_use_ruby-plsql.rb expdp_db_full_str.log get_oracle_ddl.rb
exp_db_objets.rb fct1_show_dt.sql github_badge.txt
jccorrea|mylinuxpc ~/Documents/my_repository/ruby (master*)
$ ls -ltrh | grep fct1_show_dt.sql
-rw-r--r-- 1 jccorrea jccorrea 136 2010-08-17 14:11 fct1_show_dt.sql
jccorrea|mylinuxpc ~/Documents/my_repository/ruby (master*)
$ more fct1_show_dt.sql
CREATE OR REPLACE FUNCTION "DBAJCC"."SHOW_DT"
return date
as
dt date default sysdate;
begin
return dt ;
end ;
jccorrea|mylinuxpc ~/Documents/my_repository/ruby (master*)
$
NIC Bonding ou NIC Teaming no Linux
Este post vai abordar uma forma que pode ser usada nas versões RHEL,Centos,OEL e etc.Para debian a localização dos arquivos mudam um pouco então vai ficar para outro post.
O conceito é ter duas placas de redes trabalhando como se fosse uma.Em ambiente Oracle RAC é muito utilizado .
A imagem abaxo é provida by Google mesmo :
Tenho um server rodando Openfiler(rpath linux),adicionei 2 placas de rede eth1 e eth2 :
eth1 Link encap:Ethernet HWaddr 08:00:27:F9:6C:D1
inet addr:10.7.7.8 Bcast:10.7.7.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef9:6cd1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:94 errors:0 dropped:0 overruns:0 frame:0
TX packets:87 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9532 (9.3 Kb) TX bytes:4078 (3.9 Kb)
eth2 Link encap:Ethernet HWaddr 08:00:27:36:28:DB
inet addr:10.7.7.9 Bcast:10.7.7.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe36:28db/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:410 errors:0 dropped:0 overruns:0 frame:0
TX packets:255 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:54430 (53.1 Kb) TX bytes:40355 (39.4 Kb)
[root@storage1 proc]# cd /etc/sysconfig/network-scripts/
Precisamos editar os arquivos ifcfg-NIC( ex.ifcfg-eth0) .
Vamos deixa-los desta forma :
DEVICE=eth0 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none TYPE=Ethernet |
Obs.USERCTL é o parametro de controle espeficando que somente o root poderá ter controle sobre o device.
No parametro DEVICE teremos em um arquivo eth1 eno outro eth2 conforme o device correspodente.
Fiz uma cópia dos arquivos via cp mesmo e mv e temos :
-rw-r--r-- 1 root root 155 Aug 11 16:56 ifcfg-eth1.old
-rw-r--r-- 1 root root 38 Aug 11 20:09 ifcfg-eth0
-rw-r--r-- 1 root root 155 Aug 13 19:10 ifcfg-eth1
-rw-r--r-- 1 root root 155 Aug 13 19:10 ifcfg-eth2
[root@storage1 network-scripts]#
[root@storage1 network-scripts]# more ifcfg-eth2
DEVICE=eth2
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
[root@storage1 network-scripts]# more ifcfg-eth1
DEVICE=eth1
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
Agora o detalhe.Vamos criar um arquivo para o novo device bond0 e editá-lo:
[root@storage1 network-scripts]# cp ifcfg-eth1.old ifcfg-bond0
[root@storage1 network-scripts]# more ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.7.7.10
NETMASK=255.255.255.0
ONBOOT=yes
USERCTL=no
Arquivos prontos vamos editar o arquivo /etc/modprobe.conf e adcionar as seguintes linhas :
<snip>
alias bond0 bonding
options bond0 miimon=100 mode=1
</snip>
Remover o arquivo desnecessário :
[root@storage1 network-scripts]# rm -rfv ifcfg-eth1.old
removed `ifcfg-eth1.old'
[root@storage1 network-scripts]#
Reiniciar o serviço de rede :
[root@storage1 network-scripts]# service network restart
Shutting down interface bond0: [ OK ]
Shutting down interface eth0: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down interface eth2: [ OK ]
Shutting down loopback interface: [ OK ]
Removing bonding module: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: Enslaving eth1 to bond0
Enslaving eth2 to bond0
[ OK ]
Bringing up interface eth0:
Determining IP information for eth0... done.
[ OK ]
[root@storage1 network-scripts]#
Obs.Eu já havia habilitado a bond0,por isso meu output saiu um pouco diferente.
[root@storage1 network-scripts]# ifconfig
bond0 Link encap:Ethernet HWaddr 08:00:27:F9:6C:D1
inet addr:10.7.7.10 Bcast:10.7.7.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef9:6cd1/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:9281 errors:0 dropped:0 overruns:0 frame:0
TX packets:7506 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1340824 (1.2 Mb) TX bytes:1201622 (1.1 Mb)
eth0 Link encap:Ethernet HWaddr 08:00:27:88:81:1E
inet addr:10.7.7.101 Bcast:10.7.7.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe88:811e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4819 errors:0 dropped:0 overruns:0 frame:0
TX packets:4413 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:790732 (772.1 Kb) TX bytes:682460 (666.4 Kb)
eth1 Link encap:Ethernet HWaddr 08:00:27:F9:6C:D1
inet addr:10.7.7.10 Bcast:10.7.7.255 Mask:255.255.255.0
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1091 errors:0 dropped:0 overruns:0 frame:0
TX packets:868 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:137663 (134.4 Kb) TX bytes:128429 (125.4 Kb)
eth2 Link encap:Ethernet HWaddr 08:00:27:F9:6C:D1
inet addr:10.7.7.10 Bcast:10.7.7.255 Mask:255.255.255.0
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:8191 errors:0 dropped:0 overruns:0 frame:0
TX packets:6639 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1203227 (1.1 Mb) TX bytes:1073435 (1.0 Mb)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:107 errors:0 dropped:0 overruns:0 frame:0
TX packets:107 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2342 (2.2 Kb) TX bytes:2342 (2.2 Kb)
[root@storage1 network-scripts]# ping bond0
^C
[root@storage1 network-scripts]# ping 10.7.7.10
PING 10.7.7.10 (10.7.7.10) 56(84) bytes of data.
64 bytes from 10.7.7.10: icmp_seq=0 ttl=64 time=0.521 ms
64 bytes from 10.7.7.10: icmp_seq=1 ttl=64 time=0.090 ms
^C
--- 10.7.7.10 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.090/0.305/0.521/0.216 ms, pipe 2
[root@storage1 network-scripts]#
Vamos testar agora de um outro host se realmente está funcionando:
jccorrea|ubuntudesktop /
$ ping 10.7.7.10
PING 10.7.7.10 (10.7.7.10) 56(84) bytes of data.
64 bytes from 10.7.7.10: icmp_seq=1 ttl=64 time=0.347 ms
64 bytes from 10.7.7.10: icmp_seq=2 ttl=64 time=0.261 ms
^C
--- 10.7.7.10 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.261/0.304/0.347/0.043 ms
jccorrea|ubuntudesktop /
$ ssh root@10.7.7.10
root@10.7.7.10's password:
Last login: Fri Aug 13 18:42:44 2010 from 10.7.7.1
[root@storage1 ~]#
[root@storage1 ~]# tcpdump -i bond0 -c 15
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bond0, link-type EN10MB (Ethernet), capture size 96 bytes
22:24:33.946529 IP 10.7.7.101.ssh > 10.7.7.1.33533: P 473451413:473451525(112) ack 365296259 win 429 <nop,nop,timestamp 3904714 28213627>
22:25:13.982943 IP 10.7.7.1.33533 > 10.7.7.101.ssh: . ack 112 win 23888 <nop,nop,timestamp 28213632 3904714>
22:25:13.982973 IP 10.7.7.101.ssh > 10.7.7.1.33533: P 112:224(112) ack 1 win 429 <nop,nop,timestamp 3904715 28213632>
22:24:33.947043 IP 10.7.7.1.33533 > 10.7.7.101.ssh: . ack 224 win 23888 <nop,nop,timestamp 28213633 3904715>
22:24:33.948205 IP 10.7.7.10.59472 > 172.16.36.1.domain: 48745+ PTR? 1.7.7.10.in-addr.arpa. (39)
22:24:34.484064 IP 10.7.7.1 > 10.7.7.10: ICMP echo request, id 21077, seq 83, length 64
22:24:34.484100 IP 10.7.7.10 > 10.7.7.1: ICMP echo reply, id 21077, seq 83, length 64
22:24:34.868340 IP 10.7.7.1 > 10.7.7.10: ICMP echo request, id 13141, seq 108, length 64
22:24:34.868370 IP 10.7.7.10 > 10.7.7.1: ICMP echo reply, id 13141, seq 108, length 64
22:24:35.484814 IP 10.7.7.1 > 10.7.7.10: ICMP echo request, id 21077, seq 84, length 64
22:24:35.484859 IP 10.7.7.10 > 10.7.7.1: ICMP echo reply, id 21077, seq 84, length 64
22:24:35.867589 IP 10.7.7.1 > 10.7.7.10: ICMP echo request, id 13141, seq 109, length 64
22:24:35.867623 IP 10.7.7.10 > 10.7.7.1: ICMP echo reply, id 13141, seq 109, length 64
22:24:36.483285 IP 10.7.7.1 > 10.7.7.10: ICMP echo request, id 21077, seq 85, length 64
22:24:36.483330 IP 10.7.7.10 > 10.7.7.1: ICMP echo reply, id 21077, seq 85, length 64
15 packets captured
920 packets received by filter
661 packets dropped by kernel
[root@storage1 ~]# ifconfig bond0
bond0 Link encap:Ethernet HWaddr 08:00:27:F9:6C:D1
inet addr:10.7.7.10 Bcast:10.7.7.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef9:6cd1/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:32466 errors:0 dropped:0 overruns:0 frame:0
TX packets:155434 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3919603 (3.7 Mb) TX bytes:39208375 (37.3 Mb)
Obs.Caso não suba corretamente tente : modprobe bonding |
Para configurar no Red Hat 5/OEL 5 mudou a localização de um parametro .Agora você coloca o parametro BONDING_OPTS="miimon=100 mode=1" dentro do arquivo /etc/sysconfig/network-scripts/ifcfg-bond0 e no arquivo /etc/modprobe.conf somente deixe a linha alias bond0 bonding .
Tudo deve funcionar Ok.
Uma outra coisa interessante é o parametro mode que pode ser colocado nas versões anteriores no modprobe.conf ou no RHEL 5 no próprio arquivo do device bondn.O default se não espefificar nenhuma parametro é mode=0 ou balance-rr.
“ balance-rr or 0
Round-robin policy: Transmit packets in sequential order from the first available slave through the last. This mode provides load balancing and fault tolerance.”
Enviar pacotes em order sequencial da primeira placa slave para a ultima.Trabalha com load balancing e tolerancia a falhas.
Para testar o mode tive que pesquisar sobre o rpath Linux e o gerenciador de pacotes chamado conary.Para minha sorte um amigo aqui da empresa ,o André me deu uma força!
Link legal:
Abs,
JC
Friday, August 13, 2010
New OCA 10g - DBA David Ricardo
Olá a todos,
Venho parabenizar o meu amigo David Ricardo pelas suas conquistas em 2010!
Pelas aprovações nos exames da Oracle 1Z0-007 1Z0-047 e hoje 1Z0-042 e mais ainda pelo esforço sem igual nos estudos para poder obtê-las.
David,continue em buscas dos seus sonhos !
Que Deus te ilumine cara!
Abs,
JC
Venho parabenizar o meu amigo David Ricardo pelas suas conquistas em 2010!
Pelas aprovações nos exames da Oracle 1Z0-007 1Z0-047 e hoje 1Z0-042 e mais ainda pelo esforço sem igual nos estudos para poder obtê-las.
David,continue em buscas dos seus sonhos !
Que Deus te ilumine cara!
Abs,
JC
Marcadores:
certificação,
certification,
david ricardo,
dba,
oca
Thursday, August 05, 2010
Clonando um disco no Virtual Box - Ubuntu 10.04
Depois te instalar o OEL 5 em uma vm no Virtual Box preciso clonar o disco principal onde está instalado Linux para poder subir uma outra vm.
Assim funcionou OK :
root@arvato28:/home/jccorrea/.VirtualBox/HardDisks# pwd
/home/jccorrea/.VirtualBox/HardDisks
root@arvato28:/home/jccorrea/.VirtualBox/HardDisks# ls -lhtr
total 41G
-rw------- 1 jccorrea jccorrea 41G 2010-08-04 20:13 vm1hd01.vdi
root@arvato28:/home/jccorrea/.VirtualBox/HardDisks# VBoxManage clonehd /home/jccorrea/.VirtualBox/HardDisks/vm1hd01.vdi /home/jccorrea/.VirtualBox/HardDisks/vm2hd01.vdi
Oracle VM VirtualBox Command Line Management Interface Version 3.2.6
(C) 2005-2010 Oracle Corporation
All rights reserved.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a0413164-1b40-4c63-b23c-f26e5723b058
root@arvato28:/home/jccorrea/.VirtualBox/HardDisks#
Cool !
JC
Assim funcionou OK :
root@arvato28:/home/jccorrea/.VirtualBox/HardDisks# pwd
/home/jccorrea/.VirtualBox/HardDisks
root@arvato28:/home/jccorrea/.VirtualBox/HardDisks# ls -lhtr
total 41G
-rw------- 1 jccorrea jccorrea 41G 2010-08-04 20:13 vm1hd01.vdi
root@arvato28:/home/jccorrea/.VirtualBox/HardDisks# VBoxManage clonehd /home/jccorrea/.VirtualBox/HardDisks/vm1hd01.vdi /home/jccorrea/.VirtualBox/HardDisks/vm2hd01.vdi
Oracle VM VirtualBox Command Line Management Interface Version 3.2.6
(C) 2005-2010 Oracle Corporation
All rights reserved.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a0413164-1b40-4c63-b23c-f26e5723b058
root@arvato28:/home/jccorrea/.VirtualBox/HardDisks#
Cool !
JC
Tuesday, August 03, 2010
Oracle - SQL - DATE e TIMESTAMP datatypes
Olá,
Vamos falar rapidamente sobre os tipos de dados que armazenam data.
Aqui vamos falar de date,timestamp,timestamp with timezone e timestamp with local timezone.O tipo INTERVAL que armazena intervalo de datas já foi abordado em outro post neste blog.
date : armazena o dia,mes,ano,hora.minuto e segundos.
timestamp : armazena o dia,mes,ano,hora.minuto mais a precisão de segundos que vai de de 0-9.O default(padrão) é 6 .
timestamp with time zone: armazena o dia,mes,ano,hora.minuto mais a precisao de segundos que vai de de 0-9.O default(padrão) é 6 .
A diferença aqui é que é armazenado o deslocamento em relação ao UTC(Cordinated Universal Time) or Greenwich Mean Time por exemplo para a cidade de São Paulo temos "-3:00".
O deslocamento é armazenado juntamente com o dado real no banco de dados.
timestamp with local time zone : armazena o dia,mes,ano,hora.minuto mais a precisão de segundos que vai de de 0-9.O default(padrão) é 6 .
A diferença agora para o tipo acima é que o deslocamento em relação ao UTC não é armazenado juntamente com os dados deste tipo.Funciona assim,de acordo com a configuração de
do time zone de cada sessão do usuário o Oracle mostra o valor correspondente ao que foi armazenado.
Para ficar melhor mostraremos um exemplo:
SQL> create table x_date_datatypes(id number(2),dt date,tmstp timestamp(4),tmstp_local timestamp(6) with local time zone,tmstp_wtmz timestamp(2) with time zone);
Table created.
Elapsed: 00:00:00.08
SQL> insert into x_date_datatypes
values(1,sysdate,systimestamp,systimestamp,systimestamp) ; 2
1 row created.
Elapsed: 00:00:00.03
SQL> commit;
Commit complete.
Elapsed: 00:00:00.28
SQL>
SQL> alter session set nls_date_format ='dd/mm/rrrr hh24:mi:ss' ;
Session altered.
Elapsed: 00:00:00.03
SQL> select * from x_date_datatypes;
ID DT TMSTP TMSTP_LOCAL TMSTP_WTMZ
--- ------------------- ------------------------------ ------------------------------ ------------------------------------------------------------
1 03/08/2010 00:44:54 03-AUG-10 12.44.54.3052 AM 03-AUG-10 12.44.54.305240 AM 03-AUG-10 12.44.54.31 AM -03:00
Elapsed: 00:00:00.00
SQL>
Como podemos ver ,a segunda coluna é do tipo date e armazena até a precisado do segundo.
Na terceira coluna o tipo é timestamp e podemos ver que está armazenando a precisão em frações de segundos com 4 posições como definido no comando CREATE TABLE.
Vamos falar sobre a quinta coluna primeiro que é do tipo timestamp with time zone.Podemos ver que ela armazena o deslocamento em relação ao UTC,que para São Paulo é -03:00.
Mesmo trocando o fuso horário da sessão/time zone o valor não é alterado,pois o deslocamento é armazenado juntamente com os dados.
Na quarta coluna que é do tipo timestamp with local timezone é armazenado como no tipo timestamp a precisão em frações de segundos.
Podemos notar no default que não aparece o deslocamento em relação ao UTC,mas se fizermos o seguinte:
SQL> alter session set time_zone='+6:00' ;
Session altered.
Elapsed: 00:00:00.00
SQL> select systimestamp from dual ;
SYSTIMESTAMP
---------------------------------------------------------------------------
03-AUG-10 01.15.20.695118 AM -03:00
Elapsed: 00:00:00.00
SQL> select * from x_date_datatypes;
ID DT TMSTP TMSTP_LOCAL TMSTP_WTMZ
--- ------------------- ------------------------------ ------------------------------ ------------------------------------------------------------
1 03/08/2010 00:44:54 03-AUG-10 12.44.54.3052 AM 03-AUG-10 09.44.54.305240 AM
Podemos ver que o valor mostrado na coluna TMSTP_LOCAL está calculado segundo a sessão do usuário descontando mais 3 horas em relação ao UTC,pois no valor armazenado no banco de dados
o UTC era -03:00
Dica :Consulte a V$TIMEZONE_NAMES
Para mais informações sobre estes tipos de data/hora consulte aguide de SQL disponível no tahiti.oracle.com .
Abs,
JC
Subscribe to:
Posts (Atom)