quarta-feira, 12 de julho de 2017

Renomear e excluir arquivos no Linux com caracteres especiais no nome

Fala pessoal...

Hoje surgiu uma necessidade um pouco fora do normal aqui. Nada a ver com Oracle e sim com a exclusão de arquivos no linux.

Achei bacana compartilhar.

Não sei porque surgiu um arquivo com o nome "?0?@@?i@8?@" no meu servidor de testes.

[root@odin]# ls -lrht
-rw-r--r--   1 root   root        0 Jul 12 09:58 ?0?@@?i@8?@

Ok, vamos excluir esse arquivo:

rm -f ?0?@@?i@8?@
rm -f "?0?@@?i@8?@"

Nos dois casos recebi o erro que o nome do arquivo era inválido.

Então, dei uma pesquisada e achei o tal do "--". Ai ficou fácil, primeiro renomeei o arquivo problemático e depois exclui.

-- Renomear
[root@odin]# mv -- ?0?@@?i@8?@ tt

[root@odin]# ll
-rw-r--r--   1 root   root        0 Jul 12 09:58 tt

-- Excluir
[root@odin]# rm tt
rm: remove regular empty file `tt'? y


E tudo foi resolvido.

Então é isso. Só uma dica que pode ser útil um dia.

Abraço
Mario

segunda-feira, 10 de julho de 2017

IPS - Incident Package Service

Olá pessoal.

Hoje me deparei com um erro ORA-07445. Após algumas pesquisas no MOS e como não havia achado nada relacionada decidi abrir um SR.

Um dos arquivos solicitados para abertura era o zip gerado pelo IPS (Incident Package Service).

O IPS é uma extensão do "Automatic Diagnostic Repository (ADR)", ou seja, ele é gerado pela ferramenta ADRCI.

Bom, então vamos ao que interessa. São várias as formas de usar o IPS. Abaixo vou colocar duas ou três.


Vamos nos conectar ao ADRCI e exibir os nossos homes:
adrci>  show homes
ADR Homes:
diag/asm/+asm/+ASM1
diag/rdbms/mv/mv1

Vamos setar o nosso homepath:
adrci> set homepath diag/rdbms/mv/mv1

adrci> show homes
ADR Homes:
diag/rdbms/mv/mv1

Exibir os incidentes do ambiente:

adrci> show incidents


Vamos agora criar o pacote de arquivos pelo INCIDENT_ID.

adrci> ips pack incident 1233454 in /tmp
Generated package 6 in file /tmp/ORA7445pr_20170710095409_COM_1.zip, mode complete

$ ls -lrht /tmp/
-rw-r--r--  1 oracle       oinstall     2.1M Jul 10 09:54 ORA7445pr_20170710095409_COM_1.zip

É isso, podemos mandar esse arquivo para o MOS.

Temos várias outras formas de criação, como por exemplo, pelo PROBLEM_ID:

Primeiro vamos identificar o PROBLEM_ID:
adrci> show incident -mode brief -p "incident_id=1233454"



Agora, é só criar o pacote:
adrci> ips create package problem 5 correlate all
Created package 11 based on problem id 5, correlation level all

E gerar o zip:
adrci> ips generate package 11 in "/tmp"
Generated package 11 in file /tmp/ORA7445pr_20170710103222_COM_1.zip, mode complete

$ ls -lrht /tmp/ORA7445pr_20170710103222_COM_1.zip
-rw-r--r-- 1 oracle oinstall 12M Jul 10 10:33 /tmp/ORA7445pr_20170710103222_COM_1.zip

Para listar os incidentes1 que fazem parte do pacote, basta executar:
adrci> ips show incidents package 11



Ou ainda, listar os arquivos que fazem parte do pacote.   
adrci> IPS SHOW FILES PACKAGE 11





Podemos também gerar por um período de tempo, por exemplo:

adrci> IPS CREATE PACKAGE TIME '2017-07-10 06:19:41.614000 -03:00' to '2017-07-10 09:23:07.109000 -03:00'
Created package 9 based on time range 2017-07-10 06:19:41.614000 -03:00 to 2017-07-10 09:23:07.109000 -03:00, correlation level typical

adrci> ips generate package 9 in /tmp
Generated package 9 in file /tmp/ORA7445pr_20170710100817_COM_1.zip, mode complete

$ ls -lrht /tmp/ORA7445pr_20170710100817_COM_1.zip
-rw-r--r-- 1 oracle oinstall 11M Jul 10 10:08 /tmp/ORA7445pr_20170710100817_COM_1.zip


Para verificar todas as opções, basta acessar o help;

adrci> help ips

 HELP IPS [topic]
   Available Topics:
        ADD
        ADD FILE
        ADD NEW INCIDENTS
        CHECK REMOTE KEYS
        COPY IN FILE
        COPY OUT FILE
        CREATE PACKAGE
        DELETE PACKAGE
        FINALIZE PACKAGE
        GENERATE PACKAGE
        GET MANIFEST
        GET METADATA
        GET REMOTE KEYS
        PACK
        REMOVE
        REMOVE FILE
        SET CONFIGURATION
        SHOW CONFIGURATION
        SHOW FILES
        SHOW INCIDENTS
        SHOW PACKAGE
        UNPACK FILE
        UNPACK PACKAGE
        USE REMOTE KEYS

E para verificar as configurações atuais do IPS:

adrci> ips  SHOW CONFIGURATION





Então é isso pessoal. Uma dica rápida mas que ajuda bastante no momento da abertura do SR.

Mais informações: ADRCI

Abraço
Mario

sábado, 8 de julho de 2017

Trigger de logon para ativar trace

Olá pessoal.

Tive uma necessidade a um tempo atrás de ativar um trace em uma detereminada sessão que viesse de um programa específico.

Coisa simples, então vou deixar documentado aqui para quem precisar a trigger de logon que eu usei.

create or replace trigger sys.LOGON_TRACE
      after logon on database
DECLARE
      v_username VARCHAR2(70);
      v_program  VARCHAR2(70);
BEGIN
      SELECT LOWER(USERNAME),
                      LOWER(PROGRAM)
      INTO  v_username,
                 v_program
      FROM sys.v_$session
      WHERE
                   sid = SYS_CONTEXT('USERENV', 'SID');

  -- if ora_login_user = 'MARIO' then   -- Se quiser utilizar a trigger em determinados logins
  IF (v_program = 'q_sender.exe' OR v_program='sqlplusw.exe')
  THEN
        EXECUTE IMMEDIATE 'ALTER SESSION SET sql_trace=TRUE';
        EXECUTE IMMEDIATE 'alter session set timed_statistics=true';
        EXECUTE IMMEDIATE 'alter session set max_dump_file_size=unlimited';
EXECUTE IMMEDIATE 'alter session set events=''10046 trace name context forever, level 12''';
  END IF;
END LOGON_TRACE;
/

Então é isso pessoal, simples e objetivo. 

Abraço
Mario

Postagem em destaque

[ORACLE] Batch change EDITIONABLE property.

Hello everyone. Hope you're doing well! Today, I have a simple case.   A test database had many database objects with the EDITIONABLE pr...