달력

09

« 2017/09 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

모니터링을 위해서 주기적으로 메일이 발송되도록 하는작업을 함.

(인터넷을 뒤져봐서 되는것과 함께 [한글]처리하는것 포함해서 처리한것)

CREATE OR REPLACE PROCEDURE 프로시저명 (

pSender    VARCHAR2,
pRecipient VARCHAR2,
pSubject   VARCHAR2,
pMessage   CLOB) IS
c UTL_SMTP.CONNECTION;
MSG CLOB;
l_boundary  VARCHAR2(50) := '----=*#abc1234321cba#*=';
E_SQLCODE VARCHAR2(30);
E_SQLMSG VARCHAR2(1000);

BEGIN

c := UTL_SMTP.OPEN_CONNECTION('localhost');
UTL_SMTP.HELO(c, 'localhost');
UTL_SMTP.MAIL(c, pSender);
UTL_SMTP.RCPT(c, pRecipient);
UTL_SMTP.OPEN_DATA(c);

MSG := 'From : ' || '"Sender" <'||pSender||'>' ||UTL_TCP.CRLF;
MSG := MSG||'To' || ': ' || '"Recipient" <'||pRecipient||'>' || UTL_TCP.CRLF;

MSG := MSG||'Subject' || ': ' || pSubject || UTL_TCP.CRLF;

MSG := MSG||'MIME-Version: 1.0' || UTL_TCP.CRLF;

  --MSG := MSG||'Content-Type: multipart/alternative; boundary="'||l_boundary || '"' || UTL_TCP.crlf || UTL_TCP.crlf;
MSG := MSG||'Content-Type: text/html; charset="UTF-8"' ||UTL_TCP.crlf || UTL_TCP.crlf;
MSG := MSG||UTL_TCP.CRLF ||pMessage;

  

UTL_SMTP.WRITE_RAW_DATA(c,UTL_RAW.CAST_TO_RAW(MSG));
UTL_SMTP.CLOSE_DATA(c);
UTL_SMTP.QUIT(c);

EXCEPTION
     WHEN OTHERS THEN         
     UTL_SMTP.QUIT(c);

      

END;

/



네트워크 접근에 관한부분이 smtp 있다고 되는게 아니더라.

아래의 dict 를 조회하면 네트워크 접근 엑세스 정보 확인이 되고.

SELECT HOST
            ,LOWER_PORT      
            ,UPPER_PORT
            ,ACL
            ,ACLID  
   FROM DBA_NETWORK_ACLS;


아래는 네트워크 엑세스 추가할때 쓰는 패키지

BEGIN

DBMS_NETWORK_ACL_ADMIN.assign_acl ( acl => 'acl_scott.xml', host => 'mail.********.nl', lower_port => 25, upper_port => NULL); COMMIT;


신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설
2013.11.18 09:36

이관찌꺼기 DROP Oracle/Oracle 오류기타2013.11.18 09:36

이관 프로젝트가 종료후에 DB가 잘 돌아간다.
성능이 좋아져서 이슈가 없는 상황이 되어 조용한데.
어느순간부터 ALERT LOG가 매일같이 반복해서 찍히는것이 있었다.

DBMS_STATS: GATHER_STATS_JOB: GATHER_TABLE_STATS('"SYS"','"ET$1C5100030001"','""', ...)

DBMS_STATS: ORA-20011: Approximate NDV failed: ORA-29913: error in executing ODCIEXTTABLEOPEN callout

KUP-11024: This external table can only be accessed from within a Data Pump job.

DBMS_STATS:  Too many errors...  Rest of the erros are not reporded.

찾아보니.

이관할때 DATA PUMP 로 퍼날랐었는데. 
오라클은 이런저런 정보를 다 기록을 하고 가지고있는것 인지.
위와같은 ET$1C5100030001  같은 정보를 통계를 작업하려고 하나보다.


실체는 없는데 저걸 찾는걸 봐선 따로관리하는 리스트업이 있나보다.
일단 그래서 찾은 쿼리는 아래와같다.

SELECT OWNER_NAME, JOB_NAME, OPERATION, JOB_MODE, 

STATE, ATTACHED_SESSIONS 

FROM DBA_DATAPUMP_JOBS 

