Mostrando postagens com marcador Manual. Mostrar todas as postagens
Mostrando postagens com marcador Manual. Mostrar todas as postagens

quinta-feira, 14 de fevereiro de 2013

OERR Utility

Não muito conhecido, porém útil, o Oracle Error(OERR) é um utilitário que compõe a instalação do produto Oracle nas plataformas Linux e Unix. É um shell script localizado no diretório $ORACLE_HOME/bin que permite pesquisar nos arquivos Oracle messages (.msg) e exibir a causa e a ação para os erros pesquisados, como neste exemplo:

[oracle@orcl ~]$ export ORACLE_HOME=/u02/app/oracle/product/10.2/db_1
[oracle@orcl ~]$ oerr ora 1555
01555, 00000, "snapshot too old: rollback segment number %s with name \"%s\" too small"
// *Cause: rollback records needed by a reader for consistent read are
//         overwritten by other writers
// *Action: If in Automatic Undo Management mode, increase undo_retention
//          setting. Otherwise, use larger rollback segments
[oracle@orcl ~]$
Sua syntaxe é composta pelo facility(digamos “código”) e error(número do erro):
[oracle@orcl ~]$ oerr
Usage: oerr facility error
 
Facility is identified by the prefix string in the error message.
For example, if you get ORA-7300, "ora" is the facility and "7300"
is the error.  So you should type "oerr ora 7300".
 
If you get LCD-111, type "oerr lcd 111", and so on.
O facility econtrado no $ORACLE_HOME/lib/facility.lis nada mais é que um arquivo texto que aponta a localização dos messages(.msg) para o componente especificado, vejamos:
[oracle@orcl ~]$ cat $ORACLE_HOME/lib/facility.lis | grep -i rman
rman:rdbms:*:
ou seja, o arquivo de mensagem do RMAN está em:


 $ORACLE_HOME/$Component/mesg/${Facility}us.msg)

[oracle@orcl ~]$ ll $ORACLE_HOME/rdbms/mesg/rmanus.msg
-rw-r--r-- 1 oracle dba 334691 Abr 19  2010 /u02/app/oracle/product/10.2/db_1/rdbms/mesg/rmanus.msg
Lista dos facility disponíveis no facility.lis:

AMD AUD AV BBED BRW CLSR CLSS CLST CPY CRS DA DAC DAH DAL DBV DGM DRG DS DS2 DSP DSW DSZ EBU EVM EXP FMC FMD FMF FMG FMM IAC IAD IAG IAP ILF IMG IMP KFED KFOD KGP KOP KUP LCD LDAP LDT LEM LFI LHT LMM LPM LPX LRM LSF LSX LTM LXCNV LXE LXI MD MGR MIG NAUK NCI NCIDL NCIERR NCR NCX NET NID NIQ NL NLT NMC NMCPI NMO NMP NMR NMS NMXECM NMXW NMZ NNC NNF NNL NNO NPL NZ O2 O2F O2I O2U OAE OAO OBK OCI OFC OMA OMAPI OMB OMD OMGUT OMKT OMU OMV OPW ORA OSN OSNQ PCB PCBE PCC PCF PCG PCI PCM PCP PCS PG2 PGO PGP PLS PLW PM PMX PPE PR2 PRC PRCO PRIF PRO PROC PROT PX PXU QSM RMAN SBT SCH SDO SMAMP SMG SMPSLR SNL SP1 SP2 SP3 SPW SQL SRW SRW2 SVPXNT SVPXOS TIX TLEM TNL TNPL TNS TS TXR TXU TYP UDE UDI UL VID VIR VPP VPXDBA VPXECM VPXOAFND VPXODB VPXSAPR3 WA XOQ 

 E nos arquivos de mensagem (.msg) temos a causa e a ação para o erro pesquisado:
[oracle@orcl ~]$ cat $ORACLE_HOME/rdbms/mesg/rmanus.msg | grep -A 5 -n -i 0574
769:0574, 1, "rman aborting due to errors read/writing dbms_pipe"
770-// *Cause:  RMAN was run with input/output being sent to dbms_pipe.  An
771-//          error was encountered while reading from or writing to the pipe.
772-//          This error should be preceeded by information describing the error.
773-// *Action: RMAN terminates.  Refer to the cause/action for the preceding
774-//          errors.
[oracle@orcl ~]$ oerr rman 0574
0574, 1, "rman aborting due to errors read/writing dbms_pipe"
// *Cause:  RMAN was run with input/output being sent to dbms_pipe.  An
//          error was encountered while reading from or writing to the pipe.
//          This error should be preceeded by information describing the error.
// *Action: RMAN terminates.  Refer to the cause/action for the preceding
//          errors.

