Loading

設定 Oracle 連線以使用 TNSNames.ora 或 LDAP.ora

發佈日期: Mar 17, 2025
工作
如何設定 Oracle 連線以使用 TNSNames.ora 或 LDAP.ora。


設定 TNSNames.ora 或 LDAP.ora 連線的好處

藉由設定資料連線以使用 TNSNames.ora 或 LDAP.ora,可修正或避免以下常見的 Oracle 錯誤。
  • ORA-12154: TNS: could not resolve the connect identifier specified(Oracle 資料錯誤 12154:TNS: 無法解析指定的連線識別元)

  • ORA-12154: TNS 接聽程式目前無法識別連接描述項中請求的服務

  • ORA-12541: TNS: 無接聽程式

  • ORA-12170: TNS: 發生連接逾時

  • ORA-12504: 沒有為 TNS 接聽程式提供 CONNECT_DATA 中的 SERVICE_NAME
步驟
按一下以展開解決方案
Tableau Desktop 和/或 Server On Windows、OCI 用戶端

步驟 1:設定 TNS_Admin 環境變量。

  1. 選擇「開始」>「控制面板」>「系統」 
  2. 選擇「進階系統設定」
  3. 在「系統屬性」對話方塊中的「進階」索引標籤上,選擇「環境變量」。 
  4. 在「系統變量」下,按一下「新建」。 
  5. 在「新建系統變量」對話方塊中,輸入以下內容,然後按一下「確定」: 
    • 變量名稱:TNS_ADMIN 
    • 變度量:包含 TNSNames.ora 檔案的目錄。
  6. 按一下「環境變量」對話方塊和「系統屬性」對話方塊中的「確定」。 
  7. 重新啟動電腦,確保已識別新變量。 

步驟 2:在 Tableau 中使用 Oracle 網路服務名稱以連線至 Oracle。 

  1. 關閉所有開啟的 Tableau 工作簿,然後開啟一個新的 Tableau 執行個體。
  2. 在 Tableau Desktop 中,選擇“連接到資料”>“Oracle”。
    • 對於「伺服器」,輸入 TNSNAmes.ora 檔案中記錄的 oracle 'net_service_name'。
    • 根據情況輸入使用者名和密碼。

透過 TNS_ADMIN 系統變量傳達 TNSNames.ora 檔案中連接詳細資訊的剩餘部分。請注意,您應將可選的服務名稱和通訊埠資訊留空,否則可能會透過複製資訊對連接產生干擾。

按一下以展開解決方案
Tableau Desktop 和 Server 2020.2 及更新版本、Windows、JDBC Driver
 
建立包含以下文字的 oracle.properties 檔案(範例):

oracle.net.tns_admin=C:\\Oracle_Client\\network\\admin

如有必要,請變更路徑以引用 tnsnames.ora 檔案在主機檔案系統中的位置。即使如果直接複製並貼上到 Windows 檔案總管中 \\ 路徑將不起作用,雙反斜槓 \\ 也是有意且必需的。 在這種情況下,oracle.properties 檔案只能使用雙反斜槓才能正常運行。

將檔案放在以下位置中:
桌面:Documents\My Tableau Repository\Datasources 
伺服器:C:\ProgramData\Tableau\Tableau Server\data\tabsvc\vizqlserver\Datasources(或等效路徑,如果使用備用安裝位置)。如果該資料夾尚不存在,請務必建立資料夾。

僅限伺服器:建立檔案和資料夾後,請確保為檔案提供具有適當權限的「執行身分使用者」並重新啟動 Tableau Server。

您可在此處找到有關 JDBC 屬性檔案的更多資訊:https://help.salesforce.com/s/articleView?id=Customizing-JDBC-Connections&type=1&language=en_US
 
按一下以展開解決方案
在 Mac 上

