本頁面說明如何設定網路連線,以便使用資料庫遷移服務,將異質 Oracle 來源遷移至 PostgreSQL 適用的 Cloud SQL。
您可以透過三種不同方法,為從 Amazon RDS for Oracle 來源進行的遷移作業設定必要的網路連線:
- 公開 IP 許可清單
- 轉送 SSH 通道
- 私人 IP 連線。這些方法需要 Cloud VPN 或 Cloud Interconnect:
如要進一步瞭解來源資料庫網路連線,請參閱「 來源網路方法總覽」。
設定 IP 許可清單連線
如要使用公開 IP 許可清單連線方式,請按照下列步驟操作:
- 在 AWS 管理主控台中,執行下列步驟:
- 確認來源 Amazon RDS 資料庫已設定為允許公開 IP 連線。
- 找出端點名稱和通訊埠號碼。建立連線設定檔時,您必須輸入這些值。
如要進一步瞭解如何準備 Amazon RDS for Oracle 執行個體,請參閱 Amazon RDS 說明文件中的「 連線至 Oracle 資料庫執行個體」。
建立安全性群組,允許資料庫遷移服務傳送流量至 Amazon RDS VPC。請參閱「 建立安全性群組,提供虛擬私有雲中的 DB 執行個體存取權」。
請務必允許您建立遷移作業的區域使用所有 資料庫移轉服務公開 IP 位址。
- 稍後
建立來源連線設定檔時,請按照下列步驟操作:
- 在「Define connection details」(定義連線詳細資料) 部分,請使用執行個體的端點名稱做為來源資料庫 IP。
- 在「定義連線方式」部分,選取「IP 許可清單」。
透過轉送安全殼層通道設定連線
如要透過安全殼層 (SSH) 通道連線至來源資料庫,請按照下列步驟操作:
-
啟動 Amazon EC2 執行個體,做為專用的轉送 SSH 通道。請務必在與來源 Amazon RDS for Oracle 相同的 Amazon VPC 中設定。
詳情請參閱 Amazon 說明文件中的「 開始使用 Amazon EC2」。
-
連線至 EC2 執行個體,並設定 SSH 通道。
請按照下列步驟操作:
- 為資料庫遷移服務建立專屬使用者帳戶,以便連線:
adduser TUNNEL_ACCOUNT_USERNAME - 限制資料庫遷移服務帳戶的 Shell 存取權,以提升安全性:
usermod -s /usr/sbin/nologin TUNNEL_ACCOUNT_USERNAME
決定資料庫遷移服務連線至通道時要使用的驗證方法。
您可以使用簡單的密碼,或產生
PEM格式的安全殼層金鑰,之後建立來源連線設定檔時,即可將金鑰上傳至資料庫遷移服務。- 如要使用密碼,不需要進行任何額外設定。請記下您為TUNNEL_ACCOUNT_USERNAME帳戶建立的密碼。
- 如要使用金鑰驗證,請產生私密/公開金鑰組。舉例來說,您可以使用
ssh-keygen公用程式:- 產生金鑰組:
ssh-keygen -m PEM -f YOUR_KEY_NAME
- 將公開金鑰 (
YOUR_KEY_NAME.pub) 複製到通道伺服器上的~/.ssh/目錄。 - 儲存私密金鑰。稍後建立來源連線設定檔時,您需要將這個檔案上傳至資料庫遷移服務。
- 產生金鑰組:
- 編輯
/etc/ssh/sshd_config檔案,設定轉接的安全殼層通道,以符合貴機構的需求。建議使用下列設定:# 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
- 執行
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
- 為資料庫遷移服務建立專屬使用者帳戶,以便連線:
- 稍後
建立來源連線設定檔時,請按照下列步驟操作:
- 在「Define connection details」(定義連線詳細資料) 部分,請使用執行個體的端點名稱做為來源資料庫 IP。
- 在「定義連線方式」部分,選取「轉送 SSH 通道」。
- 提供 SSH 伺服器的公開 IP 位址或主機名稱。
- 請提供您在通道伺服器上為 SSH 連線指定的通訊埠。
- 輸入您為資料庫遷移服務建立的使用者名稱,以連線身分 (即 TUNNEL_ACCOUNT_USERNAME 的值)。
- 從「驗證方式」下拉式選單中,選取要搭配 TUNNEL_ACCOUNT_USERNAME 使用的驗證方式:
- 如要使用使用者密碼,請選取「密碼」,然後在表單中輸入 TUNNEL_ACCOUNT_USERNAME 密碼。
- 如果將 SSH 伺服器設定為使用金鑰驗證,請選取「私密/公開金鑰組」,然後上傳您使用
ssh-keygen指令產生的私密金鑰。
使用 Private Service Connect 介面設定私人連線
這種連線方法可讓您連線至來源資料庫的私人 IP,而不必耗用 虛擬私有雲對等互連配額。建議使用 Private Service Connect 介面進行私人 IP 連線。
如要使用這個方法,您必須在打算建立網路連結的相同虛擬私有雲網路中,設定 Cloud VPN 或 Cloud Interconnect。如果無法在 Cloud VPN 或 Cloud Interconnect 所在的虛擬私有雲網路中建立網路連結,您也需要在 Compute Engine 上建立反向 Proxy 虛擬機器 (VM),才能建立連線。
如果無法使用 Cloud VPN 或 Cloud Interconnect,建議改用 轉送 SSH 通道或 IP 允許清單連線方法。
如要取得設定 Private Service Connect 介面所需的權限,請要求管理員為 遷移程序中涉及的帳戶授予專案的必要 IAM 角色。
- 執行遷移作業的使用者帳戶:
- 如要建立及管理網路附件:
Compute 網路管理員 (
roles/compute.networkAdmin) - 如要建立及管理私人連線設定:
資料庫遷移管理員 (
roles/datamigration.admin)
- 如要建立及管理網路附件:
Compute 網路管理員 (
如要在資料庫遷移服務以外的專案中建立網路附件或其基礎子網路 (例如使用共用虛擬私有雲主專案),則必須將下列角色授予資料庫遷移服務服務帳戶 (
service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com): Compute Network Viewer (roles/compute.networkViewer)
如要進一步瞭解如何授予角色,請參閱「 管理存取權」。
這些預先定義的角色具備使用資料庫移轉服務,執行相同系統的 SQL Server 遷移作業所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要使用資料庫遷移服務執行相同系統的 SQL Server 遷移作業,您必須具備下列權限:
- 執行遷移作業的使用者帳戶:
datamigration.*compute.networkAttachments.createcompute.networkAttachments.getcompute.networkAttachments.listcompute.networkAttachments.updatecompute.networkAttachments.delete
- 資料庫遷移服務服務帳戶:
compute.networkAttachments.getcompute.networkAttachments.updatecompute.subnetworks.getcompute.subnetworks.list
您或許還可透過 自訂角色或其他 預先定義的角色取得這些權限。
如要使用 Private Service Connect 介面連線,請完成下列步驟:
-
透過 Cloud VPN 設定與 Amazon RDS for PostgreSQL 執行個體的直接連線。
詳情請參閱 Cloud VPN 說明文件中的「 在 Google Cloud 與 AWS 之間建立高可用性 VPN 連線」。
- 選用:如果無法在 Cloud VPN 所在的虛擬私有雲網路中建立網路連結,請在 Compute Engine 上建立 反向 Proxy 虛擬機器 (VM),轉送虛擬私有雲之間的連線。
- 在 Cloud VPN 所在的虛擬私有雲中建立網路連結。請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Network attachments」(網路附件) 頁面。
- 按一下「Create network attachment」(建立網路連結)。
- 輸入附件名稱。
- 從「Network」(網路) 選單中,選取來源所在的虛擬私有雲。
-
請使用您打算建立目的地資料庫的區域。
資料庫遷移服務是完全區域性的產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫、轉換工作區) 都必須儲存在單一區域。
- 在「子網路」選單中,選取至少有 6 個可用 IP 位址的子網路,供資料庫遷移服務使用 (即
/29範圍)。 -
在「連線偏好設定」中,選取「接受所選專案的連線」。
稍後 建立私有連線設定時,資料庫遷移服務會自動將生產端專案新增至「已接受」專案清單。
- 請勿新增「已接受專案」或「遭拒的專案」。
- 按一下「Create network attachment」(建立網路連結)。
- 在資料庫遷移服務中, 為 Private Service Connect 介面建立私人連線設定。
- 稍後
建立來源連線設定檔時,請按照下列步驟操作:
- 在「定義連線詳細資料」部分, 輸入來源 Amazon RDS 執行個體的私人 IP。
- 在「定義連線方式」部分,選取「私人連線」。
- 從下拉式選單中,選取您在上一個步驟中建立的私人連線設定。
透過虛擬私有雲對等互連設定私人連線
如要搭配使用私人連線和 Amazon RDS for Oracle 來源,您必須在同一個虛擬私有雲網路中設定 Cloud VPN 或 Cloud Interconnect,並打算為資料庫遷移服務建立私人連線設定。如果無法在 Cloud VPN 或 Cloud Interconnect 所在的虛擬私有雲網路中建立私人連線設定,您也需要在 Compute Engine 上建立反向 Proxy 虛擬機器 (VM),才能建立連線。
如果無法使用 Cloud VPN 或 Cloud Interconnect,建議改用 轉送 SSH 通道或 IP 允許清單連線方法。
如要透過虛擬私有雲對等互連和 Cloud VPN 使用私人連線,請按照下列步驟操作:
-
透過 Cloud VPN 設定與 Amazon RDS for PostgreSQL 執行個體的直接連線。
詳情請參閱 Cloud VPN 說明文件中的「 在 Google Cloud 與 AWS 之間建立高可用性 VPN 連線」。
- 選用:如果無法在 Cloud VPN 所在的虛擬私有雲網路中建立私人連線設定,請在 Compute Engine 上 建立反向 Proxy 虛擬機器 (VM),轉送虛擬私有雲之間的連線。
- 在資料庫移轉服務中, 建立私人連線設定,與 Cloud VPN 所在的虛擬私有雲網路對等互連。
- 稍後
建立來源連線設定檔時,請按照下列步驟操作:
- 在「定義連線詳細資料」部分, 輸入來源 Amazon RDS 執行個體的私人 IP。
- 在「定義連線方式」部分,選取「私人連線」。
- 從下拉式選單中,選取您在上一個步驟中建立的私人連線設定。