Para a plataforma Windows a Oracle não disponibilizou o utiliátio OERR, contudo podemos encontrar na Internet varios batchs que disponibilizam a mesma funcionalidade que o OERR Linux & Unix.

Encontrei um muito bom, desenvolvido por John Barrenechea que pode ser baixado clicando aqui.

Basta decompactar o arquivo “Oerr.rar” e executar o Oerr.exe, como na imagem abaixo:


Ou atraves do prompt ( executar >> cmd ):



REFERÊNCIAS:

http://www.oracleutilities.com/OSUtil/oerr.html
http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/TDT1/Default.aspx
Mais informações →

sábado, 23 de junho de 2012

E-book Expert Oracle Database Architecture 2º Edição Gratuito

A empresa Red Gate esta disponibilizando gratuitamente mais um e-book para a comunidade Oracle, esta vez é o livro Expert Oracle Database Architecture 2º edição escrito por um dos maiores especialistas do mundo Oracle, Thomas Kyte.

O livro trata as versões 9i, 10g e 11g apresentando exemplos e conceitos bem detalhados de banco de dados, ideal para quem esta iniciando sua trajetória. A edição trata também as new features do Oracle 11g.


Mais informações →

domingo, 19 de fevereiro de 2012

Instalando o Oracle Text – 10/11g

O Oracle Text, nem sempre conhecido por este nome, é uma feature existente desde a versão 8/8i e chamada ate então como Oracle Intermedia ou Oracle Context, após o lançamento da versão 9i este passou a ser chamado de Oracle Text e assegura este nome até a atual versão 11g. 

Esta feature utiliza a linguagem SQL para indexar, pesquisar e analisar textos ou documentos armazenados no banco de dados, tornando-se indispensável para quem busca uma solução que permita filtrar e extrair dados de diferentes formatos de arquivos, incluindo os mais populares como documentos do Microsoft Office, PDF, HTML, XML entre muitos outros. 

Agora que já conhecemos um pouco sobre esta feature, vamos aprender a instalar O Oracle Text. Lembrando que você também pode instalar o Oracle Text quando está instalando o produto Oracle(imagem abaixo). 


Vamos identificar o que temos instalado. Notem que o Oracle Text não está!

SQL> set lines 200
SQL> col Component for a70
SQL> select comp_name "Component", status from dba_registry;
 
Component                                                              STATUS
---------------------------------------------------------------------- ----------
Oracle XML Database                                                    VALID
OWB                                                                    VALID
Oracle Application Express                                             VALID
Oracle Enterprise Manager                                              VALID
OLAP Catalog                                                           VALID
Spatial                                                                VALID
Oracle Multimedia                                                      VALID
Oracle Expression Filter                                               VALID
Oracle Rules Manager                                                   VALID
Oracle Workspace Manager                                               VALID
 
Component                                                              STATUS
---------------------------------------------------------------------- ----------
Oracle Database Catalog Views                                          VALID
Oracle Database Packages and Types                                     VALID
JServer JAVA Virtual Machine                                           VALID
Oracle XDK                                                             VALID
Oracle Database Java Packages                                          VALID
OLAP Analytic Workspace                                                VALID
Oracle OLAP API                                                        VALID
 
17 rows selected.

Agora iremos executar dois scripts fornecidos pela Oracle e que estão localizados dentro do $ORACLE_HOME/rdbms/admin. (Devem ser executados na sequencia apresentada) 

O primeiro script, catctx.sql deve ser executado como SYSDBA e é responsável por criar os objetos e o schema CTXSYS necessários para o Oracle Text, na sua execução devemos fornecer alguns parâmetros conforme vemos abaixo: 

SYNTAXE: 

SQL> @?/ctx/admin/catctx.sql A B C D

A = Senha da conta CTXSYS que será criada
B = Default tablespace para o CTXSYS
C = Tablespace temporária para o CTXSYS
D = Se a conta deve ficar bloqueada ou não (LOCK|NOLOCK)

Execução:

SQL> conn / as sysdba
Connected.
SQL> @?/ctx/admin/catctx.sql pwdtext SYSAUX TEMP NOLOCK
 
SQL> ...
SQL> ...
SQL> ...