步驟 1:

  1. 如果 Tableau Desktop 已開啟,請將其關閉。 
  2. 確保從 Tableau 的驅動程式頁面下載並安裝適用 Mac 的 Oracle 驅動程式。
  3. 將包含連接資訊的現有 LDAP.ora 或 TNSNames.ora 檔案複製到 /etc: 
  • 在 Finder 中,選擇「執行」>「前往資料夾」,然後輸入 /etc。
  • 將 .ora 檔案複製到 /etc。

步驟 2:配置 TNS_ADMIN 環境變量 

  1. 啟動終端機並輸入以下指令:

    sudo nano /etc/launchd.conf

    附註:Nano 是一種依據文字的編輯器,始終可在 Mac 電腦上找到。

  2. 提示時輸入您的密碼。

  3. 輸入以下指令:

    launch setenv TNS_ADMIN /etc

  4. 按 Ctrl-X,然後按 Y,接著按 Enter 儲存變更並退出 nano。
  5. 重新啟動 Mac。

步驟 3:驗證是否設定 TNS_ADMIN 變量: 

  1. 啟動終端機並輸入以下指令:

    export

  2. 您將看到所有系統變量的清單。尋找:

    declare -x TNS_ADMIN="/etc"

  3. 透過在終端機或網路實用工具中 ping 主機名稱,確認 DNS 解析對於 .ora 檔案中列出的主機名稱有效。使用完全限定的網域名稱(例如 servername.domain.com),而不是簡單的伺服器名稱。 
現在,您應該可在 Mac 上啟動 Tableau Desktop 並連接到 Oracle 資料庫,只提供 TNSNames.ora 或 LDAP.ora 檔案中的伺服器名稱。 
 
按一下以展開解決方案
在 Linux 上

步驟摘要:

  1. 將 tnsnames.ora 檔案複製到 tableau 使用者可存取的位置
  2. 在檔案上設定權限。
  3. 視需要更新環境 TNS_ADMIN 變數,以指向步驟 (1) 的目錄。

步驟 1:將 tnsnames.ora 檔案複製到無權限的使用者 (tableau) 可存取的目錄

對於 2019.3.x 版及更高版本:
將 tnsnames.ora 檔案複製到 /etc 目錄。
對於 2019.2.x 版及更舊版本:
根據預設,無權限的使用者名稱為 'tableau'。所有 Tableau Server 處理序都使用此帳戶執行,並且必須能夠找到 tnsnames.ora 檔案才能使用該處理序。
如果您已安裝 Oracle 連接器, 建議將檔案複製到 /opt/tableau/tableau_driver/oracle 目錄中。
您可以藉由使用 'su' 以變更至帳戶並變更至目錄,以確認使用者是否可存取目錄。例如:
sudo su tableau
cd /opt/tableau/tableau_driver/oracle
如果這些步驟導致「權限遭拒」錯誤,則需要更新所使用目錄的權限。

步驟 2:為 tnsnames.ora 檔案設定權限

2019.2.x 及更舊版本,請依照下列步驟:
  1. 巡覽至 tnsnames.ora 檔案所在的檔案路徑。
  2. 透過執行以下指令授予檔案權限:chmod 666 tnsnames.ora
  3. 使用以下指令驗證檔案權限:ls -l
附註:環境路徑的結尾應該有斜線。如果路徑格式不正確,使用者可能會遇到 ORA-12154 錯誤。

2019.3 和更新版本:
在 Linux 機器上的 /etc 目錄中,放置 tsnames.ora 檔案。不需要任何環境變數。

2020.2 及更新版本:

使用下列文字建立 /var/opt/tableau/tableau_server/data/tabsvc/vizqlserver/Datasources/oracle.properties 檔案:

範例:oracle.net.tns_admin=/etc

如有必要,請變更 /etc 以指向伺服器檔案系統中 tnsnames.ora 檔案的路徑。

您可在此處找到有關 JDBC 屬性檔案的更多資訊:https://help.salesforce.com/s/articleView?id=Customizing-JDBC-Connections&type=1&language=en_US
 

