Estou tentando limpar arquivos de rastreamento em um dos meus testbeds RAC. A Oracle Corp teve a gentileza de nomear o banco de dados “-MGMTDB” para me dar um bom desafio (pingando sarcasmo). Aqui estou no meu DIAGNOTIC_DEST e podemos ver dois bancos de dados.
[oracle@host01 trace]$ cd /u01/app/oracle/diag/rdbms [oracle@host01 rdbms]$ ls -l total 8 drwxr-x--- 3 oracle oinstall 4096 Jun 17 14:07 _mgmtdb drwxr-x--- 3 oracle oinstall 4096 Aug 10 13:13 resp
O diretório 'resp' é para o meu banco de dados Research Primary, um testbed. A primeira entrada é para o banco de dados do repositório do Cluster Health Monitor (CHM) no meu sistema Grid Infrastructure 12.1.0.2. Eu posso mudar de diretório com bastante facilidade.
[oracle@host01 rdbms]$ cd _mgmtdb [oracle@host01 _mgmtdb]$ ls -l total 4 -rw-r----- 1 oracle oinstall 0 Jun 17 14:07 i_1.mif drwxr-x--- 16 oracle oinstall 4096 Jun 17 14:06 -MGMTDB
Mas agora tenho problemas com o próximo comando 'cd'.
[oracle@host01 _mgmtdb]$ cd -MGMTDB -bash: cd: -M: invalid option cd: usage: cd [-L|-P] [dir]
Para contornar isso, preciso usar “ponto-barra” antes do nome do diretório.
[oracle@host01 _mgmtdb]$ cd ./-MGMTDB [oracle@host01 -MGMTDB]$ cd trace
Agora, como qualquer outro diretório de rastreamento do Oracle, tenho muitos arquivos .trc e .trm, semelhantes a estes:
-rw-r----- 1 oracle oinstall 21301 Nov 30 13:43 -MGMTDB_vktm_5472.trc -rw-r----- 1 oracle oinstall 1946 Nov 30 13:43 -MGMTDB_vktm_5472.trm
Então, como removê-los? Eu recebo um erro porque 'rm' pensa que "-M" é um parâmetro.
[oracle@host01 trace]$ rm *.trc *.trm rm: invalid option -- M Try `rm ./-MGMTDB_ckpt_5494.trc' to remove the file `-MGMTDB_ckpt_5494.trc'. Try `rm --help' for more information.
O truque é usar “–” para dizer à linha de comando que o que se segue não é mais uma lista de parâmetros.
[oracle@host01 trace]$ rm -- *.trc *.trm
A vida teria sido muito mais fácil se o Oracle tivesse lembrado que quase todo mundo executa o Oracle no *nix com esses parâmetros bobos que também começam com um traço.