ORA-12170: TNS:Connect timeout occurred ORA-12514: TNS: 監聽程式當前無法識別連接描述符中請求的服務 ORA-12705: Cannot access NLS data files or invalid environment s... ...
客戶機中PLSQL DEV訪問虛擬機中的ORACLE11g,錯誤百出!
創建時間: | 2017/10/14 18:44 |
作者: | CNSIMO |
標簽: | ORACLE |
忙了一下午,只有兩個字形容:麻煩! 安裝ORACLE1g 首先,我已經提前在虛擬機上配置了windows2008+oracle11g,為什麼用server2008呢?我沒有別的,win10做虛擬機覺得不太好,win7鏡像還得下載,你懂的。 然後就是oracle11g是去某電腦上拷過來的,我是一個十分愛惜流量的人,嘿嘿。 我們老師為了讓我們更清楚區分資料庫軟體安裝和資料庫配置,所以在安裝oracle11g的時候選擇的是”只安裝資料庫軟體“(記得是第二個選項),然後安裝的時候字元集都設置的UTF8,其他的配置基本上都是保持的預設。 好了,安裝的事情不細說,一般情況下只要是主機沒問題,檢測條件通過,安裝都是不成問題的,下麵就開始了配置資料庫。 首先使用DCA(在oRACLE的開始菜單文件夾裡面,縮寫哦),打開後會顯示幾個選項,選擇【創建資料庫】,然後下一步,之後的幾個步驟一直到創建資料庫完畢,並沒有出任何錯誤,所以就不多說了,唯一齣現的錯誤可能就是提示類似“沒有監聽,無法繼續”的對話框,所以就去NCA(和DCA同級目錄)添加監聽,你只需一直下一步就行,預設的監聽埠是1521,然後回到DCA就能夠繼續下一步了,一直到最後,需要關註的就是,最後的一個頁面有web管理頁面的URL,此埠號都是https://hostname:port/em這個形式的,hostname就是本機的ip地址,port就是埠號,我的埠號是1158,有的可能不是。 例如我的web管理頁面:https://server2008:1158/em,我的資料庫監聽埠是1521。 管理頁面如下: 如果剛安裝完,紅框中的狀態不對,那麼考慮重裝或者重啟ORACLE各項服務或者重啟ORACLE伺服器。 重啟ORACLE伺服器的操作如下: 打開cmd輸入以下命令: sqlplus / as sysdba shutdown immediate startup 然後說ORACLE這幾個配置工具的功能:
- DCA:管理資料庫(創建、刪除等等)
- NCA:配置資料庫網路服務(監聽、服務名等)
- Net Manager:網路綜合管理工具(監聽、服務名等具體信息查看更改等)
- 我所說的話,都是假設你對電腦瞭解,並且有基礎,思維敏捷,熟悉VM虛擬機,不懂的請提問。
- 宿主機和虛擬機能夠互相ping通,如果不行,嘗試將連接方式改為NAT,宿主機中的VMNet8網卡ipv4設置為自動獲取IP。
- 宿主機中的ORACLE的各項服務都已經正常啟動。
- 還得知道環境變數怎麼配置,不懂的自動百度學習。
- 虛擬機:VM12.5.7版本
- 宿主機:win10專業版1703
- PLSQL Developer 12(下載地址:https://www.allroundautomations.com/bodyplsqldevreg.html)
- 虛擬機:server2008r2 企業版,記憶體2G
- oracle:11g,資料庫實例名稱STD,全局資料庫名STD.CNSIMO.CN,所有密碼唯一:Admin2015,字元集:UTF8,語言:簡體中文
- 官網下載instant client,http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html。
- 下載基礎包和sqlplus包
- 一起解壓出來後,得到一個文件夾,將它複製到任意位置,例如:D:\PLSQL Developer 12\
- 在D:\PLSQL Developer 12\instantclient_12_2中(以下簡稱{instantclient})新建文件夾network,在network中新建文件夾admin。
- 到{instantclient}\network\admin中新建記事本文件,下列代碼複製進去並保存為utf-8格式,名稱改為tnsnames.ora【尾碼名txt->ora】,註意格式不能變(少一個多一個空格都不行)。
- 打開PLSQL DEV12,找到【首選項】設置
- 然後,在connection中安裝圖示設置,instantclient的位置。
- 很重要的一步,到虛擬機註冊表中查看NLS_LANG的值,若無此路徑則直接查找NLS_LANG,複製此鍵值。
- 很重要的一步,在宿主機中新建系統環境變數NLS_LANG,值與虛擬機中保持一致!
- 很重要的一步,再新建系統環境變數TNS_ADMIN,值為{instantclient}\network\admin
- 更改環境變數PATH,添加值為{instantclient}。
- 然後cmd中,運行sqlplus命令連接遠程資料庫,命令為:sqlplus sys/[email protected]/STD.CNSIMO.CN as SYSDBA,下圖代表連接成功。
- 重新打開PLSQL DEV,嘗試連接,填寫用戶名密碼,database下拉框中如果沒有出現之前在tnsnames.ora首行寫的名字STD,就手動輸入STD,並作為SYSDBA連接。成功的話,會進入主界面,否則提示。
- ORA-12170: TNS:Connect timeout occurred
- ORA-12514: TNS: 監聽程式當前無法識別連接描述符中請求的服務
- ORA-12705: Cannot access NLS data files or invalid environment specified