本快速入门介绍了如何使用 Database Migration Service 将 Oracle 工作负载迁移到 Cloud SQL for PostgreSQL。如果您及时完成本快速入门中的步骤(包括清理),那么在此期间所创建资源的费用通常不会超过 1 美元。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Database Migration Service API.
- 确保您已将 Database Migration Admin 角色分配给您的用户账号。
使用要求
Database Migration Service 提供各种源数据库选项、目标数据库选项和连接方法。不同来源和目标使用某些连接方法的效果比使用其他方法更好。
在本快速入门中,我们假设您在将网络配置为添加入站防火墙规则的环境中使用独立的 Oracle 数据库。源数据库可以位于本地,也可以位于云提供商。由于我们无法获知您环境的具体细节,因此我们无法提供网络配置的详细步骤。
我们还假设您希望使用 LogMiner 实用程序。
在本快速入门中,您将选择 IP 许可名单作为网络方法。
创建连接配置文件
创建连接配置文件后,您将创建包含来源数据库和目标数据库相关信息的记录。Database Migration Service 会使用连接配置文件中的信息将数据从源 Oracle 数据库迁移到目标 Cloud SQL for PostgreSQL 数据库实例。
在本部分中,您将了解如何创建到以下位置的连接配置文件:
- 来源 Oracle 数据库
- 目标 Cloud SQL for PostgreSQL 数据库
创建 Oracle 连接配置文件
前往 Google Cloud 控制台中的 Database Migration Service 连接配置文件页面。
点击创建配置文件。
在创建连接配置文件页面上,从配置文件角色列表中,选择来源。
从数据库引擎列表中,选择 Oracle。
提供以下信息:
在连接配置文件名称字段中,为源 Oracle 数据库的连接配置文件输入一个名称,例如
My Oracle Connection Profile
。保留自动生成的连接配置文件 ID。
选择存储连接配置文件的地区。
输入用于访问源 Oracle 数据库的主机名或 IP 地址(域名或 IP)和端口。(默认 Oracle 端口为 1521。)
输入用户名和密码,对源数据库进行身份验证。
在服务名称字段中,输入用于确保来源 Oracle 数据库受到保护和监控的服务。对于 Oracle 数据库,数据库服务通常为
ORCL
。
点击继续。
从连接方法列表中,选择一种网络连接方法。此方法用于指定 Database Migration Service 连接源 Oracle 数据库的方式。
在本快速入门中,选择 IP 许可名单作为网络方法。
点击运行测试,验证 Database Migration Service 是否可以与源通信。
如果测试失败,则表示流程的哪个部分存在问题。您可以在创建连接配置文件页面上进行必要的更改,然后重新进行测试。
导航到流中有问题的部分以纠正问题,然后重新测试。
点击创建。
创建 Cloud SQL for PostgreSQL 连接配置文件
前往 Google Cloud 控制台中的 Database Migration Service 连接配置文件页面。
点击创建配置文件。
在创建连接配置文件页面上,从配置文件角色列表中,选择目标。
从数据库引擎列表中,选择 Cloud SQL for PostgreSQL(因为您要为目标 Cloud SQL for PostgreSQL 数据库创建连接配置文件)。
提供以下信息:
在连接配置文件名称字段中,为目标 Cloud SQL for PostgreSQL 数据库的连接配置文件输入一个名称,例如
My Cloud SQL for PostgreSQL Connection Profile
。保留自动生成的连接配置文件 ID。
选择存储连接配置文件的地区。
选择要用作迁移目标数据库的 Cloud SQL for PostgreSQL 实例。
输入用于访问目标数据库的主机名或 IP 地址(域名或 IP)和端口。(Cloud SQL for PostgreSQL 的默认端口为 5432。)
输入用户名和密码,对目标数据库进行身份验证。
点击继续。
在确保连接安全部分中,点击继续。
从连接方法下拉菜单中,选择一种网络连接方法。此方法用于指定 Database Migration Service 连接数据库的方式。
对于本快速入门,请选择公共 IP 作为连接方法,因为您将使用此连接配置文件从其他类型的来源数据库(例如 Oracle)迁移数据。
点击运行测试,验证 Database Migration Service 是否可以与目标数据库通信。
如果测试失败,则表示流程的哪个部分存在问题。您可以在创建连接配置文件页面上进行必要的更改,然后重新进行测试。
导航到流中有问题的部分以纠正问题,然后重新测试。
点击创建。
创建转换工作区
转换工作区可帮助您将源数据库中的架构和对象转换为与目标数据库兼容的格式。通过此转换,Database Migration Service 可以在源数据库和目标数据库之间迁移您的数据。
如需创建转换工作区,请执行以下操作:
- 为转换工作区定义设置。
- 连接到源数据库,并将架构信息拉取到 Database Migration Service。
您可以使用以下方法执行自动转换并进行可选调整:
- 转换工作区编辑器 - 一个实时编辑器空间,您可以在其中修改用于转换的 SQL
- Ora2Pg 配置文件,用于提供其他转换映射
将转换后的架构应用于目标数据库:Database Migration Service 会使用生成的 SQL 在目标数据库中创建所有必需的实体,以帮助确保迁移数据可以正确加载到数据库。
为转换工作区定义设置
前往 Google Cloud 控制台中的“Database Migration Service 转换工作区”页面。
点击创建工作区。
提供以下信息:
在转换工作区名称字段中,输入转换工作区的名称,例如
My Conversion Workspace
。保留自动生成的转化工作区 ID。
选择转换工作区存储的区域。
系统会自动在源数据库引擎下拉列表中填充 Oracle。
从目标数据库引擎下拉列表中,选择 Cloud SQL for PostgreSQL。
查看自动生成的必要前提条件,以反映如何为转化工作区准备环境。这些前提条件包括如何:
配置源 Oracle 数据库,以便转换工作区可以从中检索数据
(可选)使用 Ora2Pg 迁移工具为转换工作区编辑器创建其他映射
点击创建工作区并继续。
连接到源和转换对象
打开来源连接配置文件下拉列表,然后选择您创建的连接配置文件。
点击运行测试,验证 Database Migration Service 是否可以与源通信。
如果测试失败,则表示流程的哪个部分存在问题。您可以进行必要的更改,然后重新测试。
导航到流中有问题的部分以纠正问题,然后重新测试。
点击拉取架构并继续。
Database Migration Service 会开始连接到您的源数据库以下载架构信息。此操作可能需要几分钟的时间,具体取决于网络连接性或数据库大小等因素。
Database Migration Service 拉取架构信息完毕后,系统会打开选择和转换对象部分。
使用架构树视图选择您希望 Database Migration Service 转换为与目标数据库 SQL 引擎兼容的架构的所有实体。
点击转换并继续。
Database Migration Service 会创建转换工作区并执行架构转换。现在,您可以在转化工作区编辑器中预览自动生成的 SQL。
应用于目标
转换您要在目标数据库中使用的架构后,请使用应用到目标数据库选项在目标数据库上运行生成的 SQL 语句:
点击应用到目标账号,然后选择以下选项之一:
- 测试(推荐):此操作会执行测试运行,以验证您的架构能否成功创建在目标数据库中。
- 应用:此操作会尝试在目标数据库中创建转换后的架构。
在定义目标位置部分,选择指向目标数据库的连接配置文件。
点击定义并继续。
在查看对象并将转换应用到目标位置部分,选择您要在目标数据库中创建的数据库实体的架构。
点击应用到目标。
创建迁移作业
Database Migration Service 会使用迁移作业将数据从源数据库实例迁移到目标 Cloud SQL for PostgreSQL 数据库实例。创建迁移作业包括以下步骤:
- 定义作业的设置
- 指定您为源数据库创建的连接配置文件(来源连接配置文件)的相关信息
- 指定您为目标数据库创建的连接配置文件(目标连接配置文件)的相关信息
- 配置要从源数据库迁移的对象
- 测试迁移作业,以确保您为作业提供的连接信息有效
定义迁移作业的设置
前往 Google Cloud 控制台中的 Database Migration Service“迁移作业”页面。
点击创建迁移作业。
在迁移作业名称字段中,为迁移作业输入名称,例如
My Migration Job
。保留自动生成的迁移作业 ID。
从来源数据库引擎菜单中,选择 Oracle。
从目标数据库引擎菜单中,选择 Cloud SQL for PostgreSQL。
选择要创建目标实例的区域。
查看自动生成的必要前提条件,以反映如何为迁移作业准备环境。这些前提条件可能包括如何配置源数据库,以及如何将其连接到目标 Cloud SQL for PostgreSQL 数据库实例。最好在此步骤中完成这些前提条件,但您可以在测试或启动迁移作业之前随时完成。如需详细了解这些前提条件,请参阅配置源 Oracle 数据库。
点击保存并继续。
定义来源设置
在定义来源页面上,执行以下操作:
- 从来源连接配置文件下拉菜单中,选择您的 Oracle 实例的来源连接配置文件。
- 点击保存并继续。
- (可选)在测试连接配置文件部分中,点击运行测试,检查 Database Migration Service 能否与您的源实例建立网络连接。
即使连接测试失败,您也可以创建迁移作业,但应先解决所有连接问题,然后再运行迁移作业。
- 在自定义来源配置部分中,配置以下设置:
- 在完整转储配置部分中,选择自动。
- 在来源读取设置中,使用建议的并发默认设置。
- 点击保存并继续。
定义目标设置
在定义目标位置页面上,执行以下操作:
- 从目标连接配置文件下拉菜单中,选择目标连接配置文件。
- 点击保存并继续。
- (可选)在测试连接配置文件部分中,点击运行测试,检查 Database Migration Service 是否可以与目标位置建立网络连接。
即使连接测试失败,您也可以创建迁移作业,但应先解决所有连接问题,然后再运行迁移作业。
- 在自定义目标配置部分,配置以下设置:
- 在并发目标连接数上限部分,使用建议的并发默认值。
- 在事务超时部分,使用建议的超时默认值。
- 点击保存并继续。
选择要迁移的对象
从转化工作区下拉列表中选择您的转化工作区。
选择转换工作区后,页面上的选择要迁移的对象区域会列出 Oracle 源数据库中可迁移到目标位置的所有对象(架构和表)。
从列表中选择要由 Database Migration Service 迁移的数据库对象。
点击保存并继续。
测试并创建迁移作业
查看您为迁移作业选择的设置。
点击测试作业,验证以下各项:
已根据前提条件配置了来源。
Database Migration Service 能够连接到来源。
Database Migration Service 能够连接到目标位置。
迁移作业有效,源版本和目标版本兼容。
如果测试失败,您可以在流的适当部分解决问题,然后返回重新测试。
点击创建并启动作业以创建迁移作业并立即启动。
在随后显示的对话框中,点击创建并启动。
在迁移作业页面中,验证迁移作业的状态是否为“开始”。几分钟后,确认状态变为“正在运行”。
验证迁移作业
在本部分,您将确认 Database Migration Service 使用迁移作业将数据从源数据库实例迁移到目标 Cloud SQL for PostgreSQL 数据库实例。
使用数据验证工具进行验证
您可以使用开源数据验证工具,更仔细地验证源和目标之间是否存在数据匹配问题。
以下步骤展示了一个最小示例,用于运行更精确的验证:
部署或使用同时具有源和目标访问权限的虚拟机。
在虚拟机中,创建一个用于安装数据验证工具的文件夹。
前往此文件夹。
使用 pip 安装数据验证工具。
pip install google-pso-data-validator
创建与源 Oracle 数据库和目标 Cloud SQL for PostgreSQL 数据库的连接。
data-validation connections add -c source Oracle --host 'ip-address' --port port --user username --password pswd --database database-name data-validation connections add -c target Postgres --host 'ip-address' --port port --user username --password pswd --database database-name
例如:
data-validation connections add -c source Oracle --host '10.10.10.11' --port 1521 --user system --password pswd --database XE data-validation connections add -c target Postgres --host '10.10.10.12' --port 5432 --user postgres --password pswd --database postgres
创建或生成表列表,以比较源数据库和目标数据库中的数据。
export TABLES_LIST=$(data-validation find-tables --source-conn target --target-conn target --allowed-schemas schema-name)
例如:
export TABLES_LIST=$(data-validation find-tables --source-conn target --target-conn target --allowed-schemas public)
针对所有表运行完整验证。
data-validation validate column --source-conn source --target-conn target --tables-list "${TABLES_LIST}"
我们建议您在复制期间运行此验证,以确保相对一致性。在促销活动时间较短的情况下,大型表查询可能需要运行太长时间。在这种情况下,请使用数据验证工具添加过滤条件以缩短运行时间,或准备表格列表以包含一组表格以进行最终验证。
这确认 Database Migration Service 已迁移数据。
完成迁移
对于持续迁移,请在您要开始为应用使用目标实例时完成迁移作业。
您可以使用迁移作业详情页面上的提升按钮,让 Database Migration Service 清理所有临时迁移数据并提升目标位置。
返回迁移作业页面。
点击您在此快速入门中创建的迁移作业。这表示您要完成的迁移。系统会显示迁移作业详情页面。
您可以使用数据验证工具检查行数,以跟踪复制延迟。
等待复制延迟时间显著缩短,最好在几分钟或几秒的范围内。您可以在迁移作业页面上查看复制延迟时间。
将复制延迟时间降到最低后,启动切换。为避免数据丢失,请务必:
停止对源数据库的所有写入、正在运行的脚本和客户端连接。休息时间段从此开始。
等待复制延迟时间为零,这表示迁移作业已处理所有待处理更改。
即使复制延迟时间不为零,您也可以最终完成迁移。这可以缩短数据库停机时间,但可能会影响目标位置中数据的准确性。
- 在迁移作业详情页面上,点击提升,然后在提升迁移作业?窗口中确认操作。
迁移作业会停止从源数据库读取数据。Database Migration Service 会提升 Cloud SQL for PostgreSQL 目标实例的级别,以清理所有临时迁移数据。此过程可能需要几分钟时间。
提升流程完成后,迁移作业的状态会更改为已完成。
现在,您可以将应用连接到目标 Cloud SQL for PostgreSQL 实例,并安全地删除迁移作业。
您的 Cloud SQL for PostgreSQL 数据库实例已可供使用。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
- 使用 Google Cloud 控制台删除您不需要的迁移作业、转换工作区、连接配置文件、目标 Cloud SQL for PostgreSQL 实例和项目。
后续步骤
- 详细了解如何管理连接配置文件。
- 详细了解如何管理转换工作区。
- 详细了解迁移作业状态。