WHERE JOB_NAME NOT LIKE 'BIN$%' 

ORDER BY 1,2; 

그래서 해당테이블을 "DROP TABLE SYSTEM.SYS_IMPORT_TABLE_01" 하여 DROP 했다.

일단 오늘 했으니 통계가 조용히 끝날지 안끝날지는 오늘밤이 지나면 알겠지.

 

SELECT 'DROP TABLE '||OWNER||'.'||TABLE_NAME||' PURGE;'
   FROM DBA_EXTERNAL_TABLES;

해당 DICT에 나오는 내용도 전부 드랍 했더니 조용하다....

신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

오라클의 설치된 패치정보를 보는 명령어

내가 현재 있는 고객사의 DB가 설치된곳은 미국이다. 미국의 서버호스팅업체중 이름을 들으면 "아 거기~" 하는 업체가 있는데
하도 지랄스럽게 관리하여 현재 운영되는 DB와 신규로 이관한 DB의 패치정보도 직접봐야하는 상황이라서
해당 정보보는 방법을 찾아보고 메모한다.

 

$ opatch lsinventory -all
Oracle Interim Patch Installer version 11.2.0.3.4
Copyright (c) 2012, Oracle Corporation.  All rights reserved.


Oracle Home       : /oracle/app/oracle/product/11.2.0/dbhome_1
Central Inventory : /oracle/app/oraInventory
   from           : /oracle/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
OPatch version    : 11.2.0.3.4
OUI version       : 11.2.0.3.0
Log file location : /oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2013-10-14_14-31-39PM_1.log

Lsinventory Output file location : /oracle/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2013-10-14_14-31-39PM.txt

--------------------------------------------------------------------------------
List of Oracle Homes:
  Name          Location
   OraDb11g_home1         /oracle/app/oracle/product/11.2.0/dbhome_1
   agent12c3         /oraagent/oracle/agent12g/core/12.1.0.3.0
   sbin12c3         /oraagent/oracle/agent12g/sbin
   OraHome11         /oraagent/oracle/agent12g/plugins/oracle.sysman.oh.discovery.plugin_12.1.0.3.0
   OraHome12         /oraagent/oracle/agent12g/plugins/oracle.sysman.xa.discovery.plugin_12.1.0.4.0
   OraHome13         /oraagent/oracle/agent12g/plugins/oracle.sysman.db.discovery.plugin_12.1.0.4.0
   OraHome14         /oraagent/oracle/agent12g/plugins/oracle.sysman.emas.discovery.plugin_12.1.0.4.0
   OraHome15         /oraagent/oracle/agent12g/plugins/oracle.sysman.oh.agent.plugin_12.1.0.3.0
   agent12c2         /oraagent/oracle/agent12c/core/12.1.0.3.0
   OraHome6         /oraagent/oracle/agent12c/plugins/oracle.sysman.beacon.agent.plugin_12.1.0.3.0
   OraHome7         /oraagent/oracle/agent12c/plugins/oracle.sysman.csa.discovery.plugin_12.1.0.3.0
   OraHome8         /oraagent/oracle/agent12c/plugins/oracle.sysman.csa.agent.plugin_12.1.0.3.0
   OraHome9         /oraagent/oracle/agent12c/plugins/oracle.sysman.emrep.agent.plugin_12.1.0.3.0
   OraHome17         /oraagent/oracle/agent12c/plugins/oracle.sysman.db.agent.plugin_12.1.0.4.0
   OraHome21         /oraagent/oracle/agent12c/plugins/oracle.sysman.emas.agent.plugin_12.1.0.4.0
   agent12c1         /oracle/oracle/agent12c/core/12.1.0.3.0
   sbin12c11         /oracle/oracle/agent12c/sbin
   OraHome10         /oracle/oracle/agent12c/plugins/oracle.sysman.oh.discovery.plugin_12.1.0.3.0
   OraHome16         /oracle/oracle/agent12c/plugins/oracle.sysman.xa.discovery.plugin_12.1.0.4.0
   OraHome18         /oracle/oracle/agent12c/plugins/oracle.sysman.db.discovery.plugin_12.1.0.4.0
   OraHome19         /oracle/oracle/agent12c/plugins/oracle.sysman.emas.discovery.plugin_12.1.0.4.0
   OraHome20         /oracle/oracle/agent12c/plugins/oracle.sysman.oh.agent.plugin_12.1.0.3.0
   oracle_sysman_db_12_1_0_4_0_agent_Home0         /oracle/oracle/agent12c/plugins/oracle.sysman.db.agent.plugin_12.1.0.4.0
   sbin12c4         /oraagent/oracle/agent12c/sbin
   OraHome1         /oraagent/oracle/agent12c/plugins/oracle.sysman.oh.discovery.plugin_12.1.0.3.0
   OraHome2         /oraagent/oracle/agent12c/plugins/oracle.sysman.xa.discovery.plugin_12.1.0.4.0
   OraHome3         /oraagent/oracle/agent12c/plugins/oracle.sysman.db.discovery.plugin_12.1.0.4.0
   OraHome4         /oraagent/oracle/agent12c/plugins/oracle.sysman.emas.discovery.plugin_12.1.0.4.0
   OraHome5         /oraagent/oracle/agent12c/plugins/oracle.sysman.oh.agent.plugin_12.1.0.3.0

