為什麼我無法連線至 Amazon RDS for Oracle 資料庫執行個體?

上次更新日期:2021-10-14

我無法連線至 Amazon Relational Database Service (Amazon RDS) for Oracle 資料庫執行個體。

簡短描述

無法連線至 Amazon RDS for Oracle 資料庫執行個體的一些最常見原因包括:

  • 您的安全群組、網路存取控制清單 (ACL) 或本機防火牆的組態不正確,可能會封鎖執行個體的流量。
  • 您的執行個體不處於可用狀態。
  • 您所用的使用者憑證不正確。

解決方案

使用 tnsping 公用程式檢查當下列兩個條件皆成立時,Oracle 用戶端是否可以連線至 RDS for Oracle 資料庫執行個體:

  • 您已安裝 Oracle 用戶端。
  • 您已將資料庫項目新增至用戶端的 tnsnames.ora 檔案。

如果 Oracle 用戶端無法連線到資料庫執行個體,請檢查下列項目:

  • 如果您從 VPC 外部連線,請務必將資料庫執行個體的公開存取屬性設為。如果此屬性設為,表示不會指派公有 IP 地址給資料庫。只有 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和 Amazon Virtual Private Cloud (Amazon VPC) 內的用戶端可以使用 Amazon RDS 私有 IP 地址連線至您的資料庫。必須設定其他組態,例如 VPC 對等互連 AWS Direct Connect,才能從其他 VPC 或內部部署網路存取。如果執行個體的公開存取屬性設為,則用來託管 RDS 之 VPC 外部的用戶端可使用網際網路閘道,透過網際網路連線至您的資料庫執行個體。
  • 請確定 RDS 資料庫執行個體的安全群組允許適當的流量傳入資料庫。
  • 網路 ACL 可作為 VPC 中特定子網路之資源的防火牆。如果您在 VPC 中使用 ACL,請確保它們的輸入和輸出規則允許流量進出資料庫執行個體。預設情況下,網路 ACL 允許所有輸入和輸出流量。如果您的網路 ACL 限制比較嚴格,則必須明確允許流量傳送到暫時連接埠範圍。
  • 如果用戶端連線來自內部部署網路,請洽詢您的網路管理員以判斷您的網路是否允許資料庫執行個體用於輸入和輸出通訊的流量進出連接埠。
  • 執行下列命令以檢查網路連線。請務必將命令中的 example-rds-endpointexample-port-number 值更換成 RDS 端點和連接埠號碼。
    注意:Amazon RDS 不支援網際網路控制訊息協定 (ICMP) 流量,包括 ping。
telnet example-rds-endpoint example-port-number
  • 確認用戶端設定的 DNS 伺服器會使用 NSLOOKUP 命令將 RDS 執行個體的 DNS 端點名稱解析為正確的 IP 地址:
nslookup  example-instance.example-accountcode.example-region.rds.amazonaws.com
  • 確保您的 RDS for Oracle 資料庫執行個體處於可用狀態。資料庫活動 (例如版本升級、執行個體類別升級或多可用區域容錯移轉) 可能會造成短暫中斷。中斷可能會變更資料庫執行個體狀態,並使資料庫發生連線問題。
  • 如果連線已達 RDS for Oracle 資料庫執行個體卻仍失敗,請確定用來連線至資料庫執行個體的使用者憑證 (例如使用者名稱和密碼) 正確無誤。如有需要,可重設主要使用者密碼