33、使用 DIPC 将数据库迁移到 Exadata 云服务

使用 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 云服务的操作,实现本地数据库与云数据库之间的数据复制和同步。

【电能质量扰动】基于ML和DWT的电能质量扰动分类方法研究(Matlab实现)内容概要:本文研究了一种基于机器学习(ML)和离散小波变换(DWT)的电能质量扰动分类方法,并提供了Matlab实现方案。首先利用DWT对电能质量信号进行多尺度分解,提取信号的时频域特征,有效捕捉电压暂降、暂升、中断、谐波、闪变等常见扰动的关键信息;随后结合机器学习分类器(如SVM、BP神经网络等)对提取的特征进行训练与分类,实现对不同类型扰动的自动识别与准确区分。该方法充分发挥DWT在信号去噪与特征提取方面的优势,结合ML强大的模式识别能力,提升了分类精度与鲁棒性,具有较强的实用价值。; 适合人群:电气工程、自动化、电力系统及其自动化等相关专业的研究生、科研人员及从事电能质量监测与分析的工程技术人员;具备一定的信号处理基础和Matlab编程能力者更佳。; 使用场景及目标:①应用于智能电网中的电能质量在线监测系统,实现扰动类型的自动识别;②作为高校或科研机构在信号处理、模式识别、电力系统分析等课程的教学案例或科研实验平台;③目标是提高电能质量扰动分类的准确性与效率,为后续的电能治理与设备保护提供决策依据。; 阅读建议:建议读者结合Matlab代码深入理解DWT的实现过程与特征提取步骤,重点关注小波基选择、分解层数设定及特征向量构造对分类性能的影响,并尝试对比不同机器学习模型的分类效果,以全面掌握该方法的核心技术要点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值