Installed Top-level Products (1):

Oracle Database 11g                                                  11.2.0.3.0
There are 1 products installed in this Oracle Home.


Interim patches (1) :

Patch  16056266     : applied on Tue Jul 23 00:00:15 KST 2013
Unique Patch ID:  15962803
Patch description:  "Database Patch Set Update : 11.2.0.3.6 (16056266)"
   Created on 12 Mar 2013, 02:14:47 hrs PST8PDT
Sub-patch  14727310; "Database Patch Set Update : 11.2.0.3.5 (14727310)"
Sub-patch  14275605; "Database Patch Set Update : 11.2.0.3.4 (14275605)"
Sub-patch  13923374; "Database Patch Set Update : 11.2.0.3.3 (13923374)"
Sub-patch  13696216; "Database Patch Set Update : 11.2.0.3.2 (13696216)"
Sub-patch  13343438; "Database Patch Set Update : 11.2.0.3.1 (13343438)"
   Bugs fixed:
     13566938, 13593999, 10350832, 14138130, 12919564, 13561951, 13624984
     13588248, 13080778, 13914613, 13804294, 14258925, 12873183, 13645875
     14472647, 12880299, 14664355, 14409183, 12998795, 14469008, 13719081
     13492735, 13496884, 12857027, 14263036, 14263073, 13732226, 13742433
     16368108, 16314469, 12905058, 13742434, 12849688, 12950644, 13742435
     13464002, 13534412, 12879027, 13958038, 14613900, 12585543, 12535346
     12588744, 11877623, 13786142, 12847466, 13649031, 13981051, 12582664
     12797765, 14262913, 12923168, 13384182, 13612575, 13466801, 13484963
     14207163, 11063191, 13772618, 13070939, 12797420, 13041324, 16314467
     16314468, 12976376, 11708510, 13680405, 14589750, 13026410, 13742437
     13737746, 14644185, 13742438, 13326736, 13596521, 13001379, 16344871
     13099577, 9873405, 14275605, 13742436, 9858539, 14841812, 11715084
     16231699, 14040433, 12662040, 9703627, 12617123, 12845115, 12764337
     13354082, 14459552, 13397104, 13913630, 12964067, 12983611, 13550185
     13810393, 12780983, 12583611, 14546575, 13476583, 15862016, 11840910
     13903046, 15862017, 13572659, 16294378, 13718279, 14088346, 13657605
     13448206, 16314466, 14480676, 13419660, 13632717, 14063281, 14110275
     13430938, 13467683, 13420224, 13812031, 14548763, 16299830, 12646784
     13616375, 14035825, 12861463, 12834027, 15862021, 13632809, 13377816
     13036331, 14727310, 13685544, 15862018, 13499128, 16175381, 13584130
     12829021, 15862019, 12794305, 14546673, 12791981, 13787482, 13503598
     10133521, 12718090, 13399435, 14023636, 13860201, 12401111, 13257247
     13362079, 14176879, 12917230, 13923374, 14220725, 14480675, 13524899
     13559697, 9706792, 14480674, 13916709, 13098318, 13773133, 14076523
     13340388, 13366202, 13528551, 12894807, 13454210, 13343438, 12748240
     14205448, 13385346, 15853081, 14273397, 12971775, 13582702, 10242202
     13035804, 13544396, 16382353, 8547978, 14226599, 14062795, 13035360
     12693626, 13332439, 14038787, 14062796, 12913474, 14841409, 14390252
     16314470, 13370330, 13059165, 14062797, 14062794, 12959852, 13358781
     12345082, 12960925, 9659614, 13699124, 14546638, 13936424, 13338048
     12938841, 12658411, 12620823, 12656535, 14062793, 12678920, 13038684
     14062792, 13807411, 13250244, 12594032, 15862022, 9761357, 12612118
     13742464, 14052474, 13911821, 13457582, 13527323, 15862020, 13910420
     13502183, 12780098, 13705338, 13696216, 14841558, 10263668, 15862023
     16056266, 15862024, 13554409, 13645917, 13103913, 13011409, 14063280

 

