Pular para o conteúdo principal

Postagens

Mostrando postagens de 2009

Rotate J2EE Logs using ODL

server.log $ORACLE_HOME/j2ee/"<"instance_name">"/config/ server.xml "<"file path="../log/server.log" /">" TO: "<"odl path="../log/server/" max-file-size="1000" max-directory-size="10000"/">" default-web-access.log $ORACLE_HOME/j2ee/"<"instance_name">"/config/ default-web-site.xml "<"access-log path="../log/default-web-access.log" /">" TO: "<"access-log path="../log/default-web-access.log" split="hour" /">" split interval: "hour", "day", "week", and "month" global-application.log $ORACLE_HOME/j2ee/"<"instance_name">"/config/ application.xml "<"file path="../log/global-application.log"/">" --">" TO: "<"odl path="../log/global-applicati

duplicate for standby fails with RMAN-05535 when path the same as primary

rman target sys/syspwd@orcl nocatalog auxiliary / run {duplicate target database for standby dorecover;} RMAN-03002 failure of duplicate command. RMAN-05001 auxiliary file name /u01/../user01.dbf conflicts with a file used by the target database. and the following error for the redologs: ORA-19527 physical standby redo must be renamed. RMAN-05535 All standby logfiles were not created. USE NOFILENAMECHECK: run {duplicate target database for standby dorecover NOFILENAMECHECK ;} OR: set parameters LOG_FILE_NAME_CONVERT and DB_FILE_NAME_CONVERT Sample: LOG_FILE_NAME_CONVERT=('/u02/oradata/orcl','/u02/oradata/orcl') DB_FILE_NAME_CONVERT=('/u02/oradata/orcl','/u02/oradata/orcl')

Criando chaves públicas SSH

[oracle@denilson ~]$ ssh-keygen -b 1024 -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/oracle/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/oracle/.ssh/id_rsa. Your public key has been saved in /home/oracle/.ssh/id_rsa.pub. The key fingerprint is: 57:43:2c:ec:3a:ef:b3:07:f5:3e:d9:73:f0:a4:6c:dd oracle@denilson [oracle@denilson ~]$ cd ~oracle/.ssh [oracle@denilson ~]$ scp id_rsa.pub oracle@192.168.1.2:/home/oracle/.ssh/ [oracle@denilson ~]$ ssh oracle@192.168.1.2 (ainda vai pedir password) [oracle@denilson_stdby ~]$ cd ~oracle/.ssh [oracle@denilson_stdby ~]$ mv id_rsa.pub authorized_keys [oracle@denilson_stdby ~]$ exit [oracle@denilson ~]$ ssh oracle@192.168.1.2 (não pedira mais password) [oracle@denilson_stdby ~]$

Mais um pouco de StandBy - Tranferir archives

Vamos considerar que você tenha seu standby e precisa fazer transferência de archives manualmente do seu servidor para o standby: A linha de comando abaixo pode ajudar muito, onde já compacta o arquivo na origem e transfere descompactando no destino (standby): find /u02/oradata/orcl/archive/ -type f -cmin -60 | xargs tar -cvzf - | ssh oracle@192.168.1.2 'cd /u02/oradata/orcl/archive ; tar xvzf -' Esse comando é necessário utilização de chaves-publicas entre os servidores, favor consultar: http://dicasoracledba.blogspot.com/2009/11/criando-chaves-publicas-ssh.html Mais informações consultar: StandBy database com RMAN

Replicando Base de dados ASM para não ASM

Colocar parametros abaixo no seu init ou spfile: DB_FILE_NAME_CONVERT='+DG01/ORCL/datafile/','/u02/oradata/ORCL/' LOG_FILE_NAME_CONVERT='+FRA01/ORCL/ONLINELOG/','/u02/oradata/ORCL/','+DG01/ORCL/ONLINELOG','/u02/oradata/ORCL/' Fazer backup Nivel 0 (FULL) banco origem (ASM): [oracle@denilson log]$ rman target / RMAN> run{backup as compressed backupset incremental level 0 database plus archivelog}; RMAN> exit; Utilizando o duplicate no banco destino (não-ASM): [oracle@denilson log]$ rman target sys/sys_pwd@origem_db nocatalog auxiliary / RMAN> run {duplicate target database to orcl nofilenamecheck;} RMAN> exit; O duplicate automaticamente faz o newname nos datafiles e logfiles de acordo com os parâmetros configurados no init (DB_FILE_NAME_CONVERT/LOG_FILE_NAME_CONVERT)

ORA-29701: unable to connect to Cluster Manager - ASM

Caso foi necessário alterar o nome ou endereço ip do servidor, provavelmente você terá esse problema: [oracle@denilson ~]$ sqlplus '/ as sysdba' SQL*Plus: Release 11.1.0.7.0 - Production on Tue Nov 10 14:31:31 2009 Copyright (c) 1982, 2008, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORA-29701: unable to connect to Cluster Manager SQL> exit Resolvendo: [oracle@denilson ~]$ su - [root@denilson ~]$ $ORACLE_HOME/bin/localconfig delete [root@denilson ~]$ $ORACLE_HOME/bin/localconfig add

StandBy database com RMAN

Criar standby database nunca foi tão simples e rápido, existem diversas maneiras de você criar seu standby, abaixo vou mostrar como criar utilizando RMAN. No banco de origem: [oracle@denilson ~]$ rman target / RMAN> backup database plus archivelog; Banco standby: Criar arquivo de parâmetros (pfile) [oracle@denilson_stdby ~]$ rman connect target / connect auxiliary sys/manager connect catalog rman/rman@dbrman RMAN> run {duplicate target database for standby dorecover;} PRONTOOOO!!!... você já tem seu StandBy! Aplicando archives: [oracle@denilson_stdby ~]$ sqlplus '/ as sysdba' SQL> startup nomount; SQL> alter database mount standby database; SQL> alter database recover automatic standby database until cancel; SQL> recover cancel; SQL> shutdown immediate; SQL> exit;

Indíces Virtuais

Acredito que todos já precisaram criar algum indice para teste de performance na consulta, porém isso pode demandar tempo para indexar uma tabela grande sem contar espaço em disco, ou você não sabe os efeitos de criar um indice e afetar outras consultas do seu banco, Dado esse fato, podemos utilizar os indices virtuais, ou indices sem segmentos, abaixo um exemplo de como funciona: SQL> create table tab_vindex as (select * from dba_objects where object_id is not null); Table created. SQL> ALTER TABLE tab_vindex add constraint pk_tab_vindex PRIMARY KEY (object_id); Table altered. SQL> EXEC DBMS_STATS.gather_table_stats(USER, 'tab_vindex', cascade=>TRUE); PL/SQL procedure successfully completed. SQL> SET AUTOTRACE TRACEONLY EXP SQL> SELECT * FROM tab_vindex where object_id = 100; Execution Plan ----------------------------------------------------------