Archive for the ‘ORACLE’ Category

[ORACLE] ORA-12542: TNS:address already in use

2009 年 10 月 26 日

 

ORA-12542:
    TNS:address already in use
Cause:
    Specified listener address is already being used.
Action:
    Start your listener with a unique address.

訊息:

ORA-12542: TNS:位址已使用

環境:

Windows Server 2003 + IIS + Oracle Database Server

狀況:

系統執行程式時出現TNS:位址已使用的訊息,但實際上並沒有其它的服務使用1521或1526埠
且此狀況在不做任何處理下就回復正常。

原因:

Oracle Client會透過TNS Client連到Database Server, 而作業系統會為Client連線動態配置連接埠 (MaxUserPort; Default=1024-5000)
而當連線結束時, 此連接埠會保留240秒 (TcpTimedWaitDelay; Default=240)
所以在短時間(240秒)內, 同時系統有大量連線時, 而超過可動態配置的連接埠的話, Windows 會沒有可用的連接埠可用, 因而造成此訊息.

處理:

    1. 增加可用的動態配置連接埠數
      1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 新增機碼
      2. Value Name: MaxUserPort
      3. Data Type: REG_DWORD
      4. Value: 65534
      5. Valid Range: 5000-65534 (decimal)
      6. Default: 0x1388 (5000 decimal)
    2. 減少連線結束時, 此連接埠的保留時間
      1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters新增機碼
      2. Value Name: TcpTimedWaitDelay
      3. Data Type: REG_DWORD
      4. Value: 60
      5. Valid Range: 30-300 (decimal)
      6. Default: 0xF0 (240 decimal)
    3. 減少動態連線的需求

參考資料:

http://forums.oracle.com/forums/thread.jspa?threadID=709714

廣告

[Oracle] Oracle 9i Client Setting

2009 年 09 月 02 日


圖 1 從[開始]à[程式集]à[Oracle OraHome92]à[Configuration and Migration Tools]à[Net Manager]開啟Oracle Net管理員,選擇[區域]à[服務名稱],然後選取功能表上的[編輯]à[建立…]開啟網路服務名稱精靈


圖 2 輸入「網路服務名稱」為ORACLE,然後按「下一步」…


圖 3 選擇TCP/IP(Internet Protocol)為通訊協定,然後按「下一步」…


圖 4 在協定設定畫面裏,「主機名稱」輸入ORACLE或指定的IP,「連接埠號碼」輸入1521(預設值),然後按「下一步」…


圖 5 「服務名稱」請輸入ORACLE.ks.proyoung.com.tw(應與伺服器的設定相同),然後按「下一步」…


圖 6 按一下「測試…」按鈕,以測試設定是否正確…


圖 7 如果伺服器已有scott/tiger的預設帳號,便會出現測試成功的畫面。或是按「變更登入…」輸入連線的帳號/密碼,然後按「測試」。測試成功後請按「關閉」按鈕…


圖 8 測試成功後,請按「完成」按鈕。

[Oracle] Oracle 9i Server Install

2009 年 09 月 02 日


圖 1 插入Oracle 9i Server Disc 1 of 3光碟後,出現如上畫面,選擇「Install/Deinstall Product」:


圖 2 Oracle Universal Installer 2.2畫面。


圖 3 Oracle Universal Installer歡迎畫面,請選擇「下一頁」:


圖 4 Oracle Universal Installer檔案位置,已預設好檔案位置,請選擇「下一頁」:


圖 5 正在載入產品清單。


圖 6 Oracle Universal Install可使用的產品,請選擇「下一頁」:


圖 7 Oracle Universal Install安裝類型,請選擇「下一頁」:


圖 8 Oracle Universal Installer安裝類型,正在設定安裝類型…


圖 9 Oracle Universal Installer資料庫組態,請選擇「下一頁」:


圖 10 Oracle Universal installer資料庫組態,正在處理中…


圖 11 Oracle Universal Installer: Oracle Services for Microsoft Transaction Server,請選擇「下一頁」:


圖 12 Oracle Universal installer資料庫ID,請輸入「全域資料庫名稱(ORACLE.ks.proyoung.com.tw)」名稱,SID會自動帶出(ORACLE),請按「下一頁」