--------------------------------------------------------------------------------

OPatch succeeded.
$

신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설
2013.10.01 10:02

ADDM 비활성 , 활성 Oracle/Oracle 오류기타2013.10.01 10:02

ADDM 활성 비활성 정보 ( 타 블로그에서 찾음 )

DBA_HIST_시리즈들이 데이터가 전부 0건이어서 ADDM 이 파업하고 쉬나보다~ 해서 깨워보고자 이것저것 찾아보던중

한블로그에서 10g 와 11g에서 활성하는 방법을 정리해서 그부분을 가져옴.


블로그 URL : http://jhdba.wordpress.com/2009/01/17/disabling-addm-in-10g-and-11g/


해당 블로그 갈무리한 정보

10g

Use the package to modify the snapshot interval to 0

Execute dbms_workload_repository.modify_snapshot_settings
(retention=>20160, interval=> 0);

11g

The initialization parameter should be set to DIAGNOSTIC+TUNING (default) or DIAGNOSTIC to enable automatic database diagnostic monitoring. Setting CONTROL_MANAGEMENT_PACK_ACCESS to NONE disables many Oracle Database features, including ADDM, and is strongly discouraged, but seems to be the only way to disable the automatic monitoring.

Tuning relies on having a diagnostic license which explains why the options are NONE, DIAGNOSTIC or DIAGNOSTIC+TUNING


신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

오라클 성능테스트 중에 해당 메세지가 ALERT LOG 에 찍혔다.

<msg time='2013-09-27T11:17:47.865+09:00' org_id='oracle' comp_id='rdbms'

 client_id='' type='UNKNOWN' level='16'

 host_id='호스트' host_addr='아이피' module=''

 pid='76246'>

 <txt>Thread 1 cannot allocate new log, sequence 1264

 </txt>

</msg>

<msg time='2013-09-27T11:17:47.870+09:00' org_id='oracle' comp_id='rdbms'

 client_id='' type='UNKNOWN' level='16'

 host_id='호스트' host_addr='아이피' module=''

 pid='76246'>

 <txt>Private strand flush not complete

 </txt>

</msg>

<msg time='2013-09-27T11:17:47.873+09:00' org_id='oracle' comp_id='rdbms'

 client_id='' type='UNKNOWN' level='16'

 host_id='호스트' host_addr='아이피' module=''

 pid='76246'>

 <txt>  Current log# 3 seq# 1263 mem# 0: /oradata/oracle/oradata/redo/redo03a.log

 </txt>

</msg>


저 메세지의 정체를 확인하고자 함.

내기억에 oracle 공부할때 redo strand라는 이름이 머릿속에 있다.

인터넷 구글링중 : 

LGWR이벤트에서 DBWR작업 완료대기중에 IMU FLUSH 중에 발생하는 메세지라고 하는것같다~(해석의 한계)

관련 메타링크라고하는데 메타링크 못들어가므로 일단 No.만 기록 : Oracle Metalink note 372557.1


신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

Alert Log에 아래와 같은 메세지가 찍혔다.