O segundo script, dr0defin.sql deve ser executado com o usuário CTXSYS pois irá definir o idioma padrão a ser utilizado pelo Oracle Text, devemos passar como parâmetro a languague desejada.No exemplo abaixo passamos o padrão americano porem o Oracle Text ainda suporta outras languages, como Inglês (EUA), Dinamarquês (DK), Holandês (NL), Finlandês (SF), Francês (F), Alemão (D), Italiano (IT), Português (PT), Espanhol (E) e Sueco (S).

SQL> conn ctxsys/pwdtext
Connected.
SQL> @?/ctx/admin/defaults/dr0defin.sql "AMERICAN";
old   1: SELECT DECODE('&nls_language',
new   1: SELECT DECODE('AMERICAN',
 
LA
--
us
 
Creating lexer preference...
 
PL/SQL procedure successfully completed.
 
Creating wordlist preference...
 
PL/SQL procedure successfully completed.
 
Creating stoplist...
 
PL/SQL procedure successfully completed.
 
 
PL/SQL procedure successfully completed.
 
Creating default policy...
 
PL/SQL procedure successfully completed.

Definida a linguagem preferencial, vamos bloquear a conta do CTXSYS como medida de segurança.

SQL> conn / as sysdba
Connected.
SQL> alter user ctxsys account lock password expire;
 
User altered.

Agora vamos verificar se o Oracle Text está instalado e Válido:

SQL> set lines 200
SQL> col Component for a70
SQL> select comp_name "Component", status from dba_registry;
 
Component                                                              STATUS
---------------------------------------------------------------------- ----------
Oracle Text                                                            VALID
Oracle XML Database                                                    VALID
OWB                                                                    VALID
Oracle Application Express                                             VALID
Oracle Enterprise Manager                                              VALID
OLAP Catalog                                                           VALID
Spatial                                                                VALID
Oracle Multimedia                                                      VALID
Oracle Expression Filter                                               VALID
Oracle Rules Manager                                                   VALID
Oracle Workspace Manager                                               VALID
 
Component                                                              STATUS
---------------------------------------------------------------------- ----------
Oracle Database Catalog Views                                          VALID
Oracle Database Packages and Types                                     VALID
JServer JAVA Virtual Machine                                           VALID
Oracle XDK                                                             VALID
Oracle Database Java Packages                                          VALID
OLAP Analytic Workspace                                                VALID
Oracle OLAP API                                                        VALID
 
18 rows selected.

Caso seja necessário desinstalar o mesmo basta seguir os passos abaixo, !! lembrando que isto pode provocar a invalidação de vários objetos dependentes !!

SQL> connect SYS/password as SYSDBA
SQL> @?/ctx/admin/catnoctx.sql
SQL> drop procedure sys.validate_context;
Mais informações →

Alterando Banco de dados RAC para modo archivelog

Anteriormente no artigo “Alterando banco de dados single para modo archivelog” verificamos a importância da base de dados estar configurada em modo archivelog e aprendemos como efetuar esta alteração em um database single. 

Nosso objetivo hoje é aprender como efetuar este ajuste em um ambiente clusterizado (RAC). Mãos a obra! 

Primeiramente vamos confirmar se a base de dados está em modo NOARCHIVELOG:

SQL> select distinct NAME, i.INSTANCE_NAME, OPEN_MODE, LOG_MODE from gv$database, gv$instance i order by 2;
 
NAME      INSTANCE_NAME    OPEN_MODE  LOG_MODE
--------- ---------------- ---------- ------------
ORCL      orcl1            READ WRITE NOARCHIVELOG
ORCL      orcl2            READ WRITE NOARCHIVELOG
ou
SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /u01/app/oracle/product/10.2.0/db_1/dbs/arch
Oldest online log sequence     16
Current log sequence           17

Confirmado que a base está em modo NOARCHIVELOG, vamos ajustar um destino para os archives (redolog arquivados) que serão gerados. 

Neste momento é importante ficarmos atentos se o destino existe em todos os nós do cluster, ou então, também podemos configurá-los diferentemente para cada instance. 

* Ajustando um destino único para todas as instances:

Sintaxe: alter system set log_archive_dest_1=’LOCATION=’ scope=spfile sid=’*’;

SQL> alter system set log_archive_dest_1='LOCATION=/oraarchive/orcl' scope=spfile sid='*';
 
System altered.

Desta forma ajustamos o destino 1 dos archives para o local “/oraarchive/orcl”, note que antes do caminho de destino devemos especificar “LOCATION”. O scope será como spfile e o SID=’*’ (todos), caso seja necessário ajustar destinos diferentes devemos especificar o nome da instance no SID, como abaixo:

SQL> alter system set log_archive_dest_1='LOCATION=/oraarchive/orcl' scope=spfile sid='orcl1';
 
System altered.

OBS: Caso a opção SID não seja especificada no comando alter system ela recebe por default ‘*’ 

Ajustado o(s) destino(s), vamos agora ajustar o formato que os archives serão gerados.

Sintaxe: alter system set log_archive_format=’_%t_%s_%r.arc’ scope=spfile;

SQL> alter system set log_archive_format='orcl_%t_%s_%r.arc' scope=spfile;
 
System altered.

ORACLE_SID = Nome da instance;
%t = Número da thread;
%s = Número de sequencia do log;
%r = Resetlog ID.

Nosso próximo passo é alterar o parâmetro cluster_database para FALSE, desta forma desabilitamos “temporariamente” o Real Application Cluster.

Sintaxe: alter system set cluster_database=false scope=spfile;

SQL> alter system set cluster_database=false scope=spfile;
 
System altered.

Agora podemos parar o database: Sintaxe: srvctl stop database -d

[oracle@rac1 ~] cd $ORA_CRS_HOME
[oracle@rac1 bin]$ ./srvctl stop database -d orcl

Verificando se as instances orcl1 e orcl2 foram paradas:

[oracle@rac1 bin]$ ./crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.orcl.db    application    OFFLINE   OFFLINE
ora....l1.inst application    OFFLINE   OFFLINE
ora....l2.inst application    OFFLINE   OFFLINE
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2

Vamos iniciar agora a instance orcl1 para podermos alterar o ‘DATABASE’, para modo ARCHIVELOG.

[oracle@rac1 bin]$ export ORACLE_SID=orcl1
[oracle@rac1 bin]$ sqlplus / as sysdba
 
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Oct 10 16:08:40 2011
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
Connected to an idle instance.
 
SQL> startup mount;
ORACLE instance started.
 
Total System Global Area  243269632 bytes
Fixed Size                  1218748 bytes
Variable Size             109053764 bytes
Database Buffers          130023424 bytes
Redo Buffers                2973696 bytes
Database mounted.
 
SQL> alter database archivelog;
 
Database altered.

Vamos alterar novamente o parâmetro cluster_database agora para TRUE e parar a instance para podermos iniciá-la atraves do serviço:

SQL> alter system set cluster_database=true scope=spfile;
 
System altered.
 
SQL> shutdown immediate;
ORA-01109: database not open
 
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 10g Release 10.2.0.1.0 - Production
With the Real Application Clusters option

iniciando:

[oracle@rac1 bin]$ ./srvctl start database -d orcl
 
[oracle@rac1 bin]$ ./crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.orcl.db    application    ONLINE    ONLINE    rac2
ora....l1.inst application    ONLINE    ONLINE    rac1
ora....l2.inst application    ONLINE    ONLINE    rac2
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2

Vamos verificar se nosso database está em modo ARCHIVELOG:

SQL> select distinct NAME, i.INSTANCE_NAME, OPEN_MODE, LOG_MODE from gv$database, gv$instance i order by 2;
 
NAME      INSTANCE_NAME    OPEN_MODE  LOG_MODE
--------- ---------------- ---------- ------------
ORCL      orcl1            READ WRITE ARCHIVELOG
ORCL      orcl2            READ WRITE ARCHIVELOG

Para certificarmos que os archives estão sendo gerados com sucesso podemos forçar um switch e verificar se foram criados abaixo do(s) destino(s) especificado(s).

SQL> select instance_name from v$instance;
 
INSTANCE_NAME
----------------
orcl1
 
SQL> alter system switch logfile;
 
System altered.
 
SQL> exit
Disconnected from Oracle Database 10g Release 10.2.0.1.0 - Production
With the Real Application Clusters option

[oracle@rac1 bin]$ ll /oraarchive/orcl
total 29440
-rw-rw---- 1 oracle oinstall 30109696 Out 10 16:27 orcl_1_17_764169947.arc

node2:

SQL> select instance_name from v$instance;
 
INSTANCE_NAME
----------------
orcl2
 
SQL> alter system switch logfile;
 
System altered.
 
SQL> exit
Disconnected from Oracle Database 10g Release 10.2.0.1.0 - Production
With the Real Application Clusters option

[oracle@rac2 orcl]$ ll /oraarchive/orcl
total 7184
-rw-rw---- 1 oracle oinstall 27804160 Out 10 16:28 orcl_2_1_764169947.arc
Mais informações →
Postagens mais antigas Página inicial

Translate

# Suporte

# ACE Program

#Oracle

#Oracle
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.

#Blog reconhecido

#ARTICULISTA

Marcadores

Postagens populares