圖 13 Oracle Universal Installer資料庫檔案位置,請按「下一頁」:


圖 14 Oracle Universal Installer資料庫字元集,請依需求選擇字元集,然後選擇「下一頁」:


圖 15 Oracle Universal Installer摘要,請選擇「安裝」:


圖 16 Oracle Universal installer安裝進行中…


圖 17 請將Oracle9i磁碟2插入光碟機後,選擇「確定」:


圖 18 Oracle Universal Installer安裝進行中…


圖 19 請將Oracle9i磁碟3插入光碟機後,選擇「確定」:


圖 20 Oracle Universal Installer環境架構工具,正在進行中…


圖 21 資料庫組態輔助程式,輸入指定密碼後,選擇「確定」:


圖 22 Oracle Universal Installer環境架構工具,正在進行中…


圖 23 安裝完成,請選擇「結束」。

[Oracle] Oracle 10g Client Install

2009 年 09 月 02 日

注意:安裝來源路徑應為本機路徑,不要經由網路芳鄰安裝。

 
圖 1 執行目錄下的SETUP.EXE

 
圖 2 按[下一步]繼續

 
圖 3 選擇安裝類型[程式實際執行],然後按[下一步]繼續

InstallClient:只有ODBC Driver

管理員:包括管理員界面,通常安裝於管理員使用的機器上

程式實際執行:ODBC Driver、Net Manager…等執行時會用到的軟體,通常安裝在一般開發人員的機器上

 
圖 4 指定安裝路徑,然後按[下一步]繼續

 
圖 5 產品特定最低安裝需求檢查,按[下一步]繼續

 
圖 6 摘要,按[下一步]繼續

 
圖 7 安裝進行中

 
圖 8 進行組態輔助程式,注意:防火牆會跳出警告訊息,視窗會被蓋住,請將此視窗縮到最小

 
圖 9 按[解除封鎖]

 
圖 10 進入Oracle Net組態輔助程式,按[下一步]繼續

 
圖 11 Oracle Net組態完成,按[完成]

 
圖 12 Oracle Client的安裝成功,按[結束]

 
圖 13 確定要結束嗎?按[是]

[ORACLE] ORA-00020: maximum number of processes (%s) exceeded

2009 年 09 月 02 日

訊息

ORA-00020: maximum number of processes (%s) exceeded

Cause: All process state objects are in use.

Action: Increase the value of the PROCESSES initialization parameter.

訊息:達到最大連線數

原因:連線數太多

治本之法:檢查系統為何有那麼多同時的連線? 同時使用量太高? 資料庫連線開了沒有關閉?

治標之法:增加資料庫的可同時連線數

如何增加資料庫連線數?

 
圖 1 啟動Oracle Enterprise Manager

 
圖 2 在資料庫上按右鍵,點擊Connect…

 
圖 3 輸入Username為SYS、Password為adg123及Connect as為SYSDBA

 
圖 4 展開資料庫àInstanceàConfiguration,然後按右邊的[所有初始化參數…]按鈕

 
圖 5 點擊SPFiles,然後找到process參數,預設為150,修改成你要的數值

 
圖 6 靜態spfile參數己經變更. 要重新啟動資料庫以套用此變更嗎? 是

 
圖 7 是否要重新啟動此執行處理?

 
圖 8 這項作業需要關閉並重新啟動資料庫. 選取[立即],然後按[確定]

 
圖 9 正在重啟

 
圖 10 重啟完成

[ORACLE] ORA-01704: 字串內容過長

2009 年 08 月 10 日

狀況:

執行一個超長的UPDATE SQL語法,產生下列錯誤訊息:
SET CODE_VALUE='<CodeValue>
               *
ERROR 在行 2:
ORA-01704: 字串內容過長

說明:

丟給Oracle的SQL語法字串長度限制為4000個字元

處理:

將要更新的欄位值指定給一個變數,然後將這個變數指定給SQL語法

範例:

LET 變數 =  "超長的字串值"
UPDATE 表格 SET 欄位 = 變數 WHERE 條件

其它資訊:

ORA-01704: string literal too long
Cause: The string literal is longer than 4000 characters.
Action: Use a string literal of at most 4000 characters. Longer values may only be entered using bind variables.