1. 程式人生 > >在WIN7下安裝ORACLE並配置listener.ora和tnsnames.ora檔案,以此使用PLSQL

在WIN7下安裝ORACLE並配置listener.ora和tnsnames.ora檔案,以此使用PLSQL

問題:
去年安裝的ORACLE當時執行的沒出問題,也就沒有寫總結。後來到公司,自己電腦的連不上公司的ORACLE資料庫了,自己一頓操作猛如虎,然後自己的資料庫也連不上了。這篇文章就是用來記錄這次資料庫從正常到被我作壞,然後由恢復正常的過程中遇到的問題以及解決辦法。

問題1:no listener錯誤(錯誤編號當時沒記錄下來)
這個是因為我當時把電腦的環境變數“ORACLE_HOME”重新改成了ORACLE客戶端的安裝目錄,(後來弄明白這個是沒有必要的,如果連線的區域網內的其他機器的資料庫,這個環境變數不是必須的)導致服務OracleOraDb11g_home1TNSListener關閉了。這個我們只需要把ORACLE_HOME這個環境變數配置正確,然後把這個服務啟動起來就可以了。
具體方法:右鍵我的電腦 ====> 管理 ====>服務和應用程式 =====>服務,然後找到下邊這服務,右鍵啟動就好了.

這裡寫圖片描述

如果萬一真有跟我一樣的情況,誤刪之後忘記ORACLE_HOME原來的配置。一般情況下Path環境變數的第一個路徑就是安裝ORACLE之後自動配置的環境變數。可以根據這個來恢復一下。
這裡寫圖片描述
問題2:
ORA-12514:listener does not currently know of service requested in connect descriptor
這個錯誤就比較神奇,因為以前沒有詳細瞭解過oracle客戶端的配置,所以我去年只配置了tnsnames.ora這個配置檔案。當時竟然也正常連線了。但是在我今年的努力下,連線不上了。顯示這個錯誤。於是,我又去研究了一下這個問題。發現listener.ora檔案同樣也需要配置.以下是我的配置.需要的可以參考一下.

listener.ora檔案:

# listener.ora Network Configuration File: D:\instantclient_12_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\solution\product\12.1.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app
\solution\product\12.1.0\dbhome_1\bin\oraclr12.dll") )//這個是本來就有的.我也不知道是啥 (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = D:\app\hasee\product\11.2.0\dbhome_1) (SID_NAME = ORCL) ) //這裡是新加的ORCL例項. (SID_DESC = (GLOBAL_DBNAME = STDT_MGR_DEV) (ORACLE_HOME = D:\app\hasee\product\11.2.0\dbhome_1) (SID_NAME = STDTMGRDEV) )//這裡是新加的STDT_MGR_DEV例項. ) LISTENER = (DESCRIP.TION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) ADR_BASE_LISTENER = D:\app\solution

tnsnames.ora檔案:

# tnsnames.ora Network Configuration File: D:\instantclient_12_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )
  STDT_MGR_DEV =
(DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = STDT_MGR_DEV)
  )
)

Tips:
SID_NAME,SERVICE_NAME這些資料庫例項的引數在安裝完後都有顯示,要好好儲存.
還有如果在命名例項時有下劃線之類的,配置時一定要注意下劃線的寫法.詳情參見上圖中STDT_MGR_DEV的配置方法。

還有一個用toad連線資料庫的錯誤:
Can’t initialize OCI. Error -1:
原因一是toad使用oci檔案,需要使用管理員許可權開啟,因為oracle那個資料夾需要管理員許可權才能訪問。簡單點可以右鍵exe檔案,屬性 ===> 相容性,勾選”以管理員身份執行”,這樣在每次雙擊開啟,確認一下就好了.
二是需要把ORACLW_HOME/bin目錄寫到環境變數Path最前邊,但是一般情況下這個再安裝oracle時就自動做了這個事。