<msg time='2013-09-27T09:49:43.403+09:00' org_id='oracle' comp_id='rdbms'

 msg_id='kewa_eflush_cb:4334:2772171331' client_id='' type='NOTIFICATION'

 group='ash' level='16' host_id='호스트아이디'

 host_addr='호스트아이피' module='MMON_SLAVE' pid='21117'>

 <txt>Active Session History (ASH) performed an emergency flush. This may mean that ASH is undersized. If emergency flushes are a recurring issue, you may consider increasing

 ASH size by setting the value of _ASH_SIZE to a sufficiently large value. Currently, ASH size is 167772160 bytes. Both ASH size and the total number of emergency flushes sin

ce instance startup can be monitored by running the following query:

 select total_size,awr_flush_emergency_count from v$ash_info;

 </txt>


ASH BUFFER에 담긴 데이터가 이~멀전씨하게 플러시가 되어서 메세지를 남긴것 같은데~ 관련 사항을 조사함.

1. 위 메세지대로 v$ASH_INFO 의 TOTAL_SIZE 확인

SELECT TOTAL_SIZE FROM V$ASH_INFO;


2. 어찌하였든 버퍼니까 어딘가 메모리에 올릴것이다 어디에 올릴까 SGA일것인데 그래서 SGASTAT 뒤져보다.

SELECT *FROM V$SGASTAT WHERE BYTES = (SELECT TOTAL_SIZE FROM V$ASH_INFO);


SQL> SELECT *FROM V$SGASTAT WHERE BYTES = (SELECT TOTAL_SIZE FROM V$ASH_INFO);

POOL         NAME                            BYTES

------------ -------------------------- ----------

shared pool  ASH buffers                 167772160

SQL>


3. SGA 중에 SHARED POOL 을 씀을 확인후 설정한값을 고려하여 사이즈를 적절히 늘려줬다.

- 설정된 사이즈중에 저놈만 일치했고 관련 용어가 저놈임을 확실하다라고 판단!

SQL> alter system set "_ash_size"=251658240 scope=both;

System altered.

SQL> select total_size,awr_flush_emergency_count from v$ash_info;

TOTAL_SIZE AWR_FLUSH_EMERGENCY_COUNT

---------- -------------------------

 251658240                         9

SQL> SELECT *FROM V$SGASTAT WHERE BYTES = (SELECT TOTAL_SIZE FROM V$ASH_INFO);

POOL         NAME                            BYTES

------------ -------------------------- ----------

shared pool  ASH buffers                 251658240

SQL> 


4. 완료.

현재 DB서버의 여러가지 성능테스트중이어서 짧은시간에 쌓이는 정보들이 많아서 또한 최대 성능을 테스트하기위해서 세션들이
우르르 붙어서 작업을 하다보니 데이터가 많아지나보다 버퍼에 다 못올렸겠지라고 생각되며 오라클이 
아~~~ 절라 이멀전씨하다~ 플러시! 
이래서 플러시 되느라 메세지가 찍혀진것같다.



신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

GRANT SELECT_CATALOG_ROLE TO 사용자;
GRANT SELECT ANY DICTIONARY TO 사용자;

 

신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설
2013.09.16 13:41

Memlock limit too small Oracle/Oracle 오류기타2013.09.16 13:41

Oracle Version : 11.2.0.3
OS : RedHat Linux 6

발생 상황 :

ALERT LOG 에 아래와 같은 메세지 발견

<msg time='2013-09-15T21:10:41.305-04:00' org_id='oracle' comp_id='rdbms'
type='UNKNOWN' level='16' host_id='hostdomain'
host_addr='10.0.0.10' pid='58761'>
<txt>Memlock limit too small: 65536 to accommodate segment size: 1610612736
</txt>
</msg>

 

처리방법 :

 

/etc/security/limits.conf 파일에

아래 두줄추가.

oracle soft memlock unlimited
oracle hard memlock unlimited

 

신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

내컴퓨터에 오라클을 설치하고 다른 서버에 DBLINK로 붙어서 작업하는중에
메세지가 뜬다. 

[ ORA-02020 : 너무 많은 데이터베이스 링크들이 사용되고 있습니다.]

해결 방안 :

파라미터명 : open_link , open_link_per_instance 수정
이 파라미터보니까 동적으로 적용이 안되네. 아마도 open_file과 관련이 있어서 그러나 ? =_=

아무튼 이 문제는 내PC에 설치한 오라클은 4로 되어있어서 나는 오류.

 

 

신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설