步驟 3:設定 TNS_ADMIN 環境變數以指向步驟 (1) 的目錄。

對於 2019.3.x 版及更新版本:您可以跳過此步驟;不需要任何環境變數。
對於 2019.2.x 版及更舊版本:
  1. 在文字編輯器中,開啟符合 Tableau Server 版本的檔案:
    • ​​Tabelau Server 2018.1.x - 2019.2 --  /var/opt/tableau/tableau_server/.local/share/systemd/user/tabsvc_0.service
  2. 新增以下行,其中 "/path/to/file-folder" 是您在步驟 1 中將 tnsnames.ora 複製到的目錄:
    • Environment=TNS_ADMIN=/path/to/file-folder
  3. 儲存對檔案所做的變更。

附註:環境路徑的結尾應該有斜線;如果路徑格式不正確,使用者可能會遇到 ORA-12154 錯誤。

按一下以展開解決方案
所有環境

可選步驟

尋找 tnsnames.ora 檔案

如果 Oracle 用戶端已安裝在您的伺服器上,tnsnames.ora 檔案可在以下目錄中找到:$ORACLE_HOME/network/admin
您可以使用以下命令來驗證該檔案是否存在:

echo $ORACLE_HOME 
將列印檔案路徑。

sudo find / -iname tnsnames.ora
 將列出檔案系統中任何 tnsnames.ora 檔案的位置。

附註:不必安裝 Oracle 用戶端,即可將 tnsnames.ora 與 Tableau Server 搭配使用。此步驟只是為了幫助您使用任何現有安裝。

從頭開始建立新的 tnsnames.ora 檔案

如果此電腦沒有 tnsnames.ora 檔案,而且您沒有要從用戶端工作站複製的檔案,則可以使用文字編輯器建立一個檔案。請記住以下限制:

  • tnsnames.ora 檔案名稱區分大小寫,且必須為全小寫字母。 

  • 檔案不應使用 tab 間隔。

以下是一個潛在的條目範本。必須將括號中的元素取代為您從資料庫管理員取得的值。
附註:儘管 Windows 或 Mac 電腦上的 TNSNames.ora 檔案可能不需要 ADDRESS_LIST 條目,但 Linux 電腦上的 tnsnames.ora 檔案需要此變量。
 

[net_service_name]=
(DESCRIPTION=
  (ADDRESS_LIST=
    (ADDRESS=[protocol_address_information])
   )
  (CONNECT_DATA= 
    (SERVICE_NAME=[service_name])
   )
 )

例如:

Production =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = prod.corp.com)(PORT = 1521)
   )
  (CONNECT_DATA = 
    (SERVICE_NAME = orcl)
   )
 )

 

其他資源

如果您已在 Oracle 上設定 SSL,則需要執行其他組態步驟

(透過在 Oracle 上設定的 SSL)為 Oracle 設定 ORACLE_HOME 和 TNS_ADMIN

sudo su -l tableau
      touch /var/opt/tableau/tableau_server/.config/systemd/tableau_server.conf.d/oracle.conf
      echo "ORACLE_HOME=/u01/app/oracle/product/12.1.0/client_1" | tee -a /var/opt/tableau/tableau_server/.config/systemd/tableau_server.conf.d/oracle.conf
      echo "TNS_ADMIN=/u01/app/oracle/product/12.1.0/client_1/network/admin" | tee -a /var/opt/tableau/tableau_server/.config/systemd/tableau_server.conf.d/oracle.conf 
      chmod 744 /var/opt/tableau/tableau_server/.config/systemd/tableau_server.conf.d/oracle.conf
exit

cd /opt/tableau/tableau_server/packages/scripts.near.xx.xxxx.xxxx/
            sudo ./stop-administrative-services
            sudo ./start-administrative-services
source /etc/profile.d/tableau_server.sh

知識文章編號

001453730

 
正在載入
Salesforce Help | Article