使用 tnsnames.ora 和 sqlplus 客戶端,無需在 linux 客戶端上安裝 oracle 11g 伺服器
我想使用 SQLplus 客戶端和 tnsnames.ora 創建與遠端 Oracle 伺服器的連接,而無需在 Linux 客戶端上安裝 Oracle 11g 伺服器。我使用 debian 和 bash 腳本從遠端 Oracle 伺服器生成報告。這可能嗎?
我嘗試安裝 SQLplus 客戶端,但找不到 tnsnames.ora 文件。
如果可能的話,你能給我一個配置SQLplus客戶端使用tnsnames.ora文件的例子嗎?
我已經安裝了“基本即時客戶端”和“sqlplus 添加”包。我可以正常連接
sqlplus user/password@host:port/servicenames
。我想創建 bash 腳本以在 10 多個實例上執行 *.sql 文件。所以,如果我可以連接sqlplus user/pw@instance
它看起來很簡單。有可能嗎?更新:通過將 tnsnames.ora 文件複製到 /etc 來解決。
請參閱文章 #3 上的此頁面
感謝: Wernfried Domscheit , EdStevens , Paul White
首先,您必須告訴 Oracle 使用該
tnsnames.ora
文件。對於這個打開/創建文件sqlnet.ora
並插入這樣的行:NAMES.DIRECTORY_PATH = (TNSNAMES)
您可以添加其他解決方法,例如“LDAP”,請參閱DIRECTORY_PATH。條目
tnsnames
告訴 Oracle 使用tnsnames.ora
文件。正如您在文件中看到的那樣NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname)
,這是預設設置,因此sqlnet.ora
在這種情況下實際上可以跳過該文件。關於這兩個文件的位置,答案並非微不足道。不同的應用程序可能會搜尋不同的文件夾,並且可能有不同的優先規則。
以下文件夾可能是搜尋路徑的一部分:
- 環境變數定義的文件夾
TNS_ADMIN
- 文件夾
${ORACLE_HOME}\network\admin
如果您的文件位於不同的文件夾中,最好在此位置放置一個指向您的文件夾的符號連結。
- 目前文件夾
- 儲存應用程序二進製文件的文件夾
…在 Windows 的情況下(僅供參考)還有這些
- 由系統資料庫項
HKLM\SOFTWARE\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
分別定義的文件夾。HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_{ORACLE_HOME_NAME}\TNS_ADMIN
machine.config
, 分別web.config
文件,部分oracle.manageddataaccess.client/version/settings/setting/@name="tns_admin"