Oracle's Block Browser and Editor tool
http://www.dbasupport.com/oracle/ora10g/bbed.shtml
http://www.dbasupport.com/oracle/ora10g/bbed02.shtml
quarta-feira, 30 de setembro de 2009
terça-feira, 29 de setembro de 2009
Tuning Reports Server Configuration
<'engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="10" maxEngine="150" minEngine="10" engLife="50" maxIdle="30" callbackTimeOut="60000" engineResponseTimeOut="60" jvmOptions="-Xms128m -Xmx1024m">
Mais detalhes em:
http://download-west.oracle.com/docs/cd/B14099_17/bi.1012/b14048/pbr_tune.htm#i1006609
Mais detalhes em:
http://download-west.oracle.com/docs/cd/B14099_17/bi.1012/b14048/pbr_tune.htm#i1006609
Result Cache - PL/SQL 11G
“Result Cache” é uma feature do 11g que possibilita manter o resultado de uma função em CACHE.
Muito útil, por exemplo, para funções que são constantemente utilizadas pelas aplicações.
Mais detalhes em:
http://www.oracle.com/technology/oramag/oracle/07-sep/o57asktom.html
http://www.oracle.com/technology/oramag/oracle/07-sep/o57plsql.html
http://www.oracle-base.com/articles/11g/CrossSessionPlsqlFunctionResultCache_11gR1.php
Muito útil, por exemplo, para funções que são constantemente utilizadas pelas aplicações.
Mais detalhes em:
http://www.oracle.com/technology/oramag/oracle/07-sep/o57asktom.html
http://www.oracle.com/technology/oramag/oracle/07-sep/o57plsql.html
http://www.oracle-base.com/articles/11g/CrossSessionPlsqlFunctionResultCache_11gR1.php
sexta-feira, 25 de setembro de 2009
quinta-feira, 24 de setembro de 2009
quarta-feira, 23 de setembro de 2009
ORA-24247 When Executing UTL_HTTP
When executing UTL_INADDR (or) UTL_HTTP (or) any UTL packages after upgrading to 11gR1, fails with following error:
declare
*
ERROR at line 1:
ORA-29273: HTTP request failed
ORA-6512: at "SYS.UTL_HTTP", line 1029
ORA-24247: network access denied by access control list (ACL)
ORA-6512: at line 6
Utilizar a package DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE para atribuir privilégios de connect e resolve ao usuário.
Mais detalhes em :
Metalink Doc ID: 453786.1
Copiando as senhas de uma base LDAP para outra
ldapsearch -h 192.168.244.131 -p 389 -D "cn=orcladmin" -w PASSWORD -L -b "cn=users,dc=oracle,dc=com,dc=br" -s sub "objectclass=*" userpassword > portal_users.ldif
exemplo de arquivo gerado:
dn: cn=alex.zaballa,cn=users,dc=oracle,dc=com,dc=br
userpassword: {SHA}BnaRkBbuGYJWeIxqI25m075ZBs0=
alterar o arquivo da seguinte forma:
dn: cn=alex.zaballa,cn=users,dc=oracle,dc=com,dc=br
changetype: modify
replace: userpassword
userpassword: {SHA}BnaRkBbuGYJWeIxqI25m075ZBs0=
Aplicar alterações:
ldapmodify -h 192.168.245.131 -p 389 -D "cn=orcladmin" -w PASSWORD -f portal_users.ldif
exemplo de arquivo gerado:
dn: cn=alex.zaballa,cn=users,dc=oracle,dc=com,dc=br
userpassword: {SHA}BnaRkBbuGYJWeIxqI25m075ZBs0=
alterar o arquivo da seguinte forma:
dn: cn=alex.zaballa,cn=users,dc=oracle,dc=com,dc=br
changetype: modify
replace: userpassword
userpassword: {SHA}BnaRkBbuGYJWeIxqI25m075ZBs0=
Aplicar alterações:
ldapmodify -h 192.168.245.131 -p 389 -D "cn=orcladmin" -w PASSWORD -f portal_users.ldif
Integração do Application Server 10.1.3 com SSO
http://download.oracle.com/docs/cd/B32110_01/core.1013/b32196/reconfig.htm#BHCIAJIF
Oracle Portal com Database 11g
How to upgrade the Portal Database to 11g?
Metalink
Doc ID: 465968.1
Master Note for OracleAS Portal Upgrade Issues
Metalink
Doc ID: 262623.1
Metalink
Doc ID: 465968.1
Master Note for OracleAS Portal Upgrade Issues
Metalink
Doc ID: 262623.1
Beehive + Linux + Portas Baixas
Uso de portas baixas no Beehive:
chown root hasbind
chmod a+x hasbind
chmod a+s hasbind
/etc/cap.ora
+user user1: bind port 20
+user user1: bind port 21
+user user1: bind port 23
+user user1: bind port 80
+user user1: bind port 25
+user user1: bind port 443
+user user1: bind port 143
+user user1: bind port 993
+user user1: bind port 465
Para poder utilizar o Apache na porta 443:
chown root .apachectl
chmod a+x .apachectl
chmod a+s .apachectl
Exemplo de mudança de porta do SMTP no Beehive:
beectl modify_port --protocol SMTP --port 25
beectl activate_configuration
chown root hasbind
chmod a+x hasbind
chmod a+s hasbind
/etc/cap.ora
+user user1: bind port 20
+user user1: bind port 21
+user user1: bind port 23
+user user1: bind port 80
+user user1: bind port 25
+user user1: bind port 443
+user user1: bind port 143
+user user1: bind port 993
+user user1: bind port 465
Para poder utilizar o Apache na porta 443:
chown root .apachectl
chmod a+x .apachectl
chmod a+s .apachectl
Exemplo de mudança de porta do SMTP no Beehive:
beectl modify_port --protocol SMTP --port 25
beectl activate_configuration
Beehive + Imap + SSL
Para "colocar" um certificado digital para oIMAP no Beehive, basta alterar a propriedade WalletDir, apontando para o caminho está está seu Wallet.
beectl list_property --component beehive_instance_OrionInstance.your_domain.com --name WalletDir
beectl modify_property --component beehive_instance_OrionInstance.your_domain.com --name WalletDir --value /u01/app/oracle/product/1.5.1.0.0/beehive/Apache/Apache/conf/ssl.wlt/portal/
beectl activate_configuration
beectl list_property --component beehive_instance_OrionInstance.your_domain.com --name WalletDir
beectl modify_property --component beehive_instance_OrionInstance.your_domain.com --name WalletDir --value /u01/app/oracle/product/1.5.1.0.0/beehive/Apache/Apache/conf/ssl.wlt/portal/
beectl activate_configuration
Adicionar um email externo a um grupo de Emails do Beehive
Infelizmente até a versão 1.5 do Beehive, não é possível adicionar um email externo a um grupo de emails utilizando o Beekeeper.
Existe uma solução via Beectl:
add_external_contact --family_name Silva --display_name "Joao da Silva" --address BUSINESS_1:mailto:joao.silva@yourdomain.com
Criar um arquivo xml com estrutura conforme a imagem:

beectl modify_group --file yourxmlname.xml
Consultando os membros do grupo:
beectl list_groups --name EMPRESA --show MEMBERS
Existe uma solução via Beectl:
add_external_contact --family_name Silva --display_name "Joao da Silva" --address BUSINESS_1:mailto:joao.silva@yourdomain.com
Criar um arquivo xml com estrutura conforme a imagem:
beectl modify_group --file yourxmlname.xml
Consultando os membros do grupo:
beectl list_groups --name EMPRESA --show MEMBERS
Proxy Reverso + Application Server + Ip errado nos logs
Para quem utiliza solução de proxy reverso juntamente com application server, já deve ter tido problemas com os logs. O IP que aparece é o do Proxy e não de quem fez a requisição HTTP.
Segue uma solução encontrada para o problema:
Criar o arquivo AdjustRemoteAddrAccordingToHeader.pm
package Apache::AdjustRemoteAddrAccordingToHeader;
sub handler
{
my $r = shift;
my $configuredValue = $r->dir_config ("UseIPFromHeader");
if ($configuredValue)
{
my $ip = $r->header_in($configuredValue);
if ($ip)
{
$r->connection->remote_ip($ip);
}
}
else
{
print STDERR "AdjustRemoteAddrAccordingToHeader: PerlSetVar UseIPFromHeader is not set, so I did not do anything\n";
}
# Adjust for Oracle HTTP Server and REMOTE_ADDR
# Remove this line if not necessary
$r->header_in("ClientIP", $r->connection->remote_ip());
return OK;
}
return 1;
Adicionar no httpd.conf
PerlRequire /u01/app/oracle/product/as10g/MidTier/Apache/Apache/conf/AdjustRemoteAddrAccordingToHeader.pm
PerlPostReadRequestHandler Apache::AdjustRemoteAddrAccordingToHeader
PerlSetVar UseIPFromHeader X-Forwarded-For
Segue uma solução encontrada para o problema:
Criar o arquivo AdjustRemoteAddrAccordingToHeader.pm
package Apache::AdjustRemoteAddrAccordingToHeader;
sub handler
{
my $r = shift;
my $configuredValue = $r->dir_config ("UseIPFromHeader");
if ($configuredValue)
{
my $ip = $r->header_in($configuredValue);
if ($ip)
{
$r->connection->remote_ip($ip);
}
}
else
{
print STDERR "AdjustRemoteAddrAccordingToHeader: PerlSetVar UseIPFromHeader is not set, so I did not do anything\n";
}
# Adjust for Oracle HTTP Server and REMOTE_ADDR
# Remove this line if not necessary
$r->header_in("ClientIP", $r->connection->remote_ip());
return OK;
}
return 1;
Adicionar no httpd.conf
PerlRequire /u01/app/oracle/product/as10g/MidTier/Apache/Apache/conf/AdjustRemoteAddrAccordingToHeader.pm
PerlPostReadRequestHandler Apache::AdjustRemoteAddrAccordingToHeader
PerlSetVar UseIPFromHeader X-Forwarded-For
Installing Oracle Enterprise Manager 10g Grid Control Rel 5 on Oracle Database 11g and Linux
Passo-a-passo interessante para instalação do GRID Versão 10.2.0.5 em um banco 11G.
http://www.oracle.com/technology/pub/articles/revitt-oem.html
http://www.oracle.com/technology/pub/articles/revitt-oem.html
Converting Your Oracle Forms Applications to Application Express 3.2
Artigo interessante para quem já trabalhou com o bom e velho FORMS.
http://www.oracle.com/technology/obe/apex32/apex32frmmigr.htm
http://www.oracle.com/technology/obe/apex32/apex32frmmigr.htm
BULK COLLECT
Artigo interessante sobre o uso da cláusula LIMIT.
http://www.oracle.com/technology/oramag/oracle/08-mar/o28plsql.html
http://www.oracle.com/technology/oramag/oracle/08-mar/o28plsql.html
Oracle Audit
Como muitos DBA's, também gosto de guardar meus LOG's de auditoria dentro do banco de dados.
Para isso, o primeiro passo é criar uma tablespace que irá manter os logs (Isto server apenas para não inflar a tablespace System).
CREATE TABLESPACE TBSDAT_AUDITORIA DATAFILE SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE 8192M
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
select TABLESPACE_NAME from dba_segments where SEGMENT_NAME='AUD$'
Para alterar a tablespace, podemos proceder de 2 formas, dependendo da versão do banco de dados.
Utilizar a package DBMS_AUDIT_MGMT ou o script que está no DOC ID: 1019377.6
BEGIN
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,AUDIT_TRAIL_LOCATION_VALUE => 'TBSDAT_AUDITORIA');
END;
select TABLESPACE_NAME from dba_segments where SEGMENT_NAME='AUD$'
Metalink - DOC ID: 804624.1
The associated LOB and LOB INDEX segments for AUD$ are not moved from the SYSTEM tablespace when the AUD$ table is moved to another tablespace using the DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION procedure.
select owner,table_name,segment_name,tablespace_name from dba_lobs where table_name='AUD$'
select owner, table_name,index_name,index_type,tablespace_name from dba_indexes where table_name='AUD$'
alter table aud$ move lob (sqlbind) store as (tablespace TBSDAT_AUDITORIA);
alter table aud$ move lob (sqltext) store as (tablespace TBSDAT_AUDITORIA);
Finalmente alterar o parâmetro de inicialização:
alter system set audit_trail=db scope=spfile;
Para isso, o primeiro passo é criar uma tablespace que irá manter os logs (Isto server apenas para não inflar a tablespace System).
CREATE TABLESPACE TBSDAT_AUDITORIA DATAFILE SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE 8192M
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
select TABLESPACE_NAME from dba_segments where SEGMENT_NAME='AUD$'
Para alterar a tablespace, podemos proceder de 2 formas, dependendo da versão do banco de dados.
Utilizar a package DBMS_AUDIT_MGMT ou o script que está no DOC ID: 1019377.6
BEGIN
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,AUDIT_TRAIL_LOCATION_VALUE => 'TBSDAT_AUDITORIA');
END;
select TABLESPACE_NAME from dba_segments where SEGMENT_NAME='AUD$'
Metalink - DOC ID: 804624.1
The associated LOB and LOB INDEX segments for AUD$ are not moved from the SYSTEM tablespace when the AUD$ table is moved to another tablespace using the DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION procedure.
select owner,table_name,segment_name,tablespace_name from dba_lobs where table_name='AUD$'
select owner, table_name,index_name,index_type,tablespace_name from dba_indexes where table_name='AUD$'
alter table aud$ move lob (sqlbind) store as (tablespace TBSDAT_AUDITORIA);
alter table aud$ move lob (sqltext) store as (tablespace TBSDAT_AUDITORIA);
Finalmente alterar o parâmetro de inicialização:
alter system set audit_trail=db scope=spfile;