搜尋此網誌

星期二, 3月 26, 2019

Oracle Listener on specific ip or all interface


Oracle listener port listen on which ip address?



Once you start Oracle listener service, you may not know which ip the listener will receive a connection. 

if you configure HOSTNAME as host address, the listener will listener on all interface.











if you want to listen on a specific ip address, you need to replace the hostname to an ip address. 






星期三, 3月 20, 2019

Linux找出使用交換空間(swap space) 的進程( process)

最近資料庫有大量使用cpu / swap的現象,為了查找是否除了 Oracle 資料庫外,還有別的程序使用SWAP,因此在網路上找到這篇文章


 https://www.cyberciti.biz/faq/linux-which-process-is-using-swap/


 這篇文章有介紹幾個指令 文後有一段小的Schell Script,可以用來快速找出佔用SWAP的前幾名


 ## Get swap space in Linux using bash for loop ##

for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less


等下次再發生時,可以再抓取相關資訊

星期六, 6月 11, 2016

Windows 10 無法執行 SQL Developer (unable launch java virtual machine jvm.dll)


今天在新安裝的Windows 10中,運行SQL Developer 在下載了SQL Developer bundle JDK



發生了以下的問題==>, 無法找到 jvm.dll

然而在路徑上尋找此檔案是有存在的。 

雖然ORACLE官方網站有相關的說明,但是仍無法明暸如何解決,因此到網路上找尋方法。 

原來是因為Windows 並無放入 MSVCR100.dll 

到 SQLDEVELOPER目錄中 /sqldeveloper/jdk/jre/bin中,將MSVCO100.dll 複製至\windows\system32中,即可以正常運行了。


星期三, 4月 15, 2015

Oracle emcli setup failed on Windows (無法建立與目前OMS的連線,請查看日誌檔瞭解進一步的詳細資訊)(Error: Connection to the current OMS could not be established. Check the log files for further details.)

今天嘗試在 Windows 安裝 Cloud Control Agent

1、環境:
OMS

OS: Linux 6.4
Cloud Control: 12c R3

Client
OS: Windows 7
JRE: 1.8

2、步驟:




  • 下載安裝請參考:emcli http://docs.oracle.com/cd/E24628_01/em.121/e17786/deploy.htm#EMCLI117
  • 安裝過程很簡單 ==>  需要先安裝JAVA,再執行以下的安裝步驟
    java -jar emclikit.jar -install_dir=c:\Agent 
  • 設定OMS連線時,發生無法連線OMS的錯誤


這是遇到了JRE 1.8 Client 與 Oracle Http Server 在SSL 上認證的BUG Doc ID 1675108.1
        解法:
      • 下載Patch p17555224_111160_Linux-x86-64.zip (記得要選111160)
      • 停止 OMS,opatch apply ,啟動OMS
        emctl stop oms -all
        opatch all
        emctl start oms
      • 再度設定emcli 連線至OMS,就沒有錯誤了。



    星期日, 3月 18, 2012

    [DBA] 一句sql可能因為指定的內容,造成Full Table Scan & Index Scan. 20120319

    一句sql可 能因為指定的內容,可能造成Full Table Scan or Index Scan.
    今天在看sql的資料中,發現了這個有趣現象,供大家討論。

    原sql為:
    SQL> SELECT MAX (joblog0_.date_created) AS col_0_0_
      FROM newsec.job_log joblog0_
     WHERE joblog0_.job_name = :1 AND joblog0_.log_type = 'Finish';

    其執行計劃:

    看來是有用到indexcost也 相當低

    不過,我在系統的統計中發現一個問題




    因此查詢一下此sql的歷史的執行計劃




    結果同一個sql,有二種不同的執行結果,一個有採用到Index , 一個卻沒有用到index

    因此我好奇的查了一下table的 資料,發現job_name log_type 建立的index 都 正常

    由於job_name 為動態變數,而log_type 為 固定值(Finish),所以我以job_name的 值帶入後發現,若以job_name='JOB_76'帶入,就會造成Full Table Scan


    但若以job_name='JOB_151'帶 入,則又是正常的index scan

    我們以job_name 來做資料的分類
    會發現,job_name = 'JOB_76' 的 資料量有高達26386筆,而job_150job_148也 是相當多筆。
    故事還沒完
    照道理來說,若JOB_76full table scan的話,那比它多的應該也都是full table scan
    然而實際狀況並非如此。JOB_150有 高達8萬多筆,比job_762萬 多筆多出了三倍,居然是Index Scan。嚇死人了,見鬼了喲。

    因此,我們再分析一下二個條件job_name & log_type='Finish'所 造成的筆數內容。
        JOB_76    JOB_148   JOB_150
         13179           0                      0

    JOB_148 & JOB_150 都 是0筆,怎麼會一個是Full Table Scan, 一 個是Index Scan

    我猜想這大概跟統計值有關係。果不其然,在JOB_LOG這 個table中,發現統計值過期了。


    重 新analyzed 過後,則都能用到Index 了。


    星期四, 3月 08, 2012

    Oracle Group by Without sort after 10g

    Create a temp table to exam the test;

    SQL: create table test as select * from v$session;

    Now, I Query the test table with group by , and no index add on the table.

    SQL: select username,count(1) from test group by username ;

    Oracle 9i the Explain is ..



    Oracle 11g the Explain is ..

    
    

    星期二, 3月 06, 2012

    一隻抓取時間的procedure造成cpu拉高

    今天有機會看一個系統的狀況,解決的過程如下:

    1、環境:
    Oracle Rac 10.2.0.3 on Sun Solaris

    2、問題:

    @程式碼:

    CREATE OR REPLACE PROCEDURE proc_system_time(Sys_date_timeOUT char) IS
    BEGIN
    Sys_date_time := TO_CHAR(SYSDATE,'yyyymmddhh24miss');
    END;
    /


     @症狀:
        cpu 升高


    3、分析:
    經由awr report檢查系統使用率,不論是memory的使用率,hard parse & hit ration都還不錯。


    但在sql ordered by execution 中發現 執行的次數在2小時間,有1534萬次,實在高得離譜。


    懷疑有無窮迴圈產生。





    SQL ordered by Executions

    • Total Executions: 16,500,018
    • Captured SQL account for 95.5% of Total
    ExecutionsRows ProcessedRows per ExecCPU per Exec (s)Elap per Exec (s)SQL IdSQL ModuleSQL Text
    15,344,16815,337,9331.000.000.008u74nmyn35a6fw3wp.exeBEGIN proc_system_time...
    93,70793,7071.000.000.00ftj9uawt4wwzbselect condition from cdef$ wh...
    75,92775,9271.000.000.00ckxd2nv9y5vyvACC.exeSelect count ( rowid ) From pa...
    70,81270,4971.000.000.00dq5p20xu978dnACC.exeselect inp_dec_rec_id from cha...
    20,048344,08017.160.000.00db78fxqxwxt7rselect /*+ rule */ bucket, en...
    14,84100.000.000.00b2gnxm5z6r51nlock table sys.col_usage$ in e...
    12,84510,9050.850.000.0096g93hntrzjtrselect /*+ rule */ bucket_cnt,...
    7,2401,0000.140.000.000h6b2sajwb74nselect privilege#, level from ...
    7,1597,2421.010.000.000k8522rmdzg4kselect privilege# from sysauth...
    6,4286,4131.000.000.003c1kubcdjnppqupdate sys.col_usage$ set eq...



    4、解決:請使用者回去找開發人員,是否有異動程式。