本頁面說明如何設定網路連線,連至自行託管的 Oracle 來源,以便使用資料庫遷移服務,將異質 Oracle 資料庫遷移至 PostgreSQL 適用的 Cloud SQL。
如要從自行託管的 Oracle 來源遷移資料,您可以透過三種方法設定必要的網路連線:
設定 IP 許可清單連線能力
如要使用公開 IP 許可清單連線方式,請按照下列步驟操作:
- 請確認來源資料庫的 IP 位址可透過公開網際網路連線。您不必使用 IP 位址連線。 如果 IP 有相關聯的 DNS 記錄,則可改用該記錄。
- 在來源資料庫伺服器上建立傳入防火牆規則,接受來自資料庫遷移服務的連線。請使用下列設定:
- 規則類型請使用
port。 - 在允許的 IP 位址範圍中,新增您建立遷移工作的區域中所有 資料庫遷移服務公開 IP 位址。
- 將通訊協定設為
TCP。 - 將與規則相關聯的通訊埠編號,設為來源資料庫監聽傳入連線的通訊埠。這個通訊埠編號與您必須在來源連線設定檔中輸入的編號相同。
Oracle 伺服器預設會使用
1521通訊埠。
設定防火牆規則的步驟會因使用的伺服器軟體而異。詳情請參閱防火牆產品的說明文件。
- 規則類型請使用
- 在後續階段 建立來源連線設定檔時,請在「Define connectivity method」(定義連線方式) 區段中選取「IP allowlist」(IP 許可清單)。
設定透過正向 SSH 通道連線
如要使用安全殼層 (SSH) 通道連線至來源資料庫,請按照下列步驟操作:
- 建立虛擬機器 (VM),在資料庫遷移服務和來源資料庫之間開啟通道。通道伺服器可以是任何符合下列條件的 Unix/Linux 主機:
- 可透過 SSH 從公開網際網路存取。
- 可存取來源資料庫的私人 IP 位址。
在 SSH 伺服器上建立使用者帳戶,讓資料庫遷移服務能用來連線至 SSH 通道。
舉例來說,在 Ubuntu 系統上,您可以使用下列指令:
- 建立使用者帳戶:
adduser TUNNEL_ACCOUNT_USERNAME - 限制使用者帳戶的殼層存取權,提高安全性:
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檔案,設定轉送 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
- 執行
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
- 在 SSH 通道上建立傳入防火牆規則,接受來自 資料庫遷移服務公開 IP 位址的連線,該位址位於您建立遷移工作的區域。
- 在後續階段
建立來源連線設定檔時,請執行下列操作:
- 在「Define connection details」(定義連線詳細資料) 區段中,輸入來源 Oracle 執行個體的私人 IP。
- 在「Define connectivity method」(定義連線方式) 區段中,選取「Forward-SSH tunnel」(轉送 SSH 通道)。
- 提供 SSH 伺服器的公開 IP 位址或主機名稱。
- 提供您在通道伺服器上為 SSH 連線指定的通訊埠。
- 輸入您為資料庫遷移服務建立的使用者名稱,以便連線 (即 TUNNEL_ACCOUNT_USERNAME 的值)。
- 從「Authentication method」(驗證方式) 下拉式選單中,選取要與 TUNNEL_ACCOUNT_USERNAME 使用者搭配使用的驗證方式:
- 如要使用使用者密碼,請選取「Password」(密碼),然後在表單中輸入 TUNNEL_ACCOUNT_USERNAME 密碼。
- 如果您將 SSH 伺服器設為使用金鑰型驗證,請選取「Private/Public key pair」,然後上傳
使用
ssh-keygen指令產生的私密金鑰。
使用 Private Service Connect 介面設定私人連線
這個連線方式可讓您連線至來源資料庫的私人 IP,而不會耗用 虛擬私有雲對等互連配額。建議使用 Private Service Connect 介面建立私人 IP 連線。
必要的角色
如要取得設定 Private Service Connect 介面所需的權限,請要求管理員在專案中,為 參與遷移程序的下列帳戶授予必要 IAM 角色
- 執行遷移作業的使用者帳戶:
- 如要建立及管理網路連結:
Compute 網路管理員 (
roles/compute.networkAdmin) - 如要建立及管理私人連線設定:
資料庫遷移管理員 (
roles/datamigration.admin)
- 如要建立及管理網路連結:
Compute 網路管理員 (
如要在資料庫遷移服務以外的專案中建立網路連結或其基礎子網路 (例如使用 Shared VPC 主專案),則須將下列角色授予資料庫遷移服務帳戶 (
service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com): Compute 網路檢視者 (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
您或許還可透過 自訂角色或其他 預先定義的角色取得這些權限。
Google Cloud中的自行託管來源
如要透過 Private Service Connect 介面,對託管於 Compute Engine VM 的來源 Oracle 資料庫使用私人連線,請按照下列步驟操作:
- 在自行託管來源所在的虛擬私有雲中,建立網路連結。
請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Network attachments」(網路連結) 頁面。
- 按一下「Create network attachment」(建立網路連結)。
- 輸入附件名稱。
- 在「Network」(網路) 選單中,選取自行託管來源所在的虛擬私有雲。
-
區域:請使用您打算建立目的地資料庫的區域。
資料庫遷移服務是完全區域性的產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫、轉換工作區) 都必須儲存在單一區域中。
-
在「Connection preference」(連線偏好設定) 中,選取「Accept connections for selected projects」(接受所選專案的連線)。
當您稍後 建立私人連線設定時,資料庫遷移服務會自動將生產端專案新增至「Accepted projects」(接受的專案) 清單。
- 請勿新增「已接受專案」或「遭拒專案」。
- 按一下「Create network attachment」(建立網路連結)。
- 在資料庫遷移服務中, 為 Private Service Connect 介面建立私人連線設定。
- 在後續階段
建立來源連線設定檔時,請執行下列操作:
- 在「Define connection details」(定義連線詳細資料) 區段中,輸入託管 Oracle 資料庫的 Compute Engine VM IP 位址。
您可以在 Google Cloud 控制台中 查看 VM 的 IP 位址。
- 在「Define connectivity method」(定義連線方式) 專區中,選取「Private connectivity」(私人連線)。
- 在下拉式選單中,選取您在上一個步驟中建立的私人連線設定。
- 在「Define connection details」(定義連線詳細資料) 區段中,輸入託管 Oracle 資料庫的 Compute Engine VM IP 位址。
Google Cloud以外的自行託管來源
如要透過 Private Service Connect 介面,將私人連線用於Google Cloud以外網路中的自行託管 Oracle 來源資料庫,請按照下列步驟操作:
-
使用 Cloud VPN 設定與 Oracle 來源的直接連線。
視網路架構而定,您可能需要在系統中設定其他 VPN 閘道。詳情請參閱 Cloud VPN 說明文件中的「 建立連結至對接 VPN 閘道的高可用性 VPN 閘道」。
- 選用:如果無法在 Cloud VPN 所在的虛擬私有雲網路中建立私人連線設定,請 在 Compute Engine 上建立反向 Proxy 虛擬機器 (VM),以便轉送虛擬私有雲之間的連線。
- 在 Cloud VPN 所在的虛擬私有雲中建立網路連結。步驟如下:
- 前往 Google Cloud 控制台的「Network attachments」(網路連結) 頁面。
- 按一下「Create network attachment」(建立網路連結)。
- 輸入附件名稱。
- 在「Network」(網路) 選單中,選取自行託管來源所在的虛擬私有雲。
-
區域:請使用您打算建立目的地資料庫的區域。
資料庫遷移服務是完全區域性的產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫、轉換工作區) 都必須儲存在單一區域中。
- 在「Subnetwork」(子網路) 選單中,選取至少有 6 個可用 IP 位址的子網路,供資料庫遷移服務使用 (即
/29範圍)。 -
在「Connection preference」(連線偏好設定) 中,選取「Accept connections for selected projects」(接受所選專案的連線)。
當您稍後 建立私人連線設定時,資料庫遷移服務會自動將生產端專案新增至「Accepted projects」(接受的專案) 清單。
- 請勿新增「已接受專案」或「遭拒專案」。
- 按一下「Create network attachment」(建立網路連結)。
- 在資料庫遷移服務中, 為 Private Service Connect 介面建立私人連線設定。
- 在後續階段
建立來源連線設定檔時,請執行下列操作:
- 在「Define connection details」(定義連線詳細資料) 區段中,輸入 Oracle 來源的私人 IP。
- 在「Define connectivity method」(定義連線方式) 區段中,選取「Private connectivity」(私人連線)。
- 在下拉式選單中,選取您在上一個步驟中建立的私人連線設定。
透過虛擬私有雲對等互連設定私人連線
使用這種連線方式時,來源資料庫 IP 位址或主機名稱必須可從 Google Cloud 虛擬私有雲連線。如果自行託管的來源位於 Google Cloud以外的網路,您可能需要使用其他網路元件,例如 Cloud VPN 或 Cloud Interconnect。
Google Cloud中自行託管的來源
如要透過虛擬私有雲對等互連,為託管於 Compute Engine VM 的來源 Oracle 資料庫使用私人連線,請按照下列步驟操作:
- 確認已為指派 VM IP 位址的虛擬私有雲網路設定私人服務存取權。詳情請參閱「 設定私人服務存取權」。
- 在資料庫遷移服務中, 建立私人連線設定,與託管 Oracle 資料庫的 Compute Engine VM 所在虛擬私有雲網路對接。
- 在後續階段
建立來源連線設定檔時,請執行下列操作:
- 在「Define connection details」(定義連線詳細資料) 區段中,輸入託管 Oracle 資料庫的 Compute Engine VM IP 位址。
您可以在 Google Cloud 控制台中 查看 VM 的 IP 位址。
- 在「Define connectivity method」(定義連線方式) 區段中,選取「Private connectivity (VPC peering)」(私人連線 (虛擬私有雲對接))。
- 在下拉式選單中,選取您在上一個步驟中建立的私人連線設定。
- 在「Define connection details」(定義連線詳細資料) 區段中,輸入託管 Oracle 資料庫的 Compute Engine VM IP 位址。
如果是 Google Cloud以外的自行託管來源
如要透過虛擬私有雲對接,將私人連線用於位於Google Cloud以外網路的自行託管 Oracle 來源資料庫,請按照下列步驟操作:
-
使用 Cloud VPN 設定與 Oracle 來源的直接連線。
視網路架構而定,您可能需要在系統中設定其他 VPN 閘道。詳情請參閱 Cloud VPN 說明文件中的「 建立連結至對接 VPN 閘道的高可用性 VPN 閘道」。
- 選用:如果無法在 Cloud VPN 所在的虛擬私有雲網路中建立私人連線設定,請 在 Compute Engine 上建立反向 Proxy 虛擬機器 (VM),以便轉送虛擬私有雲之間的連線。
- 在資料庫遷移服務中, 建立私人連線設定,與 Cloud VPN 所在的虛擬私有雲網路對接。
- 在後續階段
建立來源連線設定檔時,請執行下列操作:
- 在「Define connection details」(定義連線詳細資料) 區段中,輸入 Oracle 來源的私人 IP。
- 在「Define connectivity method」(定義連線方式) 區段中,選取「Private connectivity (VPC peering)」(私人連線 (虛擬私有雲對接))。
- 在下拉式選單中,選取您在上一個步驟中建立的私人連線設定。
後續步驟
如要進一步瞭解來源資料庫網路連線,請參閱「 來源網路方法總覽」。
如需完整的逐步遷移指南,請參閱「 從 Oracle 遷移至 PostgreSQL 適用的 Cloud SQL 指南」。