我不確定我是否使用了正確的術語,但我在登錄 OEM 時注意到我的 Oracle 資料庫服務器設定了三個實體,并且在我登錄時似乎隨機選擇一個。有沒有辦法將 tnsnames 更新為連接到特定實體還是在 Toad 的新建連接視窗中進行?我希望我能以這種方式殺死一個特定的會話。
uj5u.com熱心網友回復:
通常,是的,您可以。如果您知道該實體位于哪個服務器上,則可以使用在該服務器上運行的 oracle 服務名稱來指定該主機。使用select instance_name, host_name, logins, status from v$instance;
您可以找出當前會話位于哪臺機器上的哪個實體上。
您可以通過查詢 gv$instance 找到其他實體。
如果您對 [g]v$instance 沒有權限,您可能想嘗試,select sys_context('USERENV','INSTANCE_NAME') from dual;但這僅適用于當前實體。
很大程度上取決于正在運行的配置。
uj5u.com熱心網友回復:
回答我自己的問題 - 在 TNSNames 檔案中,您可以像這樣添加一個 INSTANCE_NAME 部分。如果沒有 TNSNames 檔案,我不知道該怎么做。
database =
(DESCRIPTION =
(SDU=32767)
(ADDRESS = (PROTOCOL = TCP)(HOST = server.name)(PORT = 1521)(SEND_BUF_SIZE = 98304)(RECV_BUF_SIZE = 98304))
(CONNECT_DATA =
(SERVER = DEDICATED)
(INSTANCE_NAME = instance_name)
(SERVICE_NAME = service_name)
)
)
正如@ik_zelf 發布的那樣,您可以查詢您正在使用哪個實體:
select sys_context('USERENV','INSTANCE_NAME') from dual;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/408195.html
標籤:
下一篇:如何檢查我是否有權創建函式?
