Oracle
如何讓 TNS 連接字元串(如 tnsping)通過會話檢查 dblink?
我想知道,如果有機會獲得目前使用的 TNS 連接字元串,它將用於來自 db-server 的 DB-Link。
我連接到位於任何伺服器上的數據庫上的模式。現在,我有一些使用 tnsnames 的數據庫連結,這些連結目前無法正常工作。我想檢查一下,這個標識符後面是哪個目標數據庫,以便輕鬆驗證,如果這可能是正確的。
如果我有對 db-server 的作業系統訪問權限,我將能夠讀取 ./tnsnames.ora 或使用 tnsping。
但是 dblink 的 DDL 只使用 TNSNAME(本例中為 RDBX):
創建數據庫連結“ABC”連接到由值“:1”使用“RDBX”標識的“RUSER”;
當然,我可以問 DBA,但這在我們的環境中並不總是那麼容易,我希望能夠自己仔細檢查它而無需作業系統訪問。
我不認為這是可能的。某人或某物需要訪問文件系統才能讀取 tnsnames.ora。使用 DB-link 時,oracle 將從 tnsnames.ora 文件中獲取 RDBX 的定義。這對使用者是透明的,因此使用者不會注意到。正如@EdStevens 建議的那樣,我會嘗試解決政治問題並與 DBA 合作。或者,請作業系統管理員來找您。