目的
完成后本 Oracle 按示例 (OBE) 教程中,您将能够保持两个异构数据库同步使用 Oracle GoldenGate (OGG) ;在这种情况下 Linux Oracle 11gR2 数据库到 11gR2 Exadata 数据库。
在本课中,您将学会如何:
- 准备您的环境配置 Oracle GoldenGate 进程。
- 配置并启动更改捕获的数据库操作。
- 配置并启动更改交货的数据库操作。
完成时间
大约 2 个小时
简介
Oracle GoldenGate Exadata 上的: 从 Oracle 11gR2 向 Oracle 11gR2 复制
Oracle GoldenGate 提供异构数据库的非常快速复制,通过读取事务日志并写入一个或多个目标数据库所做的更改。在典型环境中涉及以下五个过程:
-
经理:
- 有一位经理在源主机上和一个单独的经理,在目标主机上。 管理器启动和停止源和目标实例上的其他进程。 不需要为传递通信一旦运行的提取物或建议您使用管理器。 初始加载:
- 是可选的。 用于填充在目标表一次。 它可以读取或者从源表中直接或从 ASCII 文件。 这个 OBE 忽略初始加载。 请参阅其他都会发帝国勋章为如何去做。 提取:
- 在要交易数据捕获到轨迹文件的源上运行。 有两个版本的提取物: 经典 (此 OBE) 和集成。 数据泵:
- 可选,但强烈建议。 数据抽取轨迹文件从源代码实例在将发送到的目标实例的 IP 网络。 从技术上讲数据抽取是次要的提取物。 建议您使用:
- 将数据传递到目标数据库。 通常建议您使用运行在目标系统上。 是的拼写正确,没有最后"e"(长故事)。
Linux Oracle Exadata 配置 (单向)
图所示的配置 (使用在目标系统上创建远程跟踪一个主要提取过程。建议您使用进程从远程跟踪的更改将应用为目标 RAC 数据库。它是不必要的源 host01 Linux 也不是 64 位。
总之,环境是:
主机名 屏幕颜色 OS 硬件 数据库 SID OGG 源/目标 主控制台 host01 红色 Linux 64 位 单个 CPU 的 PC Oracle 11gR2 orcl 源 两个 qr01db02 (Node02) 黄色 Linux 64 位 Exadata 数据库节点 Oracle 11gR2 RAC dbm2 目标 GGSCI qr01db01 (Node01) 绿色 Linux 64 位 Exadata 数据库节点 Oracle 11gR2 RAC dbm1 目标 SQL * 加上 系统必备组件
这个实验室的先决条件包括以下内容:
- 查看基本的 GoldenGate Oracle 到 Oracle OBE 为"正常"的任务,如初始加载,查看统计信息,等等。这个 OBE 只集中的独特 Exadata 方面。底部的更多的链接,请参阅资源。
- 查看白皮书 》,特别是关于我的 Oracle 支持的一节 (MOS,需要查看的帐户) 注意到1054431.1.
- 源主机与示例架构已安装并运行了 Oracle 11gR2 数据库。
- Oracle GoldenGate 的 64 位 Linux zip 分布被上演对源和
/home/user/
目标/首页/用户/目录。这是可从Oracle 软件交付云. - Exadata 群集服务已安装并且正在运行。
记住有两个主机: host01 和 host02 ;和每个主机有三种环境提示: OS、 GGSCI 和 SQL。这让六个不同的地方,在其中您可以键入 !请尝试一定要额外小心你在哪个位置中输入的命令。错误的上下文中的错误的命令是最常见的错误。
任务概述
准备环境
要执行这一课,GoldenGate 应用程序必须安装在源和目标系统上。安装包括一个示例数据库和脚本来生成初始数据,以及随后的更新操作。源表和目标表创建和加载与初始数据。GoldenGate 管理器进程也会启动以便其他进程可能会配置和启动。源的定义是最后,生成和转移到目标系统。
配置更改捕获 (摘录)
对于经审核表,提取过程配置捕获变更数据直接从财资市场发展委员会审核跟踪,并将所做的更改存储在称为 GoldenGate 本地径数据队列。
配置更改传递 (建议您使用)
一旦表已最初加载数据,提取过程捕获的所有操作,建议您使用进程配置为捕获的操作传递到目标数据库。
印刷约定
文本颜色和字体的方向和在此屏幕中应解释如下:
-
Some_Command
-
键入作为一个命令或一个值。示例:
请输入./ ggsci启动的命令行解释器。
Some_Prompt
-
系统响应与此作为提示符或答复。示例:
在初始欢迎横幅之后, 你可以在输入命令GGSCI (host01) 1 >提示符。
Some_Button
-
屏幕上单击此按钮。示例:
选择你想要的版本之后, 单击继续以开始下载。
Some_Variable
-
您用来代替实际值的变量。示例:
请输入您的用户 id/密码的提示符。
Some_Filename
-
文件名、 路径或文件夹/目录。示例:
编辑/etc目录中的hosts文件。
Some_Code
-
一个关键字或代码的元素。示例:
在初始加载后将HandleCollisions参数更改为NoHandleCollisions 。
文件和过程的命名约定
文件和过程的命名约定可以不管为你或你的公司工作。这里是这个 OBE 中使用的示例约定:
pxxxxhh.ext
地点:-
p= 进程 =
- e (xtract), p(ump)、 r(eplicat),我(nitial)、 d(efgen), s(tartup)。 xxxx项目 = =
- 与相关的常见项目xxxx,例如人力资源、 销售、 engr、 测试的所有文件. hh= 主机到主机 =
- aa,ab,ba,bb,如由源和目标主机的名称在哪里 = host01 和 b = host02。 稍后您将看到不能使用数字作为一部分的一些文件的名称,所以最好不要去那儿在所有。 ext= 扩展名 =
- prm= 参数 (存储在dirprm /), dsc= 丢弃, rpt= 报告 (存储在dirrpt /), def= 定义 (存储在dirdef /),体外= 服从 (存储在安装目录中), sql= SQL (存储在dirsql /).
目标
本练习的目标是:
- 所界定的
.profile
或.bash_profile
或相当于准备操作系统 (OS) 的环境变量。 - 配置应用程序的 VIP 地址。
tnsping
为未来 sqlplus 连接进行测试。- 通过创建 OGG admin 用户和修改数据库参数准备 Oracle 数据库 11gR2。
您键入的命令将在蓝色的等宽字体。系统的反应将会在black monospaced font.
1.1 编写操作系统的环境变量
您将配置
.profile
为环境变量和主机别名的/etc/hosts
文件。你会做这三个的所有主机上: 源和两个目标节点。您现有的配置文件可能会对他们有行,这一步更侧重于要向其中添加的行。使用您选择的编辑器,并且检查目标主机节点 1 上的配置文件的初始状态。
ORACLE_BASE, ORACLE_HOME, OGG_HOME
,和LD_LIBRARY_PATH
添加变量。正如他们离开其他线条。Exadata-节点 1 (目标) [oracle@qr01db01 ~]$ vi .bash_profile 1 # .bash_profile 2 3 # Get the aliases and functions 4 if [ -f ~/.bashrc ]; then 5 . ~/.bashrc 6 fi 7 8 # User specific environment and startup programs 9 10 PATH=$PATH:$HOME/bin 11 12 export PATH 13 export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 14 export ORACLE_SID=dbm1 15 ORAENV_ASK=NO;. /usr/local/bin/oraenv > /dev/null 2<&1 16 alias gogrid='export ORACLE_HOME=/u01/app/11.2.0/grid;export ORACLE_SID=+ASM1;. /usr/local/bin/oraenv > /dev/null 2<&1;env |grep ORA|grep -v BASE' 17 alias godb='export ORACLE_HOME=/u01/app/oracle/product/11.2.0 /dbhome_1;export ORACLE_SID=dbm1;. /usr/local/bin/oraenv > /d ev/null 2<&1;env|grep ORA|grep -v BASE' [oracle@qr01db01 ~]$ vi .bash_profile 1 # .bash_profile 2 3 # Get the aliases and functions 4 if [ -f ~/.bashrc ]; then 5 . ~/.bashrc 6 fi 7 8 # User specific environment and startup programs 9 10 PATH=$PATH:$HOME/bin 11 12 export PATH 13 export ORACLE_BASE=/u01/app/oracle 14 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 15 export OGG_HOME=$ORACLE_BASE/ogg 16 export LD_LIBRARY_PATH=$ORACLE_HOME/lib 17 export ORACLE_SID=dbm1 18 ORAENV_ASK=NO;. /usr/local/bin/oraenv > /dev/null 2<&1 19 alias gogrid='export ORACLE_HOME=/u01/app/11.2.0/grid;export ORACLE_SID=+ASM1;. /usr/local/bin/oraenv > /dev/null 2<&1;env |grep ORA|grep -v BASE' 20 alias godb='export ORACLE_HOME=/u01/app/oracle/product/11.2.0 /dbhome_1;export ORACLE_SID=dbm1;. /usr/local/bin/oraenv > /d ev/null 2<&1;env|grep ORA|grep -v BASE' [oracle@qr01db02 ~]$
The
alias gogrid
andalias godb
have been added for another demo, they are not part of the default profile. They make it easier to switch between the Grid Infrastructure and DB environments. Note that the aliases each span several lines. Be mindful to not introduce extra returns on those lines.Switch user to
root
and edit the/etc/hosts
file to append an alias for host01. Use the proper IP address for your environment.Exadata - Node 1 (target) [oracle@qr01db02 ~]$ su - root Password: [root@qr01db02 ~]# vi /etc/hosts 127.0.0.1 localhost.localdomain localhost (...rest of file not shown, too many possibilities...) [root@qr01db02 ~]# tail -1 /etc/hosts 192.0.2.16 host01.example.com host01 [root@qr01db02 ~]# exit [oracle@qr01db02 ~]$
The
tail
command assumes you appended the host01 address to the end of the file. Exit out ofroot
when you are done editing.Do the exact same thing for the other target node 2. The lines are not shown, they are the same for
qr01db01
andqr01db02
.Exadata - Node 2 (target) [oracle@qr01db02 ~]$ vi .bash_profile (REPEAT ON OTHER QR01db02) [oracle@qr01db02 ~]$ su - root [root@qr01db02 ~]# vi /etc/hosts (REPEAT ON OTHER QR01db02) [root@qr01db02 ~]# exit [oracle@qr01db02 ~]$
The two nodes should have identical profiles and very similar
/etc/hosts
.Do the same thing for the source host. There may be slight difference in where things are installed, but you are defining the same four environment variables:
ORACLE_BASE, ORACLE_HOME, OGG_HOME
, andLD_LIBRARY_PATH
. The/etc/hosts
points to the Exadata address.Host01 - Linux (source) [oracle@host01 ~]$ vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs <
- 所界定的