Pessoal,
A comunidade Oracle Brazilians DBA's esta em novo endereço:
http://orclbrdba.grouply.com/
A comunidade no Ning permanece até dia 03/08/2010!
Abs,
JC
Monday, July 26, 2010
Thursday, July 22, 2010
ASM without HW RAID
Achei bem interessante este documento.
https://twiki.cern.ch/twiki/bin/viewfile/PSSGroup/Presentations2008?rev=3;filename=UKOUG_2008_CERN_ASM_no_RAID_LC_DW.ppt
https://twiki.cern.ch/twiki/bin/viewfile/PSSGroup/Presentations2008?rev=3;filename=UKOUG_2008_CERN_ASM_no_RAID_LC_DW.ppt
Oracle on Linux - Load average factor e CPU bottlenecks
Como medir o load avarage corretamente ou a melhor forma utilizada.
Nas tradicionais tools do Linux ou Unix temos o bendito do load average que alguns dizem que significam muita coisa e outros dizem que não significa nada.A verdade é : significa muito sim.
O load avg. pode ser interpretado diretamente quando a maquina possui somente uma(1) CPU.Para maquinas com mais de uma(1) CPU a forma correta é usar o load avg. factor .
Usando o ferramenta top podemos verificar e entender o que o sistema nos mostra sobre CPU bottlenecks.
O load avg. mostra a quantidade de processos que fizeram uso de CPU em um ponto no tempo.
O calculo para medir o load. avg. factor é
load.avg / nr.CPU = load.avg.factor
E o entendimento que se pode ter é a respeito de CPU bottleneck:
load avg. factor < 1 = A distribuição de recurso está dentro da capacidade e se necessário o sistema tem condição de suportar mais carga neste recurso.Enfim,o gargalo não está por aqui.
load avg. factor entre 1 e 2 = a distribuição do recurso de CPU está dentro da capacidade.
load avg. factor > 2 = Sim,o gargalo do sistema “pode” estar aqui.É recomendado continuar a investigação usando outras ferramentas vmstat,sar entre outras.Não só neste caso,mas verificar a distribuição de rotinas ,processos que fazem uso do servidor de forma mais adequada e monitorar se houve mudança no comportamento do sistema no horário de “gargalo”.
Vou usar o meu desktop com Ubuntu 10.04 como exemplo :
Como saber quantas CPU’s existem na maquina ?Existem varias formas : /proc/cpuinfo,top,vmstat e etc..
ex.
jccorrea|mydesktop ~
$ cd /proc/
jccorrea|mydesktop /proc
$ ls |grep cpu
cpuinfo
jccorrea|mydesktop /proc
$ cat cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
stepping : 11
cpu MHz : 1596.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
ou o comando top com a opção 1
ex.
jccorrea|mydesktop /proc
$ top
top - 12:22:16 up 5 days, 22:28, 7 users, load average: 0.95, 1.10, 1.10
Tasks: 243 total, 2 running, 241 sleeping, 0 stopped, 0 zombie
Cpu0 : 16.8%us, 3.9%sy, 0.3%ni, 78.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 9.4%us, 2.6%sy, 0.0%ni, 88.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 11.4%us, 2.5%sy, 0.3%ni, 85.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 5.3%us, 1.2%sy, 0.0%ni, 93.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4124916k total, 3352532k used, 772384k free, 156916k buffers
Swap: 9936888k total, 18436k used, 9918452k free, 729968k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31948 jccorrea 20 0 206m 107m 22m S 18 2.7 297:34.37 plugin-containe
888 root 20 0 316m 203m 92m S 9 5.0 278:51.67 Xorg
Vamos ver o load average agora:
ex.
top - 12:19:02 up 5 days, 22:25, 7 users, load average: 1.23, 1.24, 1.14
Tasks: 243 total, 2 running, 241 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.1%us, 2.0%sy, 0.2%ni, 89.6%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4124916k total, 3344672k used, 780244k free, 157260k buffers
Swap: 9936888k total, 18436k used, 9918452k free, 729888k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31948 jccorrea 20 0 206m 107m 22m S 19 2.7 296:56.74 plugin-containe
2837 jccorrea 20 0 464m 104m 27m S 7 2.6 3632:16 chrome
888 root 20 0 320m 203m 92m S 3 5.0 278:40.71 Xorg
3132 jccorrea 20 0 118m 53m 25m S 3 1.3 0:39.93 VirtualBox
...
Aqui já temos o número de CPUs que no caso são 4.
Lembrando que o top mostra o load avg: (no momento,5 minutos atras e 15 minutos atrás)
Calculando o load avg.factor usando o snaphot do top :
now - 1.23/4 = 0.3075
5 minutes past = 1.24/4 = 0.31
15 minutes past = 1.14/4 = 0.285
Por aqui está tudo sobre controle .
Vamos ver agora um exemplo com um servidor mais pontente :
[oracle@potente proc]$ top
top - 13:40:11 up 118 days, 8:18, 2 users, load average: 0.35, 0.47, 0.46
Tasks: 376 total, 2 running, 374 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 1.0%us, 0.0%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu8 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu9 : 0.7%us, 0.3%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu10 : 2.0%us, 0.3%sy, 0.0%ni, 97.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu11 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu12 : 18.3%us, 0.3%sy, 0.0%ni, 81.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu13 : 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu14 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu15 : 0.0%us, 0.0%sy, 0.0%ni, 99.3%id, 0.3%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 37037264k total, 36884956k used, 152308k free, 185104k buffers
Swap: 39086136k total, 433948k used, 38652188k free, 33778168k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4771 oracle 16 0 15.6g 2.0g 2.0g R 17.9 5.7 36:48.93 oracle
26119 oracle 15 0 15.6g 3.2g 3.2g S 2.7 9.0 0:20.04 oracle
26095 oracle 15 0 15.6g 3.2g 3.1g S 1.0 8.9 0:19.70 oracle
11298 oracle 15 0 15.6g 89m 87m S 0.3 0.2 1733:08 oracle
27260 oracle 15 0 12976 1328 824 R 0.3 0.0 0:00.05 top
Calculando o load avg.factor usando o snaphot do top :
now - 0.35/16 = 0.02
5 minutes past = 0.47/16 = 0.03
15 minutes past = 1.14/16 = 0.03
Vamos aumentar este load avg. no meu desktop :
$ top
top - 16:00:37 up 6 days, 2:06, 7 users, load average: 10.01, 5.42, 2.83
Tasks: 259 total, 1 running, 258 sleeping, 0 stopped, 0 zombie
Cpu(s): 11.1%us, 2.7%sy, 0.1%ni, 6.0%id, 80.0%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 4124916k total, 4012600k used, 112316k free, 5040k buffers
Swap: 9936888k total, 806524k used, 9130364k free, 154860k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31948 jccorrea 20 0 206m 27m 7556 S 12 0.7 339:09.89 plugin-containe
5359 jccorrea 20 0 1024m 111m 10m S 11 2.8 0:05.61 java
888 root 20 0 349m 167m 100m S 9 4.2 292:35.67 Xorg
2837 jccorrea 20 0 464m 56m 11m S 8 1.4 3650:16 chrome
5182 jccorrea 20 0 1080m 240m 11m S 7 6.0 0:21.98 java
5261 jccorrea 20 0 1050m 149m 11m S 3 3.7 0:12.24 java
1314 jccorrea 9 -11 158m 11m 9996 S 2 0.3 107:28.12 pulseaudio
Calculando o load avg.factor :
now - 10.01/4 = 2.50
5 minutes past = 5.42/4 = 1.35
15 minutes past = 2.83/4 = 0.71
Como podemos ver neste instante em que fiz um uso maior de aplicativos no meu desktop o recurso de CPU foi maiormente utilizado tanto que no ponto “now” em que foi tirado o snapshot o servidor estava com o consumo de CPU utilizado acima da capacidade.
Nos servidores de banco de dados funciona da mesma forma.Quando monitorado e você verificar auto consumo de CPU fora do normal sempre procure saber o motivo para nunca ser pego “desprovido “de informação .Usando as próprias ferramentas nativas do Linux e Oracle você poderá identificar o processo “causador” do auto consumo.O problema não é o auto consumo em si,mas quando isso acontece outra aplicação/recurso pode ficar sem a devida prioridade e sem o devido recurso de CPU necessário para o seu funcionamento chegando em casos extremos de parar ou deixar de responder as solicitações por falta de recurso.Já vi casos em que não era possível mesmo se logar via ssh no servidor e a unica solução ser ir fisicamente no servidor e fazer o reboot ou na maioria dos casos ele mesmo se encarregava de faze-lô!.
Distribua melhor os recursos no ser servidor e seja feliz !
Espero que este post contribua em algum ponto no seu aprendizado.
Abs,
JC
Sunday, July 18, 2010
Wednesday, July 14, 2010
DATABASE CERTIFICATION HANDS-ON COURSE LIST
Pessoal,
Database 10g
Para poder prosseguir com a certificação para OCP/OCM é necessário além das provas participar de cursos qualificados pela Oracle para poder obter as credenciais.
O link para saber mais dos cursos aporvados pela Oracle estão aqui :
http://migre.me/WZ6P
Para OCP é necessário pelo menos um curso aprovado pela Oracle chamado de " instructor-led online or in-class courses" + 1Z0-043 + enviar o formulário relativo ao curso efetuado para Oracle .
Após obter sua credencial OCP se você quiser se tornar um OCM é necessário dois(2) cursos chamados de "advanced instructor-led online or in-class courses" além de 2 dias no centro de exame da Oracle !
Aqui o passo é um pouco mais complexo e detalhado por isso recomendo ler as informações da URL abaixo:
http://migre.me/WZ5W
http://migre.me/WZ3S
JC
Marcadores:
certificação,
certification,
certification program,
OCM,
OCP
Tuesday, July 13, 2010
Certview
Agora sim.Ainda vivendo a sensação de ver o "PASS" após o exame da certificação.A Oracle liberou o meu acesso ao Certview.
Lá tem varias coisas interessantes como os logos para colocar em blogs e em documentos bem como um local para enviar reports a terceiros sobre as suas certificações caso alguem tenha dúvida ou realmente necessite da informação.
certview.oracle.com/
Lá tem varias coisas interessantes como os logos para colocar em blogs e em documentos bem como um local para enviar reports a terceiros sobre as suas certificações caso alguem tenha dúvida ou realmente necessite da informação.
certview.oracle.com/
Wednesday, July 07, 2010
Agora sim certificado!!
Oracle Database 10g Administrator Certified Associate
Oracle Database SQL Certified Expert
Agradeço a todos que me ajudaram a conquistas estas certificações direta e indiretamente!
Resolvi tirar o outro post porque quando você cita nomes pode esquecer de alguem e isto não é legal!
Por todas as empresas que passei sempre exercitei um aprendizado com diversas pessoas e também pela internet com os amigos e colegas do GPO,Oracle_Br,Oracle Brazilians DBA's do Ning e muitos outros.
Enfim agradeço a todos mesmo!
Já tem a 1Z-046 pra fazer !E depois a 1Z0-043.
Abs,
JC
Friday, July 02, 2010
Apex 4 Installation on 11gR2
A URL da doc : http://download.oracle.com/ docs/cd/E17556_01/doc/install. 40/e15513/otn_install.htm# insertedID6
--1º install Oracle Text if you got :
/*Elapsed: 00:00:00.01
Application Express installation requires the Oracle Text database component.
begin
*
ERROR at line 1:
ORA-00900: invalid SQL statement
ORA-06512: at line 4
Disconnected from Oracle Database 11g Release 11.2.0.1.0 - Production
*/
@?/ctx/admin/catctx.sql ctxsys DRSYS TEMP(your temporary tablespace) NOLOCK
--all ok
-- 2ºinstall apex
@apexins SYSAUX SYSAUX TEMP /i/
--all ok
--3º change ADMIN password
@apxchpwd
--Brasil#2010
--all ok
-- 4º unlock APEX_PUBLIC_USER
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK ;
--all ok
-- 5º change the passwaord for ALTER USER APEX_PUBLIC_USER IDENTIFIED BY
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY senha
--all ok
-- 6º grant connect privileges to any host for the APEX_040000 database user
DECLARE
ACL_PATH VARCHAR2(4000);
ACL_ID RAW(16);
BEGIN
-- Look for the ACL currently assigned to '*' and give APEX_040000
-- the "connect" privilege if APEX_040000 does not have the privilege yet.
SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
-- Before checking the privilege, ensure that the ACL is valid
-- (for example, does not contain stale references to dropped users).
-- If it does, the following exception will be raised:
--
-- ORA-44416: Invalid ACL: Unresolved principal 'APEX_040000'
-- ORA-06512: at "XDB.DBMS_XDBZ", line ...
--
SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
FROM XDB.XDB$ACL A, PATH_VIEW P
WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
EQUALS_PATH(P.RES, ACL_PATH) = 1;
DBMS_XDBZ.ValidateACL(ACL_ID);
IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040000',
'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
'APEX_040000', TRUE, 'connect');
END IF;
EXCEPTION
-- When no ACL has been assigned to '*'.
WHEN NO_DATA_FOUND THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
'ACL that lets power users to connect to everywhere',
'APEX_040000', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
commit ;
--all ok
-- 7º Enable Indexing of Online Help in Oracle Database 11gR2 and Higher
--a)
SELECT par_value FROM ctxsys.ctx_parameters WHERE par_name = 'FILE_ACCESS_ROLE';
--if return null then
--b) create a role
SQL> CREATE ROLE APEX_URL_DATASTORE_ROLE;
Role created.
--c)grant the user APEX_040000
SQL> GRANT APEX_URL_DATASTORE_ROLE to APEX_040000;
Grant succeeded.
--d)grant permission
EXEC ctxsys.ctx_adm.set_parameter('file_access_role', 'APEX_URL_DATASTORE_ROLE');
-- e) if a) return a value grant the user APEX_040000 with the role wich showed at step a) and continue ons tep c)
--all Ok
--8º Embedded gateway + configuração do local das imagens(the base directory location where the APEX was unzipped)
@apex_epg_config /home/oracle
--all ok
--9º unlock anonymous
ALTER USER ANONYMOUS ACCOUNT UNLOCK;
--all ok
-- 10º change the image directory.the base directory location where the APEX was unzipped
@apxldimg.sql /home/oracle
--10º drop the old apex users
--a)
SELECT username
FROM dba_users
WHERE (username LIKE 'FLOWS_%' OR USERNAME LIKE 'APEX_%')
AND USERNAME NOT IN (
SELECT 'FLOWS_FILES'
FROM DUAL
UNION
SELECT 'APEX_PUBLIC_USER' FROM DUAL
UNION
SELECT SCHEMA s
FROM dba_registry
WHERE comp_id = 'APEX');
--b) drop all user that appear on the select above
drop user "usuario" cascade ;
Depois :
http://hostname ou IP:8080/apex/apex_admin
http://hostname ou IP:8080/apex
--Any problem wth ADMIN password,reset with @apxchpwd
Troque a senha e enjoy it!
Baseada na documentação coloquei os seguintes passos:
--1º install Oracle Text if you got :
/*Elapsed: 00:00:00.01
Application Express installation requires the Oracle Text database component.
begin
*
ERROR at line 1:
ORA-00900: invalid SQL statement
ORA-06512: at line 4
Disconnected from Oracle Database 11g Release 11.2.0.1.0 - Production
*/
@?/ctx/admin/catctx.sql ctxsys DRSYS TEMP(your temporary tablespace) NOLOCK
--all ok
-- 2ºinstall apex
@apexins SYSAUX SYSAUX TEMP /i/
--all ok
--3º change ADMIN password
@apxchpwd
--Brasil#2010
--all ok
-- 4º unlock APEX_PUBLIC_USER
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK ;
--all ok
-- 5º change the passwaord for ALTER USER APEX_PUBLIC_USER IDENTIFIED BY
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY senha
--all ok
-- 6º grant connect privileges to any host for the APEX_040000 database user
DECLARE
ACL_PATH VARCHAR2(4000);
ACL_ID RAW(16);
BEGIN
-- Look for the ACL currently assigned to '*' and give APEX_040000
-- the "connect" privilege if APEX_040000 does not have the privilege yet.
SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
-- Before checking the privilege, ensure that the ACL is valid
-- (for example, does not contain stale references to dropped users).
-- If it does, the following exception will be raised:
--
-- ORA-44416: Invalid ACL: Unresolved principal 'APEX_040000'
-- ORA-06512: at "XDB.DBMS_XDBZ", line ...
--
SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
FROM XDB.XDB$ACL A, PATH_VIEW P
WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
EQUALS_PATH(P.RES, ACL_PATH) = 1;
DBMS_XDBZ.ValidateACL(ACL_ID);
IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040000',
'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
'APEX_040000', TRUE, 'connect');
END IF;
EXCEPTION
-- When no ACL has been assigned to '*'.
WHEN NO_DATA_FOUND THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
'ACL that lets power users to connect to everywhere',
'APEX_040000', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
commit ;
--all ok
-- 7º Enable Indexing of Online Help in Oracle Database 11gR2 and Higher
--a)
SELECT par_value FROM ctxsys.ctx_parameters WHERE par_name = 'FILE_ACCESS_ROLE';
--if return null then
--b) create a role
SQL> CREATE ROLE APEX_URL_DATASTORE_ROLE;
Role created.
--c)grant the user APEX_040000
SQL> GRANT APEX_URL_DATASTORE_ROLE to APEX_040000;
Grant succeeded.
--d)grant permission
EXEC ctxsys.ctx_adm.set_parameter('file_access_role', 'APEX_URL_DATASTORE_ROLE');
-- e) if a) return a value grant the user APEX_040000 with the role wich showed at step a) and continue ons tep c)
--all Ok
--8º Embedded gateway + configuração do local das imagens(the base directory location where the APEX was unzipped)
@apex_epg_config /home/oracle
--all ok
--9º unlock anonymous
ALTER USER ANONYMOUS ACCOUNT UNLOCK;
--all ok
-- 10º change the image directory.the base directory location where the APEX was unzipped
@apxldimg.sql /home/oracle
--10º drop the old apex users
--a)
SELECT username
FROM dba_users
WHERE (username LIKE 'FLOWS_%' OR USERNAME LIKE 'APEX_%')
AND USERNAME NOT IN (
SELECT 'FLOWS_FILES'
FROM DUAL
UNION
SELECT 'APEX_PUBLIC_USER' FROM DUAL
UNION
SELECT SCHEMA s
FROM dba_registry
WHERE comp_id = 'APEX');
--b) drop all user that appear on the select above
drop user "usuario" cascade ;
Depois :
http://hostname ou IP:8080/apex/apex_admin
http://hostname ou IP:8080/apex
--Any problem wth ADMIN password,reset with @apxchpwd
Troque a senha e enjoy it!
Subscribe to:
Posts (Atom)