設定連線至受管理 Oracle 來源的網路

本頁面說明如何設定雲端代管 Oracle 資料庫服務的網路連線,以便透過資料庫遷移服務,將異質 Oracle 資料庫遷移至 PostgreSQL 適用的 Cloud SQL。

許多雲端服務供應商都提供 Oracle 資料庫代管服務。資料庫遷移服務不針對任何特定雲端服務供應商提供支援 (Amazon RDS for Oracle 來源除外),但只要能建立必要的網路連線,您就能從任何代管 Oracle 資料庫服務遷移資料。

您可以使用三種不同的方法,來管理 Oracle 資料庫服務:

如要進一步瞭解來源資料庫網路連線,請參閱「 來源網路方法總覽」。

設定 IP 許可清單連線能力

如要使用公開 IP 許可清單連線方式,請按照下列步驟操作:

  1. 請確認來源資料庫的 IP 位址可透過公開網際網路連線。您不必使用 IP 位址連線。 如果 IP 有相關聯的 DNS 記錄,則可改用該記錄。
  2. 在來源資料庫伺服器上建立傳入防火牆規則,接受來自資料庫遷移服務的連線。請使用下列設定:
    1. 規則類型請使用 port。
    2. 在允許的 IP 位址範圍中,新增您建立遷移工作的區域中所有 資料庫遷移服務公開 IP 位址。
    3. 將通訊協定設為 TCP。
    4. 將與規則相關聯的通訊埠編號,設為來源資料庫監聽傳入連線的通訊埠。這個通訊埠編號與您必須在來源連線設定檔中輸入的編號相同。

      Oracle 伺服器預設會使用 1521 通訊埠。

    設定防火牆規則的步驟會因使用的伺服器軟體而異。詳情請參閱防火牆產品的說明文件。

  3. 在後續階段 建立來源連線設定檔時,請在「Define connectivity method」(定義連線方式) 區段中選取「IP allowlist」(IP 許可清單)。

設定透過正向 SSH 通道連線

