script EXPORT

Este script peguei na internet achei util colocar aqui no BLOG, para testa-lo depois. So nao testei ainda acho que é mais valido testar antes de simplesmente confiar..

@ECHO OFF
ECHO *********************************
ECHO ** Export full do banco
ECHO ** Versao WINDOWS
ECHO *********************************
ECHO
SET FILE_DATE=%DATE%
SET FILE_DATE=%FILE_DATE:SEG=%
SET FILE_DATE=%FILE_DATE:TER=%
SET FILE_DATE=%FILE_DATE:QUA=%
SET FILE_DATE=%FILE_DATE:QUI=%
SET FILE_DATE=%FILE_DATE:SEX=%
SET FILE_DATE=%FILE_DATE:SAB=%
SET FILE_DATE=%FILE_DATE:DOM=%
SET FILE_DATE=%FILE_DATE:/=%
SET FILE_DATE=%FILE_DATE: =%
SET DIA=%FILE_DATE:~0,2%
SET MES=%FILE_DATE:~2,2%
SET ANO=%FILE_DATE:~4,4%
SET FILE_DATE=%ANO%%MES%%DIA%
ECHO %FILE_DATE%
DEL c:bkpexpfull%FILE_DATE%.DMP
EXP system/SENHA@DATABASE FULL=Y BUFFER=50000 FILE=c:bkpexpfull%FILE_DATE%.DMP FEEDBACK=1000

FlashBack SQL

Alguns exemplos de consultas que podem usufruir dos comandos SQL.

Para descobrir as versoes das transações presentes no banco:

SELECT versions_xid, versions_startscn, versions_endscn, versions_operation, rowid, owner, object_name, object_type
FROM t
VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE;

Exemplo de utilizacao do Flash back no tempo:

SELECT DISTINCT TBCLIENTE.*
FROM TBCLIENTE AS OF TIMESTAMP SYSTIMESTAMP – INTERVAL ’20’ MINUTE;

Custos no AWR – AWR – SQL Costs

SQL para mostrar as instrucoes que tendem a ter mais impacto no seu banco:

spool SQL_DELINQUENTE.LOG
col c1 heading ‘ID’ format a13
col c2 heading ‘Custo’ format 9,999,999
col c3 heading ‘Texto SQL’ format a200
select p.sql_id c1,p.cost c2,DBMS_LOB.SUBSTR(s.sql_text,4000,1) c3
from dba_hist_sql_plan p,dba_hist_sqltext s
where p.id = 0and p.sql_id = s.sql_id
and p.cost is not null
order by p.cost desc;

spool off

Alertas Advisor na pagina HOME do Enterprise Manager

Como visualizar as mensagens, dos alertas que aparecem na pagina home ou a pagina inicial do database control ?

–ALERTAS AINDA NAO RESOLVIDOS

SELECT REASON,OBJECT_TYPE TYPE,OBJECT_NAME NAMEFROM DBA_OUTSTANDING_ALERTS;

–ALERTAS RESOLVIDOS NO DBA_OUTSTANDING_ALERTS

SELECT REASON,OBJECT_TYPE TYPE,OBJECT_NAME NAMEFROM DBA_ALERT_HISTORY;

Criar dois arquivos ASMFAKE

# o comando abaixo interrompe o servico de acesso a dispositivos
# brutos – RAW
/etc/init.d/rawdevices stop
# apagar o conteudo da pasta /dev/raw -r recursivo -f sem questionar = force
rm -rf /dev/raw

