Arquivo da categoria: Uncategorized

Copiar tabela no Oracle – Backup de tabela

Fala PessoAll,

Uma coisa bastante útil e bastante simples que podemos precisar no nosso dia a dia é fazer uma cópia de uma determinada tabela do nosso banco de dados.

Possíveis casos:

1 – Um update nas colunas;
2 – Deleção de alguns registros;

Entre outros que envolvam os dados contidos nesta tabela.

Portanto, em casos como esses, queremos garantir que caso dê alguma “caca” tenhamos de onde recuperar as informações rapidamente, nada mais rápido que um select em uma tabela que encontra-se no mesmo banco, sem precisar voltar backup, sem precisar acionar DBA, sem nada.

Vamos ao exemplo:

Vamos supor que temos em nosso banco de dados uma tabela de módulos do nosso sistema, chamada TB_MODULOS, e precisaremos fazer umas alterações nesta tabela… Para garantir, vamos fazer uma cópia dela.

Primeiro vamos contar quantos registros temos na nossa tabela de origem, pra ter certeza que a cópia levou tudo, não adianta termos uma cópia inconsistente!

SQL> select count(*) from tb_modulos;
COUNT(*)
----------
264960

Beleza, nossa tabela tem 264.960 linhas! Portanto, nossa cópia tem que estar exatamente igual!!

Vamos agora fazer a cópia da tabela:

SQL> create table tb_modulos_22012010 as select * from tb_modulos;
Tabela criada.

Depois da tabela criada, vamos contar a nova tabela, pra garantir que tem a mesma quantidade de registros!!

SQL> select count(*) from tb_modulos_22012010;
COUNT(*)
----------
264960

Pronto, nossa cópia funcionou perfeitamente, todos os 264.960 registros que tinhamos em TB_MODULOS agora estão em TB_MODULOS_22012010, podemos agora proceder com as alterações na tabela de módulos sem maiores problemas no caso de ocorrer um erro! Garantia é o melhor remédio!!! Rsrs.

Portanto, vimos que temos como fazer uma cópia de forma rápida de uma tabela do nosso banco de dados. O comando padrão para isso é: create table "TABELA_NOVA" as select * from "TABELA_ANTIGA", lembrando que desta forma você faz uma cópia da tabela inteira, mas você pode muito bem selecionar apenas algumas colunas, fazer um filtro usando uma cláusula where e etc… a “moral da história” é que: será criada uma tabela nova com o resultado do select que você fizer!!

Mas… depois da alteração pronta e validada, lembrem-se de dropar a tabela de backup.

Espero que gostem e que seja útil!

Atc.
Gerson Júnior
gerson.vasconcelos@gmail.com

Utilizando Compartilhamento Windows no Linux

Fala PessoAll,

Bom, hoje tivemos mais um desafio bem interessante.

Recebemos um dump de um determinado cliente, o arquivo de dump (X.dmp) veio com 260Gb em um único arquivo. Infelizmente, na máquina Linux onde a base está instalada não tinha nenhum disco com esta quantidade de espaço livre. E agora pra importar esse dump??

Vasculhamos nossos servidores e achamos um servidor com mais de 260Gb livre, dando sopa! Que beleza, problema resolvido!

Idéia 1: Descompactamos os 260Gb neste servidor e a partir dele fazemos o import na máquina destino, tudo certo! NÃO! Este servidor roda Oracle 10G e o servidor de destino roda Oracle 9i, não funciona! Que falta de sorte!

Idéia 2: Descompactamos neste servidor e através da rede, criamos um mapeamento da máquina onde será importado, para esta máquina que tem espaço sobrando e tudo certo! Ok? NÃO de novo. O servidor que tem esse espaço é um Windows 2003 Server, e a máquina onde a base está rodando e o dump teria que ser importada, estava rodando Linux… Red Hat Enterprise.

Mas… porque não? Será que não tem como fazer? Pesquisando na internet achei alguns sites que explicavam como fazer e aí decidi testar. E, para alegrar ainda mais minha sexta-feira, funcionou beleza! Como se fosse uma pasta na máquina Linux.

Segue o passo a passo:


Inicialmente deve-se verificar os compartilhamentos disponíveis na máquina destino
[oracle@oracle9i oracle]$ smbclient -L 192.168.0.13 -U oracle
Password:
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC remoto
D$ Disk Recurso compartilhado padrão
RV Disk
SQLLDR Disk
ADMIN$ Disk Administração remota
C$ Disk Recurso compartilhado padrão

Em seguida deve-se conectar como SU
[oracle@oracle9i oracle]$ su -
Password:

Depois deve ser criada a pasta que irá exibir os dados do compartilhamento
[root@oracle9i root]# mkdir /mnt/Dump

Depois deve ser executado o commando que efetivamente vai criar o link
[root@oracle9i root]# mount -t smbfs -o username=oracle,password=oracle01 //192.168.0.13/SQLLDR /mnt/Dump

Depois disso já podemos listar o conteúdo da pasta, que já será exibido o conteúdo do mapeamento em questão
[root@oracle9i root]# ls /mnt/Dump
IN

É isso!

Espero que seja útil também pra vocês!

Grande abraço.

Atc.
Gerson Júnior
gerson.vasconcelos@gmail.com

Notebook com Windows 7 para um DBA

Fala PessoAll,

Creio que muita gente está pensando e vivendo um grande dilema: Migro ou não para o Windows 7.

Comprei uma máquina nova, um Dell Vostro 1320, como todas as máquinas recentes eu tinha direito ao upgrade gratuito do Vista para o Windows 7, e claro eu decidi arriscar instalar o 7 pra ver como sairia no ambiente de trabalho, enfim no dia a dia de um DBA.

Meio receioso… com o CD do XP Professional do lado, para que em caso de problemas, não perdesse tempo, iniciei a instalação.

Primeira coisa: Particionar o HD, claro… C: e D:, arquivos todos no D: e S.O no C: em caso de problemas… Formata apenas o C:, instala o S.O novo e tá tudo certo!

Para este passo, evitando quebrar cabeça, pesquisei alguém que já tivesse feito algo e achei um vídeo no Youtube que explicava direitinho como fazer. O vídeo é Como Formatar um Computador e instalar o Windows 7. Claro que eu já tinha uma noção boa, mas usando Windows XP… o vídeo serve só pra conferir se não tem nenhuma particularidade, e não tem!

Pronto… Windows 7 Ultimate instalado! Rodando 100%

Agora vem o desafio, instalar o Oracle!

Pesquisei em alguns sites, e confirmei que existe uma versão do Oracle para Windows Vista e que funciona no Windows 7. Como todo e qualquer download de produtos Oracle, fui até o OTN (http://otn.oracle.com) e dei uma pesquisada nas versões disponíveis do Database, e encontrei a tal versão para Vista, que pode ser encontrada no link: Oracle 10g para Windows Vista e 2k8, depois do download, fiz a instalação! Ele deu um erro dizendo que o S.O não era homologado para aquela versão do Oracle. Solução: Marcar o checkbox dizendo que tá sabendo, mas quer instalar assim mesmo! Pronto. Instalado, Oracle no ar, rodando, sem problema algum! Já dei shutdown/startup pra ver se ia subir numa boa, e até então tudo certo!

Depois disso vem as nossas queridas ferramentas! Tão importantes no nosso dia a dia!

Até então estão instaladas e funcionando normalmente:

– PL/SQL Developer (FrontEnd Oracle)
– Toad (FrontEnd Oracle)
– UltraEdit (Editor poderoso de Texto)
– UltraVNC (Irmão do VNC fee e mais poderodo)
– One Studio (Ferramenta de controle de solicitações)
– Putty (Ferramenta de conexões com ambientes Unix)

Tudo isso funcionando normalmente, como se fosse o bom e velho XP, só que muito mais rápido e muito mais bonito!

As demais atividades que precisamos fazer como DBA, podemos conectar via Terminal Server e fazer sem problemas, como sempre fizemos! No mais, está tudo certo! Rodando, funcionando e aprovado!

Estou agora desfrutando da novidade, como diria Jessier Quirino: “Eu ando é na frente, feito bengala de cego!”

Abraço a todos.

Atc.
Gerson Júnior
gerson.vasconcelos@gmail.com