在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時就自動做了這個事。