# va ate a pasta /dev
cd /dev
# verifica qual a pasta atual
pwd
# recria os links de acesso aos dispositivos brutos
MAKEDEV raw
# lista a pasta /dev/raw
ls /dev/raw
# apaga o conteudo e a pasta abaixo se existir.
rm -rf /u01/asmdisks/*
# cria a pasta abaixo -p = parent nao precisa estar dentro da pasta para emitir o comando.
mkdir -p /u01/asmdisks
# troca o usuario e grupo do arquivo -R recursivo e force sem questionar
chown oracle:oinstall -Rf /u01/asmdisks
# va para a pasta
cd /u01/asmdisks
# verifica qual a pasta atual
pwd
# Preenche o arquivo abaixo com zero o arquivo em 200 x blocos de 1024k
dd if=/dev/zero of=/u01/asmdisks/asm_disk1 bs=1024k count=200
# Preenche o arquivo abaixo com zero o arquivo em 200 x blocos de 1024k
dd if=/dev/zero of=/u01/asmdisks/asm_disk2 bs=1024k count=200
# Altera a permissao liberando o arquivo totalmente
chmod 777 /dev/raw/raw*
chmod 777 /u01/asmdisks/*
# Altera usuario e grupo dos arquivos raw1 a raw5
chown oracle:oinstall /dev/raw/raw[1-5]
# inicio da associacao do dispositivo bruto ao Sistema operacional
losetup /dev/loop1 /u01/asmdisks/asm_disk1
losetup /dev/loop2 /u01/asmdisks/asm_disk2

# preencher o arquivo rawdevices para que no proximo Boot ele ja tenha conhecimento dos rawdevices
cat /dev/null > /etc/sysconfig/rawdevices

echo “/dev/raw/raw1 /dev/loop1” >> /etc/sysconfig/rawdevices
echo “/dev/raw/raw2 /dev/loop2” >> /etc/sysconfig/rawdevices

# grupo
chown root:oinstall /dev/loop[1-5]
# permissao
chmod 777 /dev/loop[1-5]

# Iniciar servico de rawdevices
/etc/init.d/rawdevices start

# Listar o rawdevices do SO
raw -qa

# reiniciar o clusterware
/u01/app/oracle/product/10.2.0/db_1/bin/localconfig reset
/u01/app/oracle/product/10.2.0/db_1/bin/localconfig delete
/u01/app/oracle/product/10.2.0/db_1/bin/localconfig add

# Listar os dispositivos reconhecidos pelo Oracle.
su – oracle
export ORACLE_SID=+ASM
/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus sys/oracle as sysdba <startup;
alter system set “_asm_allow_only_raw_disks”=false scope=spfile;
alter system set asm_diskstring=’/u01/asmdisks/*’ scope=both;
shutdown immediate;
startup;
select path
from V$ASM_DISK;
exit;
EOF

exit

Exercicios: Confirme se a sua instancia ASM esta enxergando os discos fisicos. Para isso inicie o ASM e logo depoisverifique as informacoes na V$ASM_DISK, esta view mostra os discos descobertos pela instancia ASM.
Faça um script para isso:
Arquivo: listadiscoraw.shexport ORACLE_SID=+ASMsqlplus / as sysdba @listadiscoraw.sql
Arquivo: listadiscoraw.sql############### INICIOSET ECHO OFFselect *from V$ASM_DISK;############### TERMINO
Crie um script para criar os diskgroups passando como parametro o rawdevice, ou seja o numero do diskgroup aser criado. Com o script crie dois diskgroups: 1 e 2.Os nomes dos diskgroups sao dgroup1 e dgroup2Pode ser criado pelo dbca.
Arquivo: criadiskgroup.shexport ORACLE_SID=+ASMsqlplus / as sysdba @criadiskgroup.sql
Arquivo: criadiskgroup.sql############### INICIOCREATE DISKGROUP dgroup&EXTERNAL REDUNDANCYDISK ‘/u01/asmdisks/asm_disk&&’;############### TERMINO
Faça um script para confirmar se o seu diskgroup foi criado.Confirme se o diskgroup foi criado.
Arquivo: mostradiskgroups.sh#export ORACLE_HOMEexport ORACLE_SID=+ASMsqlplus / as sysdba @criadiskgroup.sql
Arquivo: mostradiskgroups.sql############### INICIOuse a V$ASM_DISKGROUP e V$ASM_FILE############### TERMINO
Metodos de utilizacao da ASM
Crie um script para criar a seguinte tablespace e logo depoisinserir dados em uma tabela CLIASM criada nesta TBS.
Arquivo: criatbs.sh#export ORACLE_HOMEexport ORACLE_SID=+ASMsqlplus / as sysdba @criatbs.sql
ARQUIVO criatbs.sql############### INICIOCREATE TABLESPACE TBSASM1 including datafiles and contents;CREATE TABLESPACE TBSASM1DATAFILE ‘+dgroup1’ SIZE 10M AUTOEXTEND ON;
create table CLIASM(CODIGO NUMBER,NOME VARCHAR2(100))tablespace TBSASM1;
insert into CLIASMvalues(1,’CLITESTE 1′);
insert into CLIASMvalues(2,’CLITESTE 2′);
commit;
select * from CLIASM;
select table_name, tablespace_name from user_tables;
exit;
############### TERMINOCrie a tabela a seguir:
create table dicionario as select * from dict;
Crie a tablespace TBSASM2 baseado no diskgroup2.
Mova os dados da tabela dicionariopara a tablespace TBSASM2.
alter table DICIONARIOtablespace TBSASM2;
Verifique atraves da tabela do dicionario DBA_SEGMENTS:
SELECT SUBSTR (s.owner, 1, 15) “OWNER “,SUBSTR (s.segment_name, 1, 30) “SEGMENT_NAME “,SUBSTR (s.segment_type, 1, 10) segment_tp, s.tablespace_name,s.next_extentFROM dba_segments sWHERE s.next_extent > (SELECT MAX (f.BYTES)FROM dba_free_space fWHERE f.tablespace_name = s.tablespace_name)/ Faca um script para fazer o backup copy dos datafilesda tablespace USERS.Restaure o datafile em questao para a TBSASM1.

Erro reports builder

Deparamos com um problema no reports builder exatamente quando se faz a visualizacao do relatorio pelo report builder em maquinas que tem a placa de video do tipo ATI Rage. Mas so conseguimos contornar visualizando o relatorio, pela opcao arquivo-> visualizar e nao usar a ferramenta de live preview.

O problema foi reduzido fazendo:

rwbuilder.exe userid=ora1/oracle@reportsdb JVMOPTIONS=”=-Xms512m -Xmx512m -Dsun.java2d.ddscale=true -Dsun.java2d.noddraw=true”

REP-3300 Fatal Error in Toolkit UI-4099

Atualizar a versao do java JRE que fica no painel de controle.

14.2.3 Java AWT Windows Hangs with Specific Graphics Cards
When you start Reports Server with rwserver.exe, the UI may not display and Reports Server may hang on computers with specific graphics cards (for example, ATI Rage XL PCI card). This occurs due to a problem with the UI mechanism used in Java.

As a workaround, start Reports Server with the JVMOPTIONS command line keyword set as shown in the following example:

rwserver SERVER=test JVMOPTIONS=”-Dsun.java2d.noddraw=true”

Oracle & SUN

De graça:

Nao adianta imaginar, pensar, ou refletir que um codigo aberto é simplesmente de graça, isso ate agride a inteligencia de qualquer ser humano – alguem sempre ta pagando a conta. De gratis, so o AR que respiramos.
E que se é open é o melhor e o mais rapido, e que nunca ira se pagar algo pra se ter uma solucao. Sempre tem um plugin pra se licenciar. Sempre temos um bom produto com boas pessoas e uma boa empresa por tras que nos garante isso. E isso OBVIAMENTE precisa de dinheiro, de todas as formas imaginaveis, ate para pagar a energia eletrica do servidor que hospeda o servidor de arquivos do servidor “FREE!!!”.
A Oracle, no meu ponto de vista, investiu no melhor e obviamente vai melhorar os produtos. Eu acho correto cobrar pelo suporte porque se voce quer uma configuracao melhor e maior deve pagar, ja patch e correcoes ja devem fazer parte do produto nao devem ser adquiridos a parte (vc errou vc deve corrigir). A SUN pagava a conta por ter o java, e o vendeu, se fosse extremamente lucrativo teria vendido ?

O que acho:

Os produtos que sao melhores devem sobreviver. Os que nao sao tao bons quanto o que existem da oracle, devem se manter na mesma versao que se encontram.
Veja o AS10g – agora seu kernel (servidor) é o BEA. O AS10g em alguns sites era penalizado em termos de performance, mas existe algum servidor que roda todos os produtos Oracle ? Ja viram um produto cliente servidor ir pra WEB sem mudar uma linha de codigo como o Oracle Forms ? Rodar o java puro e simples ate tomcat faz. Agora J2EE puro, tudo bem temos o Jboss, mas roda o que alem do java J2EE ? Qual produto ? Alias qual a gama de produtos ?
A Oracle foi uma das primeiras a criar seu servidor proprio (tinha seu proprio container, OAS 4.0) A Oracle pra mim continua a melhor de todas juntas.

Solaris ?

Nao se preocupe, Solaris tem varias caracteristicas que o Linux nao tem, o SO é incrivel.

Java vai acabar ?

Só se for para interromper 90% das paginas WEB da internet, fora os sistemas. O java é bytecode interpretado, lento pra até morrer, o que a Oracle deveria era criar um codigo que aumenta a sua velocidade e melhoria de uso de memoria. Bom seria isso que encontramos – estou com medo do java acabar – nas listas de discussao ?

Mysql codigo encerrado ?

Deveria ser encorporado ao banco oracle express que atualmente é free até 4GB como uma option quem sabe! O Oracle express atende aos pequenos e quando for grande, compre a licenca standard e cresça ! Quem usa somente o mysql nao sabe o que esta perdendo.

Minha conclusao:

A grande maioria dos softwares que rodam em piloto automatico, nao atendem aos gigantes. Os pequenos se acham resolvidos e portanto acham que a solucao é identica pra todos. Gente, entenda e estudo o software Oracle ou pelo menos leiam sobre os produtos, veja uma solução usando RAC na pratica, um AS10G em cluster na pratica, desenvolvimento e utilização do ADF e OFA, BAM, SOA suite, ERP Ebussines suite….

E nao somente dizer:

RODA, eu ja instalei, é next next finish, eu vi na internet uma reportagem….

A concorrencia é saudavel, portanto pessoal acho que alguns devem ficar acordados mais algumas milhares de noites para não deixar passar …