使用 DIPC 将数据库迁移到 Exadata 云服务
1. 引言
在云服务的应用场景中,将本地数据库迁移到云数据库是常见的需求。数据集成平台云服务(DIPC)提供了一种有效的方式来实现本地数据库与 Oracle 云基础设施数据库服务(DBCS)或 Exadata 云服务(ExaCS)之间的数据迁移和复制。下面将详细介绍如何使用 DIPC 进行数据库迁移。
2. 数据迁移原理
2.1 实时数据捕获与复制
Oracle GoldenGate 部署在本地数据库所在的主机服务器上,用于捕获本地数据库的变更,并将这些变更推送到远程的 DIPC VM。DIPC 部署在与 DBCS 数据库 VM 不同的 VM 上,并将变更远程集成交付到 DBCS 数据库。
2.2 DIPC 企业版功能
DIPC 企业版能够将本地数据库当前的 DML 操作复制到 DBCS 或 ExaCS 上的数据库。这通过在 DIPC VM 内部部署和运行 DIPC 代理来实现。同时,也可以在本地环境部署 DIPC 代理进行 Golden Gate 捕获过程,并将跟踪文件通过 SOCKS5 代理传输到 DIPC VM,确保网络传输过程的安全性。此外,DIPC 还具备初始数据同步的能力,初始数据同步通常根据 MOS Note 1311707.1 采用初始数据加载技术,例如使用 Oracle 数据库实用程序数据泵来导出大量 Oracle 数据。
3. 创建 DBCS 服务
在配置 DIPC 实例之前,需要先创建一个 DBCS 实例,该实例将作为 DIPC 服务配置时的输入。
3.1 登录 Oracle 云基础设施
登录 Oracle 云基础设施,提供用户凭据,并确保身份域正确显示。
3.2 导航到数据库创建页面
登录到 OCI 仪表盘后,导航到数据库创建页面,从仪表盘菜单中选择“Database Classic”来创建数据库。
3.3 提供数据库实例信息
点击“Create services”创建新的数据库实例,提供实例名称(如 DBCS - DIPC),并选择数据库版本、版本类型等详细信息。
3.4 创建存储容器
点击“Next”进入下一页,提供用于数据库备份等的存储容器详细信息。可以从云仪表盘导航到存储并创建一个容器。
3.5 完成数据库创建输入
提供数据库的形状、SSH 密钥、字符集、数据库名称、PDB 名称等重要参数。
3.6 开始数据库创建
点击“Create”开始创建数据库,此过程可能需要几分钟才能完成。可以在仪表盘的“Service Create and Delete History”下跟踪状态。
3.7 获取 VM 详细信息
点击 DBCS - DIPC 获取 VM 详细信息,如公共 IP、服务名称、PDB 名称、SID 名称等,这些信息在创建 DIPC 服务时会用到。
3.8 启用服务访问规则
数据库创建完成后,启用服务访问规则,以便 DIPC 可以访问该数据库。
以下是创建 DBCS 服务的步骤流程图:
graph TD;
A[登录 Oracle 云基础设施] --> B[导航到数据库创建页面];
B --> C[提供数据库实例信息];
C --> D[创建存储容器];
D --> E[完成数据库创建输入];
E --> F[开始数据库创建];
F --> G[获取 VM 详细信息];
G --> H[启用服务访问规则];
4. 创建 DIPC 服务(18.x.x)
4.1 打开服务控制台
从控制台仪表盘,在“Data Integration Platform Cloud”菜单中点击“Open Service Console”。
4.2 创建 DIPC 实例
在实例仪表盘上点击“Create Instance”开始 DIPC 配置。
4.3 提供基本信息
为云服务名称命名(如 BALDIPC),选择集群大小为 1,选择企业版(包含 GGCS 和 Oracle 数据集成器),并提供实例名称、服务版本等基本信息。
4.4 选择数据库服务
点击“Next”进入详细页面,从下拉列表中选择数据库服务 DBCS - DIPC 和 PDB 名称“repo”,并提供数据库用户的登录凭据。此页面包含数据库配置、备份和恢复配置以及 WebLogic 服务配置三个部分。
4.5 提供云存储容器和凭据
完成数据库配置详细信息后,点击“Next”并提供云存储容器和凭据,可以使用在配置 DBCS 服务时提供的相同容器(DIPC)。
4.6 WebLogic 配置
对于 WebLogic 配置,选择计算形状并提供 SSH 密钥文件。根据操作系统环境,可以使用 Windows 上的 Putty KeyGen 或 Linux 上的 ssh - keygen 生成 SSH 密钥对。
4.6.1 在 Linux 上生成 SSH 密钥对
- 导航到主目录:
cd /home/oracle
- 运行 ssh - keygen 实用程序:
ssh-keygen -b 2048 -t rsa -f filename
- 输入私钥的密码短语(可选),并再次确认密码短语。
4.6.2 在 Windows 上使用 PuTTYgen 生成 SSH 密钥对
- 从 https://www.puttygen.com/ 下载并安装 PuTTY 或 PuTTYgen。
- 运行 Puttygen,将“Type of key to generate”选项设置为 SSH - 2 RSA,在“Number of bits in a generated key”框中输入 2048,点击“Generate”生成密钥对,在生成过程中按照指示移动鼠标。
- 可选地在“Key passphrase”框和“Confirm passphrase”框中输入私钥的密码短语。
- 点击“Save private key”将私钥保存到文件,文件名扩展名为.ppk。
- 选择公钥中的所有字符,粘贴到 OpenSSH authorized_keys 文件框中,并保存为扩展名为.pub 的文件。
- 如果要使用需要 OpenSSH 格式私钥的 SSH 客户端从 Linux 主机连接,可以使用 puttygen 工具的转换菜单导出私钥,选择“Export OpenSSH Key”,并将私钥保存为扩展名为.openssh 的文件。
4.7 确认配置
在确认屏幕上,验证所有信息是否正确,确认后完成处理。在仪表盘上可以看到 BALDIPC 的配置状态。配置完成后会创建一个负载均衡器,点击“Associations”可以查看与 DIPC 服务关联的 DBCS。当状态显示为“Ready”时,DIPC 版本为 18.3.3。
以下是创建 DIPC 服务的步骤表格:
|步骤|操作|
| ---- | ---- |
|1|打开服务控制台|
|2|创建 DIPC 实例|
|3|提供基本信息|
|4|选择数据库服务|
|5|提供云存储容器和凭据|
|6|WebLogic 配置(生成 SSH 密钥对)|
|7|确认配置|
5. DIPC 远程代理部署
在从本地数据库复制数据时,在本地服务器部署代理比从 DIPC VM 配置远程捕获到本地服务器更高效。以下是在本地服务器下载和配置远程代理的步骤:
5.1 下载 DIPC 代理
可以在本地服务器或 DIPC VM(通过 VNC)下载 DIPC 代理。在 DIPC VM 下载速度更快,之后可以使用 scp 将 zip 文件传输到本地服务器。具体操作如下:
- 登录云账户,从 DIPC 实例(如 BALDIPC)概述页面,点击汉堡图标,从下拉菜单中点击“Data Integration Platform Console”,这将打开一个新的浏览器标签页显示 DIPC 主页。
- 点击左侧链接下载本地 VM 的代理。
5.2 管理和下载代理
进入“Data Integration Platform Console”后,可以管理和下载适用于平台的代理,并查看服务的整体状态。从左窗格点击“Agents” -> “Download Installer” -> “Linux 64 - bit (400 MB)”,在代理下载页面可以选择 Oracle 11g (OGG) 或 Oracle 12c (OGG) 等选项进行下载,可将其下载到
~oracle/Downloads
目录或提示保存的位置。
以下是 DIPC 远程代理下载步骤的流程图:
graph TD;
A[登录云账户] --> B[进入 DIPC 实例概述页面];
B --> C[点击汉堡图标并选择 Data Integration Platform Console];
C --> D[点击左侧链接下载代理];
D --> E[进入 Data Integration Platform Console];
E --> F[从左窗格选择下载选项];
F --> G[选择版本并下载];
6. 配置本地主机的远程代理
6.1 检查 Java 版本
本地平台需要安装经过认证的 Java 版本,因为 DIPC 与 Java 1.8 及更高版本兼容。在本地主机执行
java -version
检查版本,如果低于 1.8 则需要升级。示例命令输出如下:
Java -version
Java Version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181 - b13)
Java HotSpot(TM) 64 - bit Server VM (build 25.181 - b13, mixed mode)
6.2 解压二进制文件
首先创建一个目录来存放 DIPC 二进制文件,将下载的代理 zip 文件传输到该目录并解压。示例操作如下:
# 创建目录
mkdir Dipc
# 复制文件
cp agent_binary.zip Dipc
# 进入目录
cd Dipc
# 解压文件
unzip agent_binary.zip
解压后会创建一个名为
dicloud
的目录,其中包含其他子目录和额外的脚本,各目录说明如下:
|目录/文件|说明|
| ---- | ---- |
|
gghome
|包含 12c OGG 二进制文件|
|
gghome11g
|包含 11g OGG 二进制文件|
|
dicloudConfigureAgent.sh
|用于在本地环境配置远程 DIPC 代理的文件|
|
agent
|存放远程 DIPC 代理二进制文件的目录|
6.3 编辑配置文件
编辑
dicloudConfigureAgent.sh
文件,设置以下参数:
cd /home/oracle/Dipc/dicloud
./dicloudConfigureAgent.sh <agentInstanceDirectory> -recreate –debug -dipchost=<dipc.example.host.com> -dipcport=<port> -user=<diuser> -password=<dipassword> -authType=<BASIC/OAUTH2> -idcsServerUrl=<idcs server url> -agentIdcsScope=<agent IDCS Client Scope> -agentClientId=<Agent IDCS clientID> -agentClientSecret=<Agent IDCS clientSecret>
各参数说明及取值如下:
|参数|说明|取值|
| ---- | ---- | ---- |
|
agentInstanceDirectory
|代理实例基础目录,可选,默认在
<unzipped directory>/dicloud/agent
下创建名为
dipcagent001
的目录|默认:
/home/oracle/Dipc/dicloud/agent/dipcagent001
|
|
dipchost
|DIPC VM 负载均衡器主机名/公共 IP|从云控制台获取 DIPC 服务(如 BALDIPC)的主机名,如
BALDIPC - gse00015139.uscom - east - 1.oraclecloud.com
|
|
dipcport
|代理连接并注册到 DIPC VM 的端口|433|
|
user
|云登录用户|指定使用的用户名|
|
password
|云登录密码|指定使用的密码|
|
authType
|与服务器的认证模式|OAUTH2|
|
idcsServerUrl
|适用于 OAUTH2 认证模式,是远程代理用于获取认证令牌的 IDCS URL|如
https://idcs - d6cee7e439a24b6986f9a9cca08e6bd1.identity.oraclecloud.com
,具体根据实际情况而定|
|
agentIdcsScope
|OAUTH2 认证模式下,该代理的 IDCS 客户端范围|如
https://97FB197EA4A64E0AA862AFEA0103CF65.uscom - east - 1.oraclecloud.com:443external
,具体根据实际情况而定|
|
agentClientId
|OAUTH2 认证模式下,该代理的 IDCS 应用客户端 ID|如
97FB197EA4A64E0AA862AFEA0103CF65_APPID
,具体根据实际情况而定|
|
agentClientSecret
|OAUTH2 认证模式下,IDCS 内 DIPC 应用的代理客户端密钥|如
bf8b8a26 - 7c7b - 4abd - b5e5 - 48d19ed269a0
|
6.4 执行配置命令
在本地 VM(数据库 VM)中执行以下命令来配置远程代理:
[oracle@databasevm dicloud]$ pwd
/home/oracle/Dipc/dicloud
[oracle@databasevm dicloud]$ export JAVA_HOME=/usr/java/jdk1.8.0_121
[oracle@databasevm dicloud]$ ./dicloudConfigureAgent.sh -recreate -debug -dipchost=BALDIPC - gse00015139.uscom - east - 1.oraclecloud.com -dipcport=443 -user=xyz@oracle.com -password=XXXXXXX -authType=OAUTH2 -idcsServerUrl=https://idcs - d6cee7e439a24b6986f9a9cca08e6bd1.identity.oraclecloud.com -agentIdcsScope=https://97FB197EA4A64E0AA862AFEA0103CF65.uscom - east - 1.oraclecloud.com:443external -agentClientId=97FB197EA4A64E0AA862AFEA0103CF65_APPID -agentClientSecret=bf8b8a26 - 7c7b - 4abd - b5e5 - 48d19ed269a0
执行命令后,屏幕会显示一系列消息,如:
DEBUG MODE
2018 - 09 - 24 04:35:53.786 INFO [global] (oracle.dicloud.agent.deployment.DICloudAgentLifeCycleManager configureLogging) dipcOsp = "Linux"
recreate = ""
debug = ""
dipchost = "BALDIPC - gse00015139.uscom - east - 1.oraclecloud.com"
dipcport = "443"
user = "cloud.admin"
password = "*******"
authType = "OAUTH2"
idcsServerUrl = "https://idcs - d6cee7e439a24b6986f9a9cca08e6bd1.identity.oraclecloud.com"
agentIdcsScope = "https://97FB197EA4A64E0AA862AFEA0103CF65.uscom - east - 1.oraclecloud.com:443external"
agentClientId = "97FB197EA4A64E0AA862AFEA0103CF65_APPID"
agentClientSecret = "bf8b8a26 - 7c7b - 4abd - b5e5 - 48d19ed269a0"
2018 - 09 - 24 04:35:53.878 INFO [oracle.dicloud.agent.core.GGCCAgentInstallation] (oracle.dicloud.agent.core.GGCCAgentInstallation handleCreateInstance) Creating agent instance home at :/home/oracle/Dipc/dicloud/agent/dipcagent001
2018 - 09 - 24 04:35:53.883 INFO [oracle.dicloud.agent.core.GGCCAgentInstallation] (oracle.dicloud.agent.core.GGCCAgentInstallation handleCreateInstance) Agent instance home created successfully at :/home/oracle/Dipc/dicloud/agent/dipcagent001
配置完成后,会提示使用
/home/oracle/Dipc/dicloud/agent/dipcagent001/bin
目录下的
startAgentInstance(.sh/.bat)
脚本启动代理,使用
stopAgentInstance (.sh/.bat)
脚本停止代理。
通过以上步骤,就可以完成使用 DIPC 将数据库迁移到 Exadata 云服务的操作,实现本地数据库与云数据库之间的数据复制和同步。
超级会员免费看
1174

被折叠的 条评论
为什么被折叠?



