Pular para o conteúdo principal

Postagens

Adicionando um erro manualmente ao alertlog

Para simular um erro no alertlog do seu banco de dados basta você se conectar com o usuário sys e executar: SQL > EXEC SYS.DBMS_SYSTEM.KSDWRT(2, 'ORA-00600: internal error code, arguments: [2252], [1903], [666], [], [], [], [], []'); PL/SQL procedure successfully completed.           Pronto depois disso é só abrir seu arquivo de alerta e vai ver que o erro que você criou vai estar lá. Uma das utilidades dessa rotina é dar sustos em seu colega de trabalho. HEheHEhehEHE

Usando o RMAN para verificar corrupção no banco e em backups

- Primeiro é interessante entendermos a diferença de uma corrupção lógica para uma física.        Física: Uma corrupção física ocorre quando o conteúdo do bloco não corresponde ao formato físico que o Oracle espera. Por padrão o RMAN realiza uma         verificação física sempre que ocorre um backup, um restore ou um validate.     Lógica: O bloco está no formato correto, mas o conteudo não corresponde ao esperado pelo Oracle. Exemplos de corrupção lógica seriam: corrupção         em um pedaço de uma linha ou uma entrada de índice. - O RMAN pode ser usado para identificar corrupção em datafile, controlfiles, archivelogs. Podemos também saber se uma peça de backup é restaurável. O RMAN VALIDATE pode ser usado para verificar esses tipos de integridade. Existem três tipo para o comando:  - VALIDATE  - BACKUP ... VALIDADTE  - RESTORE ... VALIDATE Obs: O comando VALIDATE usado sozinho só é válido a partir da versão 11g. # VALIDATE  O VALIDATE pode ser usado para checar a localização ...

ORA-00600: internal error code, arguments: [kccpb_sanity_check_2]

       Depois de um pico de energia e do desligamento inesperado do storage, quando fui tentar abrir uma das bases (10.2.0.4) recebi uma mensagem não muito agradável : 08:41:53 SYS@EADTR > startup ORACLE instance started. Total System Global Area 1610612736 bytes Fixed Size                  2084400 bytes Variable Size             385876432 bytes Database Buffers         1207959552 bytes Redo Buffers               14692352 bytes ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [8706], [5700], [0x000000000], [], [], [], []        Pelo startup acima, podemos ver que o problema ocorre no momento que o banco procura o controlfile, então a solução foi p...

Novo bug criado junto a Oracle: BUG-11887892

Recentemente passamos por alguns problemas de performance com alguns recursos do Oracle 11g SPM( SQL Plan Management Base) e SMB (SQL Management Base) em nosso ambiente Oracle RAC 11g R2 muito bem detalhado pelo meu parceiro Eduardo. Segue o link : http://dbavalentim.blogspot.com/2011/03/merge-na-sqlobjauxdata-com-full-table.html

Restore e recover Oracle usando backups incremental

No ambiente de testes verifiquei algo que não sabia. Um backup incremental Level 1 , diferencial ou cumulativo não é usado no restore e sim no recover. Um backup level 1 é como se fosse um pacote de archives. No momento do recover se o Oracle encontrar uma peça de backup incremental level 1 que contenha todas as alterações necessária para recuperação da base, ele da prioridade ao backup incremental deixando os archives em segundo plano. Baseado nisso, podemos dizer que é como se os level 1 fossem uma segurança a mais no momento do recover. Para comprovar veja os passos que fiz abaixo. Primeiro executo um backup incremental level 0 RMAN> backup incremental level 0 database; Starting backup at 21-JAN-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting incremental level 0 datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/app/oracle/oradata/CANSADA/datafile/o1_mf_system_6mm2dr9k_.dbf input dat...

Identificando a versão do seu banco de dados Oracle

 - O primeiro dígito é o identificador geral. Ele representa a ultima versão do software, a que possui significantes novas funcionalidades.  - O segundo número representa a versão de level de manutenção. Algumas novas funcionalidades podem ser incluídas.  - O terceiro, mostra o a versão do level do Oracle Fusion Middleware  - O quarto, identifica a versão do level de um componente específico. Componentes diferentes podem possuir diferentes números, dependendo por exemplo conjunto de patches ou versões provisória.  - O quinto dígito identifica uma versão para uma plataforma específica. Normalmente é um patch set. Quando diferentes plataformas requerem um nivel equivalente de patch set, o dígito será o mesmo para todas as plataformas afetadas. Nota: Iniciado na versão 9.2, as versões de manutenção do banco de dados Oracle são indicados por uma mudança no segundo dígito. Em versões anteriores, o terceiro número indicava uma versão particular de manuten...

Conectando-se ao Oracle sem o uso do velho e bom tnsnames.ora

Existem várias maneiras para fazer uma conexão com o banco de dados Oracle sem usar o arquivo tnsnames.ora. O método de nomeação easy connect é uma saída. Ele foi introduzido na versão 10g. Abaixo a sintaxe da conexão: sqlplus user/password@//host:portalistener/SID Normalmente o arquivo sqlnet.ora possui a seguinte linha: NAMES.DIRECTORY_PATH= (TNSNAMES) Para o uso do easy connect é preciso alterar a linha para: NAMES.DIRECTORY_PATH= ( EZCONNECT , TNSNAMES ) Outra alternativa para conexão,caso você não queira usar o tnsnames e nem o sqlnet é colocar os detalhes da conexão que normalmente você colocaria no arquivo tnsnames na linha de comando. sqlplus user/password@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(service_name=TESTE)))'

Novos recursos Oracle 11g

Gerenciamento de memória No Oracle 10g você tem a opção de deixar o Oracle gerencia sua SGA de uma forma dinâmica através do parâmetro SGA_TARGET. Na versão 11g existe um novo parâmetro o MEMORY_TARGET e MEMORY_MAX_TARGET. O MEMORY_TARGET irá ajustar tanto a SGA quanto a PGA, fazendo com que o parâmetro PGA_AGGREGATE_TARGET não precise ser configurado. Este parâmetro poderá ser configurado até o limite descrito no MEMORY_MAX_TARGET. Tabelas Somente Leitura Nas versões anteriores o nível máximo que poderíamos chegar usando a função somente leitura era de tablespaces, como o 11g temos a opção de colocar tabelas como somente leitura. Para deixar a tabela nesse estado basta usar o comando: alter table teste read only; Feito isso, todos os comandos DML não serão mais permitidos nessa tabela. Somente as operações que não alterem os dados ou a estrutura da tabela serão permitidas. Abaixo um lista das operações não permitidas e permit...