如要使用安全殼層 (SSH) 通道連線至來源資料庫,請按照下列步驟操作:

  1. 建立虛擬機器 (VM),在資料庫遷移服務和來源資料庫之間開啟通道。通道伺服器可以是任何符合下列條件的 Unix/Linux 主機:
    • 可透過 SSH 從公開網際網路存取。
    • 可存取來源資料庫的私人 IP 位址。
  2. 在 SSH 伺服器上建立使用者帳戶,讓資料庫遷移服務能用來連線至 SSH 通道。

    舉例來說,在 Ubuntu 系統上,您可以使用下列指令:

    1. 建立使用者帳戶:
      adduser TUNNEL_ACCOUNT_USERNAME
    2. 限制使用者帳戶的殼層存取權,提高安全性:
      usermod -s /usr/sbin/nologin TUNNEL_ACCOUNT_USERNAME
  3. 決定資料庫遷移服務連線至通道時,要使用的驗證方式。

    您可以使用密碼,或產生 PEM 格式的安全殼層金鑰,以便在建立來源連線設定檔時,上傳至資料庫遷移服務。

    • 如要使用密碼,則無須進行任何額外設定。請記住您為 TUNNEL_ACCOUNT_USERNAME 帳戶建立的密碼。
    • 如要使用金鑰驗證,請產生私密/公開金鑰組。舉例來說,您可以使用 ssh-keygen 公用程式:
      1. 產生金鑰組:
        ssh-keygen -m PEM -f YOUR_KEY_NAME
      2. 將公開金鑰 (YOUR_KEY_NAME.pub) 複製到通道伺服器上的 ~/.ssh/ 目錄。
      3. 儲存私密金鑰。建立來源連線設定檔時,您必須將這個檔案上傳至資料庫遷移服務。
  4. 編輯 /etc/ssh/sshd_config 檔案,設定轉送 SSH 通道,以符合貴組織的需求。建議使用下列設定:
    # Only allow the Database Migration Service user to connect.
    AllowUsers TUNNEL_ACCOUNT_USERNAME
    
    # Send keep-alive packets every 60 seconds to ensure that
    # the tunnel doesn't close during the migration
    ServerAliveInterval=60
    
    # Optional: Force key-based authentication
    PasswordAuthentication no
    
    # Enables Database Migration Service to connect from a different host
    PermitTunnel yes
    GatewayPorts yes
  5. 執行 ssh 指令,啟動通道。

    使用下列任何指令資料前,請先替換以下項目:

    • TUNNEL_SERVER_SSH_PORT 替換為伺服器監聽 SSH 連線的通訊埠編號。
    • SOURCE_DATABASE_PRIVATE_IP 替換為來源資料庫的私人 IP 位址。SSH 伺服器必須能連上該 IP。
    • SOURCE_DATABASE_PORT 替換為來源資料庫監聽連線的通訊埠編號。Oracle 上 TCP 連線的預設通訊埠編號為 1433。
    • USERNAME 替換為要執行通道的使用者帳戶名稱。這個帳戶與 TUNNEL_ACCOUNT_USERNAME 不同。
    • TUNNEL_SERVER_PUBLIC_IP 替換為 SSH 通道伺服器的公開 IP。
    ssh -N -L \
    TUNNEL_SERVER_SSH_PORT:SOURCE_DATABASE_PRIVATE_IP:SOURCE_DATABASE_PORT \
    USERNAME@TUNNEL_SERVER_PUBLIC_IP
  6. 在 SSH 通道上建立傳入防火牆規則,接受來自 資料庫遷移服務公開 IP 位址的連線,該位址位於您建立遷移工作的區域。
  7. 在後續階段 建立來源連線設定檔時,請執行下列操作:
    1. 在「Define connection details」(定義連線詳細資料) 區段中,輸入來源 Oracle 執行個體的私人 IP。
    2. 在「Define connectivity method」(定義連線方式) 區段中,選取「Forward-SSH tunnel」(轉送 SSH 通道)。
    3. 提供 SSH 伺服器的公開 IP 位址或主機名稱。
    4. 提供您在通道伺服器上為 SSH 連線指定的通訊埠。
    5. 輸入您為資料庫遷移服務建立的使用者名稱,以便連線 (即 TUNNEL_ACCOUNT_USERNAME 的值)。
    6. 從「Authentication method」(驗證方式) 下拉式選單中,選取要與 TUNNEL_ACCOUNT_USERNAME 使用者搭配使用的驗證方式:
      • 如要使用使用者密碼,請選取「Password」(密碼),然後在表單中輸入 TUNNEL_ACCOUNT_USERNAME 密碼。
      • 如果您將 SSH 伺服器設為使用金鑰型驗證,請選取「Private/Public key pair」,然後上傳 使用 ssh-keygen 指令產生的私密金鑰。

透過虛擬私有雲對等互連設定私人連線

如要透過私人連線使用雲端代管的 Oracle 來源,您必須在同一個虛擬私有雲網路中設定 Cloud VPN 或 Cloud Interconnect,以便為資料庫遷移服務建立私人連線設定。如果無法在 Cloud VPN 或 Cloud Interconnect 所在的虛擬私有雲網路中建立私人連線設定,則還需要在 Compute Engine 上建立反向 Proxy 虛擬機器 (VM),才能建立連線。

如果無法使用 Cloud VPN 或 Cloud Interconnect,建議改用 轉送 SSH 通道或 IP 許可清單連線方法。

如要透過虛擬私有雲對接和 Cloud VPN 使用私人連線,請按照下列步驟操作:

  1. 使用 Cloud VPN 設定與 Oracle 來源的直接連線。

    視網路架構而定,您可能需要在系統中設定其他 VPN 閘道。詳情請參閱 Cloud VPN 說明文件中的「 建立連結至對接 VPN 閘道的高可用性 VPN 閘道」。

  2. 選用:如果無法在 Cloud VPN 所在的虛擬私有雲網路中建立私人連線設定,請 在 Compute Engine 上建立反向 Proxy 虛擬機器 (VM),以便轉送虛擬私有雲之間的連線。
  3. 在資料庫遷移服務中, 建立私人連線設定,與 Cloud VPN 所在的虛擬私有雲網路對接。
  4. 在後續階段 建立來源連線設定檔時,請執行下列操作:
    1. 在「Define connection details」(定義連線詳細資料) 區段中,輸入 Oracle 來源的私人 IP。
    2. 在「Define connectivity method」(定義連線方式) 區段中,選取「Private connectivity (VPC peering)」(私人連線 (虛擬私有雲對接))。
    3. 在下拉式選單中,選取您在上一個步驟中建立的私人連線設定。