MigraTI - Soluções em banco de dados

terça-feira, 14 de julho de 2009

Que tipo de DBA é você?

Bom me fizeram esta pergunta hoje e eu respondi!
Bom eu sou o DBA "moda foka"!
É meio que uma expressão minha. Mas não sabia que alguém havia criado classes de DBA´s.

Sou obrigado a concordar com o que o Rodrigo passou sobre esta função.

Gostaria apenas de defender um pouco mais "Tipo que sou de DBA".

Ao ler o artigo. Defino-me como DBA Google.

Pelo simples fato que falta experiência para me denominar outro tipo de DBA.
Trabalho em uma empresa de Consultoria em TI e provavelmente com muito estudo me tornarei um DBA de infra ou de projetos, logicamente se eu quiser seguir estes passos.

Acho que poderia ter uma classe para DBA´s com pouca experiência.

Achei muito interessante este artigo segue abaixo o link para que vocês possam ler e tirar suas conclusões.
Artigo Rodrigo Almeida

quinta-feira, 9 de julho de 2009

Gerenciando Objetos de Usuários II

Dia 4/06/2009 postei alguns scripts para gerenciar objetos de usuários.
Como mover de uma tablespace para outra etc...

Existia uma duvida em minha cabeça.
Será que o oracle 10G ainda não havia um modo de mover os campos LOB para outro local sem ser pelo famoso EXPDP?
Bom Pesquisando um pouco no metalink e no santo google da vida encontrei alguns procedimentos bem úteis.
Porem fiquei com a impressão de que não seria fácil.
No metalink eu encontrei o Doc ID: 386341.1, ele tem vários passos para efetuar a manutenção destes objetos.
Porem se você é contratado por uma empresa e você nunca nem olhou para os objetos daquela empresa você vai ficar na mão quanto a descobrir informações sobre o LOBSEGMENT.
então vou postar aqui alguns "passos" a mais que para quem não conhece a estrutura das tabelas possa se virar.


Este Select lhe mostrará quais os segmentos de lob estão na tablespace.
SELECT OWNER,SEGMENT_NAME,
SEGMENT_TYPE,TABLESPACE_NAME,BYTES/1024/1024
from dba_segments
where SEGMENT_TYPE='LOBSEGMENT'
and TABLESPACE_NAME='<>';

Pegando o nome do segmento vc inclui no select abaixo para descobrir qual tabela e qual coluna tem o campo lob.
SELECT TABLE_NAME,COLUMN_NAME,
SEGMENT_NAME,INDEX_NAME
FROM DBA_LOBS
WHERE SEGMENT_NAME='<>';


Após receber os dados deste dois select é só você alterar a tabela com o campo lob.

ALTER TABLE <>
MOVE LOB( <>) STORE AS (
TABLESPACE <> )
/

exemplo.

SQL> CREATE TABLE LANA_LOB (
id NUMBER
, xml_file CLOB
, image BLOB
);

Tabela criada.

SQL> select OWNER,SEGMENT_NAME,SEGMENT_TYPE,
TABLESPACE_NAME,BYTES/1024/1024
from dba_segments
where SEGMENT_TYPE='LOBSEGMENT'
and TABLESPACE_NAME='LANA';

OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME BYTES/1024/1024
------------- ---------------------------- ------------------ ------------------ ----------------
LANA SYS_LOB0000016287C00003$$ LOBSEGMENT LANA ,0625
LANA SYS_LOB0000016287C00002$$ LOBSEGMENT LANA ,0625
LANA SYS_LOB0000016282C00003$$ LOBSEGMENT LANA ,0625
LANA SYS_LOB0000016282C00002$$ LOBSEGMENT LANA ,0625



SQL> SELECT TABLE_NAME,COLUMN_NAME,
SEGMENT_NAME,INDEX_NAME
FROM DBA_LOBS
WHERE SEGMENT_NAME='SYS_LOB0000016287C00003$$';

TABLE_NAME COLUMN_NAME SEGMENT_NAME INDEX_NAME
------------- -------------- ------------------------------ ------------------------------
LANA_LOB IMAGE SYS_LOB0000016287C00003$$ SYS_IL0000016287C00003$$

SQL> CREATE TABLESPACE LANA_LOB
DATAFILE '/u01/app/oracle/oradata/lana/lana_LOB.DBF'
size 50m autoextend on next 50m maxsize 500m;

Tablespace criado.

SQL> ALTER TABLE LANA_LOB
MOVE LOB(image) STORE AS (
TABLESPACE LANA_LOB )
/

Tabela alterada.

SQL> select OWNER,SEGMENT_NAME,SEGMENT_TYPE,
TABLESPACE_NAME,BYTES/1024/1024
from dba_segments
where SEGMENT_TYPE='LOBSEGMENT'
and TABLESPACE_NAME='LANA';

OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME BYTES/1024/1024
--------- ----------------------------- ------------------ ------------------ ---------------
LANA SYS_LOB0000016287C00002$$ LOBSEGMENT LANA ,0625
LANA SYS_LOB0000016282C00003$$ LOBSEGMENT LANA ,0625
LANA SYS_LOB0000016282C00002$$ LOBSEGMENT LANA ,0625

SQL> select OWNER,SEGMENT_NAME,SEGMENT_TYPE,
TABLESPACE_NAME,BYTES/1024/1024
from dba_segments
where SEGMENT_TYPE='LOBSEGMENT'
and TABLESPACE_NAME='LANA_LOB';

OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME BYTES/1024/1024
---------- ----------------------------- ------------------ ------------------ ----------------
LANA SYS_LOB0000016287C00003$$ LOBSEGMENT LANA_LOB ,0625

SQL>

sexta-feira, 3 de julho de 2009

Ausência

Nesta quarta Feira dia 03/07/2009 enfim fui fazer a prova da tão esperada OCP.

Não vou dizer que foi fácil, pois nas dez primeiras questões eu fiquei com vontade de pegar o rascunho que a
atendente da prometric entrega, levantar e sair da sala. Nem mesmo vou dizer que foi tranquila devido ao atraso de trinta minutos para iniciar a minha prova, pois ocorreu um problema no computador do teste e quase fui impossibilitado de fazer a prova.

Mas enfim após dois anos me envolvendo com a tecnologia da Oracle consigo o Certificado Profissional da área. Como dizem os meus colegas de trabalho agora só falta aprender Oracle. ;)