Linux下单机OGG同步oracle11g
- 格式:docx
- 大小:21.06 KB
- 文档页数:8
RAC(ASM)到单机OGG配置案例环境说明:源端DB:操作系统:AIX 7100-02-07-1524数据库:oracle_11.2.0.1.0 RACgoldengate:for_11g_ppc目标端DB:操作系统:windows 7数据库:oracle_11.2.0.1.0goldengate:for_11g_x86注意:本实验是模拟在不同平台同版本上面安装和配置OGG,并实现简单的DML复制,至于复杂的其他方面希望大家能自己多多实验。
作者:姓名:ZhangQYQQ:5056357配置步骤:1、检查源端和目标端正确的IP解析:源端:# cat /etc/hosts# 10.2.0.2 x25sample # x.25 name/address# 2000:1:1:1:209:6bff:feee:2b7f ipv6sample # ipv6 name/address 127.0.0.1 loopback localhost # loopback (lo0) name/address ::1 loopback localhost # IPv6 loopback (lo0)name/address172.16.16.101 zqdb192.169.79.11 zqdb172.16.16.165 oradg192.169.79.12 oradg172.16.16.166 gc1-scan.zqdb172.16.16.168 zqdb-vip172.16.16.169 oradg-vip目标端:C:\Windows\System32\drivers\etc\hosts无特殊配置2、设置LIBPATH,为了安装OGG所用的动态链接库。
如果没有配置这个路径的话,在安装OGG的过程中会报找不到动态链接库的错误,用户可以自己尝试一下。
源端:# su - oraclezqdb:/home/oracle>$vi .profile".profile" 25 lines, 756 charactersPATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.export PATHif [ -s "$MAIL" ] # This is at Shell startup. In normalthen echo "$MAILMSG" # operation, the Shell checksfi # periodically.OGG_HOME=/oracle/ogg/12.1.2ORACLE_BASE=/oracle/ora11gORACLE_HOME=/oracle/ora11g/product/11gORACLE_SID=ora11g1export ORACLE_BASE ORACLE_HOME ORACLE_SIDORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/dataNLS_LANG=AMERICAN_AMERICA.ZHS16GBKLD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/libexport ORA_NLS33 NLS_LANG LD_LIBRARY_PATHPATH=$PATH:$ORACLE_HOME/bin:$OGG_HOMEexport PATHLIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/libexport LIBPATHexport DISPLAY=172.17.2.203:0.0export PS1="`hostname`":'$PWD>$'目标端:无特殊配置3、在源端创建专用的表空间、schema、并授权。
在Linux上安装oracle11g和was7全过程目录一、安装环境 (2)1.1.IP地址 (2)1.2.硬件配置 (2)1.3.文件系统划分 (2)1.4.软件介质 (2)二、安装Linux(RedHat Enterprise Linux 6.4)操作系统 (2)2.1.系统安装过程 (2)2.2.系统参数配置 (19)2.3. yum配置 (19)三、安装Oracle11.2.0.3 (20)3.1.添加oracle用户和组 (20)3.2.创建文件夹并授权 (20)3.3.内存参数设置 (20)3.4.oracle用户环境变量设置 (20)3.5.安装oracle依赖包 (21)3.6. 安装Oracle11.2.0.3软件 (21)四、安装Websphere7.0 (28)4.1.安装过程 (28)4.2.起停脚本 (36)一、安装环境1.1.IP地址1.2.硬件配置内存8G磁盘空间:73G×41.3.文件系统划分Swap 4G/boot 512M/ 200G在/下创建/websphere、/oracle目录1.4.软件介质安装软件、应用包全部放在/home下Linux安装盘(RedHat Enterprise Linux 6.4)Oracle11.2.0.3 for linux 64bitWebsphere7.0NDXmanager4.0二、安装Linux(RedHat Enterprise Linux 6.4)操作系统2.1.系统安装过程--重起后配置界面--重起后出现登录界面2.2.系统参数配置◆关闭防火墙[root@foawas ~]# chkconfig iptables off◆Hosts配置[root@foawas ~]# vi /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.41.130.46 foawas2.3. yum配置将安装光盘整个拷贝到/home/rhel6.4/\cp -R /media/RHEL_6.4 x86_64 Disc 1/* /home/rhel6.4/配置yum[root@foawas yum.repos.d]# vi /etc/yum.repos.d/rhel-source.repo[rhel-source]name=Red Hat Enterprise Linux $releasever - $basearch - Sourcebaseurl=file:///home/rhel6.4/enabled=1gpgcheck=1gpgkey=file:///home/rhel6.4/RPM-GPG-KEY-redhat-release三、安装Oracle11.2.0.33.1.添加oracle用户和组[root@foawas oracle]# groupadd oinstall[root@foawas oracle]# groupadd dba[root@foawas oracle]# useradd -g oinstall -G dba -m oracle[root@foawas oracle]# passwd oracle3.2.创建文件夹并授权[root@foawas oracle]# mkdir /oracle/app[root@foawas oracle]# mkdir /oracle/app/oracle[root@foawas oracle]# mkdir /oracle/app/oradata[root@foawas oracle]# mkdir /oracle/app/oracle/product[root@foawas oracle]# chown -R oracle:oinstall /oracle/app[root@foawas oracle]# ls -ldrwxr-xr-x. 4 oracle oinstall 4096 May 22 16:38 app3.3.内存参数设置[root@foawas ~]# vi /etc/security/limits.conforacle soft nproc 2047oracle hard nofile 65536oracle hard memlock 52428800oracle soft memlock 52428800[root@foawas ~]# vi /etc/sysctl.confkernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max = 6815744net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.wmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_max = 1048576fs.aio-max-nr = 1048576[root@foawas ~]# sysctl -p3.4.oracle用户环境变量设置[root@foawas /]# su - oracle[oracle@foawas ~]$ vi .bash_profileexport ORACLE_BASE=/oracle/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1export PATH=$PATH:$HOME/bin:$ORACLE_HOME/binexport NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib:/usr/local/lib3.5.安装oracle依赖包[root@foawas ~]# yum install -y gcc[root@foawas home]# yum install -y libaio-devel[root@foawas home]# yum install -y gcc-c++[root@foawas home]# yum install -y elfutils-libelf-devel[root@foawas home]# yum install -y compat-libstdc++-33下载pdksh-5.2.14-30.x86_64.rpm包到/home目录[root@foawas home]# rpm -ivh /home/pdksh-5.2.14-30.x86_64.rpm3.6. 安装Oracle11.2.0.3软件用oracle用户登录到图形界面,打开terminal[oracle@foawas ~]$cd /home/database[oracle@foawas database]$ ./runInstaller执行脚本[root@ foawas ~]# sh /oracle/app/oraInventory/orainstRoot.shChanging permissions of /oracle/app/oraInventory.Adding read,write permissions for group.Removing read,write,execute permissions for world.Changing groupname of /oracle/app/oraInventory to oinstall.The execution of the script is complete.[root@ foawas ~]# sh /oracle/app/oracle/product/11.2.0/dbhome_1/root.sh Performing root user operation for Oracle 11gThe following environment variables are set as:ORACLE_OWNER=oracleORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1Enter the full pathname of the local bin directory: [/usr/local/bin]:Copying dbhome to /usr/local/bin ...Copying oraenv to /usr/local/bin ...Copying coraenv to /usr/local/bin ...Creating /etc/oratab file...Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Finished product-specific root actions.验证安装是否完成[oracle@foawas ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Tue Jun 3 08:05:38 2014 Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to an idle instance.SQL>四、安装Websphere7.04.1.安装过程用root用户登录图形界面[root@foawas ~]# cd /home/was7/WAS/[root@foawas WAS]# ./install安装完成输出,安装验证4.2.起停脚本[root@foawas scripts]# vi was_start.sh#!/bin/shcd /websphere/AppServer/profiles/Dmgr01/bin ./startManager.shcd /websphere/AppServer/profiles/AppSrv01/bin ./startNode.sh./startServer.sh server1[root@foawas scripts]# vi was_stop.sh#!/bin/shcd /websphere/AppServer/profiles/AppSrv01/bin ./stopServer.sh server1./stopNode.shcd /websphere/AppServer/profiles/Dmgr01/bin./stopManager.sh。
Linux系统(X64)安装Oracle11g完整安装图⽂教程另附基本操作⼀、修改操作系统核⼼参数在Root⽤户下执⾏以下步骤:1)修改⽤户的SHELL的限制,修改/etc/security/limits.conf⽂件输⼊命令:vi /etc/security/limits.conf,按i键进⼊编辑模式,将下列内容加⼊该⽂件。
oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536编辑完成后按Esc键,输⼊“:wq”存盘退出2)修改/etc/pam.d/login ⽂件,输⼊命令:vi /etc/pam.d/login,按i键进⼊编辑模式,将下列内容加⼊该⽂件。
session required /lib/security/pam_limits.sosession required pam_limits.so编辑完成后按Esc键,输⼊“:wq”存盘退出3)修改linux内核,修改/etc/sysctl.conf⽂件,输⼊命令: vi /etc/sysctl.conf ,按i键进⼊编辑模式,将下列内容加⼊该⽂件fs.file-max = 6815744fs.aio-max-nr = 1048576kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 4194304net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576编辑完成后按Esc键,输⼊“:wq”存盘退出4)要使 /etc/sysctl.conf 更改⽴即⽣效,执⾏以下命令。
第一章 Oracle11g (Linux )5.1 O racle11g 简介 5.1.1 Oracle11g 版本Oracle 11g 有多个版本可供选择: 标准版1、标准版和企业版。
所有这些版本都使用相同的通用代码库构建,这意味着企业的数据库管理软件可以轻松地从规模较小的单一处理器服务器扩展到多处理器服务器集群,而无需更改一行代码。
Oracle 数据库11g 企业版还有许多其他增强了性能、可伸缩性、可用性、安全性和可管理性的功能选项。
主要功能汇总简化版10g标准版1标准版企业版CPU 最大数量1 CPU2 Sockets 4 Sockets无限制RAM1GB操作系统允许的最大容量操作系统允许的最大容量操作系统允许的最大容量 数据库规模 4GB无限制无限制无限制 WindowsLinuxUnix支持 64 位5.2安装环境5.2.1硬件环境1.Linux(RedHat6_32bit服务版)操作系统主机一台,IP地址为172.16.165.2422.Linux系统安装Oracle系统要求:内存必须高于1G的物理内存交换区间一般为内存的2倍,例如:1G的内存可以设置swap 分区为3G大小硬盘5G以上5.2.2软件环境Oracle11g服务器安装包,安装包本地位置为:\\172.16.165.144\工具软件\Oracle11g安装平台为RedHat6_32bit的Linux操作系统5.3安装步骤5.2.1卸载Oracle如果在系统中本身已经安装了Oracle数据库,则在安装之前需要先将其卸载完全方可进行重新安装。
下面为大家讲解Linux操作系统下的Oracle数据库的卸载。
1.使用SQL*PLUS停止数据库。
在桌面上右键选择“打开一个终端”[oracle@redhat 6 ~]$ sqlplus /nologSQL> connect / as sysdbaSQL> shutdown immediateSQL> exit2.停止Listener[oracle@redhat 6 ~]$ lsnrctl stop3.停止HTTP服务[root@redhat6 desktop]# service httpd stop4.用su或者重新登录到root(如想重新安装可以保留oracle用户,省得输入环境变量了)5.将安装目录删除[root@redhat6 desktop]# rm -rf /u01/app/oracle/6.将/usr/bin下的文件删除[root@redhat6 desktop]# rm /usr/local/bin/dbhome[root@redhat6 desktop]# rm /usr/local/bin/oraenv[root@redhat6 desktop]# rm /usr/local/bin/coraenv7.将/etc/oratab删除[root@redhat6 desktop]# rm /etc/oratab8.将/etc/oraInst.loc删除[root@redhat6 desktop]# rm /etc/oraInst.loc9.将oracle用户删除(若要重新安装,可以不删除)[root@redhat6 desktop]# userdel –r oracle10.将用户组删除(若要重新安装,可以不删除)[root@redhat6 desktop]# groupdel oinstall[root@redhat6 desktop]# groupdel dba11.将启动服务删除[root@redhat6 desktop]# chkconfig --del dbora到此为止,Oracle11g就从Linux系统中完全的卸载成功了。
Oracle 11g安装手册1、在linux的root用户下建立一个oracle用户//添加用户组及用户groupadd dbagroupadd oinstalluseradd oracle -g oinstall -G dbapasswd oracle//新建目录权限mkdir -p /u01chown -R oracle:dba /u01chmod -R 755 /u01安装时步骤8、9会指向此位置(建议:用户更改/opt/oracle11g)2、将Oracle11g安装文件复制到linux中的指定目录下(/home/oracle/tools)cp /光盘目录/linux.x64_11gR2_database_1of2 /home/oracle/tools3、执行目录中的runInstallsu - oracleLANG=zh_CN.gbk4、开始图像界面安装可能需要export DIAPLAY=:1.0xdpyinfo步骤1:将红框中的内容勾选去掉,点击下一步。
提示“未指定电子邮件地址”点击“是”步骤2:点选“创建和配置数据库”此选项也为默认选项,点击下一步。
步骤3:点击选中“服务器类”,点击“下一步”步骤4:点击选中“单实例数据库安装”,点击下一步。
步骤5:点击选中“高级安装”,点击“下一步”步骤6:选择需要的语言,点击“下一步”,此处客户确认是否需要增加其他语言步骤7:点击选中“企业版(4.29GB)”,点击“下一步”点击上图的“选择选项”,勾选需要的组件,此处全部勾选。
步骤8:此处为默认路径,u01的建立参考第1点orcale用户的建立,点击“下一步”步骤9:此处默认即可,点击“下一步”步骤10:点击选中“一般用途/事务处理”,点击“下一步”步骤11:此处默认,点击“下一步”vpmsdbs步骤12:此处可以设置内存、字符集、安全性、示例方案(可根据用户环境调整),点击“下一步”,内存分配建议至少50%步骤13:此处默认,点击“下一步”步骤14:此处默认处理,点击“下一步”步骤15:点击选中“不启用自动备份”,点击“下一步”步骤16:各帐号口令设定,此处统一使用相同口令,客户现场请在同客户确认口令设定规则步骤17:点击“下一步”步骤18:点击“修补并在此检查”,会产生修补文件,按照提示内容执行即可A、切换到root用户,此处为测试环境执行内容如上述步骤执行完成后依旧存在失败内容,请到linux光盘中寻找对应的rpm文件,复制到linux某一目录中,按下图命令执行步骤19:修补完成后,出现如下信息,点击“完成”步骤20:执行安装过程复制文件,创建实例过程完成后信息,点击“确定”完成后,如出现以下内容,请按照操作步骤,执行完成后,完成安装过程配置监听器1、执行su - oraclesh /u01/app/oracle/product/11.2.0/dbhome_1/bin/netca2、点击选中“监听程序配置”,点击“下一步”3、点击选中“添加”,点击“下一步”4、设定监听程序名,点击“下一步”5、选定协议所有协议,点击“下一步”6、设定标准端口号,点击“下一步”7、设定标准TCP/IP SSL端口号,点击“下一步”8、设置IPC键值,点击“下一步”9、提示是否配置另一个监听程序,点“是”,再点击“下一步”配置数据库1、执行sh /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbca2、点击“下一步”3、点选“创建数据库”,点击“下一步”4、点选“一般用途或事物处理”,点击“下一步”5、设定数据库名及SID,点击“下一步”6、配置管理选项,此处暂时用7、设定口令,点击“下一步”8、网络配置,点击“下一步”9、数据库文件所在位置,点击“下一步”,按照实际的文件规划位置10、恢复配置,点击“下一步”11、数据库内容,点击“下一步”12、初始化参数,点击“下一步”13、数据库存储,点击“下一步”14、创建选项,点击“完成”15、概要显示,点击“确定”16、创建进行17、创建完成,点击“退出”环境变量设置及启动1、设置环境变量在服务器上配置环境变量,编辑vi /etc/profile,在末尾加入以下配置export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1export PATH=.:$ORACLE_HOME/bin:$PATHexport ORACLE_SID=VPMSDBS (数据库SID)保存并退出vi /etc/oratab最后的N 改成Y(否则dbstart和dbshut命令无效)lsnrctl start (启动oracle监听)提示:The listener supports no servicesThe command completed successfully这样启动后远程连接会造成oracle ORA-12514:TNS:listener does not currently know of service requested in connect descriptor-----方案一-------------------------在listener.ora里面添加了一行SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = VENDB)(ORACLE_HOME = /opt/oracle11g/app/oracle/product/11.2.0/dbhome_1)(SID_NAME = VENDB)))-----方案二-------------------------linux上面:[oracle@localhost ~]$ netmgr在下图的Listeners->Database Services中配置要监听的SID及ORACLE_HOME,退出保存。
Linux安装Oracle 11g服务器(图文)应该是最完整的Oracle安装教程了,全程在测试服务器上完成,软件环境:Red Hat Enterprise Linux 6;Oracle 11g (11.1.0.6)1. 从Oracle网站下载linux_11gR1_database_1013.zip,在终端输入unzip linux_11gR1_database_1013.zip进行解压,解压后得到的database文件夹即是Oracle的安装文件。
2. 修改/etc/hosts,添加IP地址和域名的映射关系:#格式如下<IP-address> <fully-qualified-machine-name> <machine-name>#比如127.0.0.1 localhost.localdomain localhost10.16.37.104 ol5-11gr1.localdomain ol5-11gr13. 修改/etc/sysctl.conf,在文件中增加以下内容:kernel.shmall = 2097152kernel.shmmax = 2147483648 # Smallest of -> (Half the size of the physical memory) or (4GB - 1 byte)kernel.shmmni = 4096# semaphores: semmsl, semmns, semopm, semmnikernel.sem = 250 32000 100 128fs.file-max = 65536 # 512 * PROCESSESnet.ipv4.ip_local_port_range = 1024 65000net.core.rmem_default=4194304net.core.rmem_max=4194304net.core.wmem_default=262144net.core.wmem_max=2621444. 在终端运行/sbin/sysctl -p,使内核参数立即生效。
linux下安装oracle11g64位最简客户端(转)安装环境Linux服务器:SuSe11 sp1 64位Oracle客户端:Oracle11gR2 64位(最简客户端)部署流程1.准备⼯作,⾸先在oracle官⽹下载最新的oracle11g_x86_64客户端下载完成后,完整包如下图所⽰:2.将其复制到linux中,使⽤unzip命令解压。
3.解压后进⼊其Disk1⽬录,可以看到解压内容如下:4.使⽤chmod 755 *改变权限后,安装rpm包,命令rpm –ivh ⽂件名5.根据提⽰,运⾏命令/etc/init.d/oracle-xe configure6.http端⼝指定将⽤于oracle应⽤程序表达默认即可,回车:7.监听端⼝默认即可,回车:8.创建sys和system⽤户名和密码9.是否加载到开机启动项,选择y回车10.等待⼀会,看到如下界⾯,就说明64位oracle11g最简客户端安装完成,下⾯就需要配置了。
11. 下来配置oracle环境变量 oracle默认安装到12. 增加⼀个oracle.profile⽂件,⽤来验证oracle是可以联通oracle服务器。
输⼊:vi oracle.profile增加以下内容:13. 编辑好后,source刚刚编辑好的⽂件,然后我们采⽤直连的⽅式来检验是否安装成功检验命令:sqlplus ⽤户名/密码@oracle服务器IP/服务器实例名如下图就是验证成功。
下章介绍如果让iServer6R来使⽤oracle数据源,如果未使⽤iServer6R⼯具,那么安装oracle客户端到此为⽌。
利⽤刚刚安装好的64位oracle客户端,连接oracle服务器配合linux版本64位iServer6R发布数据库类型的⼯作空间和数据源。
1.配置oracle客户端的本地⽹络服务名,其具体所在⽬录如下:(注意:在Windows中,由于需要使⽤Deskpro或来配图,当oracle服务器为64位时,需要在Windows本地安装32位oracle客户端才能使⽤桌⾯⼯具配图。
Oracle OGG (Oracle GoldenGate) 按条件同步部分字段的配置方法涉及到多个步骤和考虑因素。
以下是一个基本的配置概述,但请注意,具体的配置可能会根据您的具体需求和环境而有所不同。
1.环境准备:
1)确保源端和目标端的数据库都已正确安装和配置。
2)在源端和目标端上安装并配置Oracle GoldenGate软件。
2.定义同步规则:
1)在OGG中,您可以使用MAP参数来定义同步规则。
例如,如果您只想同步某些表的
特定字段,您可以在MAP参数中指定这些表和字段。
2)使用FILTER参数来定义同步条件。
例如,您可以使用SQL查询来指定哪些记录应该被
同步。
3.配置Extract进程:
1)在源端上,配置一个Extract进程来捕获满足您定义条件的更改。
2)指定要捕获的数据库对象(如表和字段)以及捕获条件。
4.配置Replicat进程:
1)在目标端上,配置一个Replicat进程来应用从源端捕获的更改。
2)确保Replicat进程应用更改到正确的目标表和字段。
5.启动和监控进程:
1)启动源端的Extract进程和目标端的Replicat进程。
2)使用OGG提供的监控工具来监控进程的状态和性能。
6.测试和验证:
1)在生产环境之前,在测试环境中进行配置验证。
2)确保同步的数据满足您的预期,并且没有遗漏或错误。
7.调优和维护:
1)根据需要调整OGG的配置参数以优化性能。
2)定期监控和维护OGG环境,确保同步过程的稳定性和可靠性。
利⽤OGG实现Oracle数据库双向同步环境:服务器⼀(RAC实例⼀的任意⼀个节点)IP地址: 10.19.100.91Oracle数据库版本 11.2.0.4Oracle数据库实例名 aegisdbOracle数据库端⼝ 1521待同步数据库schema aegisOGG端⼝ 7809服务器⼆(RAC实例⼆的任意⼀个节点)IP地址: 10.19.100.92Oracle数据库版本 11.2.0.4Oracle数据库实例名 aegisdbOracle数据库端⼝ 1521待同步数据库schema aegisOGG端⼝ 7809Oracle GoldenGate版本12.2.0.1数据库连接串(tnsname.ora⽂件,2台服务器配置上相同):AEGISDB91 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.19.100.91)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = aegisdb)))AEGISDB92 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.19.100.92)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = aegisdb)))在两个服务器的Oracle数据库上各创建表⽤于测试同步$ sqlplus aegis/123456SQL*Plus: Release 11.2.0.4.0 Production on Sat Mar 521:26:362016Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> create table t1(col1 number);Table created.SQL> create table t2(col1 varchar2(10),col2 number);Table created.⼀、安装前准备此步骤需要在两台服务器上都执⾏1. 配置环境变量[oracle@localhost ~]$ more /home/oracle/.bash_profile# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi# User specific environment and startup programsexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1export ORACLE_SID=aegisdbexport OGG_HOME=/u01/app/oggexport PATH=$OGG_HOME:$ORACLE_HOME/bin:$PATH:$HOME/binexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OGG_HOME1. 创建Oracle GoldenGate软件⽬录mkdir /u01/app/ogg1. 准备安装⽂件$ cd /opt/Oracle/$ unzip fbo_ggs_Linux_x64_shiphome.zip⼆、安装Oracle GoldenGate此步骤需要在两台服务器上都执⾏这⾥使⽤SecureCRT + Xmanager的图形界⾯来安装Oracle GoldenGate。
OGG同构(ORACLE-ORACLE)、异构(ORACLE-MYSQL)同步配置及错误解析环境:11.2.0.3(已安装数据库实例)+OEL5.7192.168.1.55 zlm sid:zlm11g192.168.1.60 zlm2 sid:zlm11g一、安装软件,配置环境,创建相关用户1.1 下载介质并安装OGG软件从官方网址下载最新版OGG FOR ORACLE 11g ON LINUX X86-64软件:/technetwork/middleware/goldengate/downloads/index.html?ssSo urceSiteId=ocomenOracle GoldenGate V11.2.1.0.1 for Oracle 11g on Linux x86-64 (86 MB)介质名称:ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip1.2 把OGG软件包复制到源端oracle主目录,创建安装目录gg11后2次解压到gg11 [oracle@zlm ~]$ lsogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip[oracle@zlm ~]$ cd $OACLE_BASE[oracle@zlm oracle]$ mkdir gg11[oracle@zlm oracle]$ cd gg11[oracle@zlm gg11]$ unzip /home/oracle/ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zi p[oracle@zlm gg11]$ lltotal 223764-rw-rw-r-- 1 oracle oinstall 228556800 Apr 23 2012 fbo_ggs_Linux_x64_ora11g_64bit.ta r-rwxrwxrwx 1 oracle oinstall 220546 May 2 2012 OGG_WinUnix_Rel_Notes_11.2.1.0.1 .pdf-rwxrwxrwx 1 oracle oinstall 93696 May 2 2012 Oracle GoldenGate 11.2.1.0.1 READ ME.doc-rwxrwxrwx 1 oracle oinstall 24390 May 2 2012 Oracle GoldenGate 11.2.1.0.1 READ ME.txt[oracle@zlm gg11]$ tar xvof fbo_ggs_Linux_x64_ora11g_64bit.tar1.3 修改环境变量文件.bash_profile,加入OGG的环境变量export GGHOME=$ORACLE_BASE/gg11export PATH=$ORACLE_BASE/gg11:$ORACLE_HOME/bin:/usr/bin/:$PATH[oracle@zlm gg11]$ . ~/.bash_profile[oracle@zlm gg11]$ ggsciggsci: error while loading shared libraries: libnnz11.so: cannot open shared object file: N o such file or directory由于没有设置LD_LIBRARY_PATH环境变量,所以无法执行ggsci,添加export LD_LIBLARY_PATH=$ORACLE_BASE/gg11:$ORACLE_HOME/lib:$ORACLE_HOME/b in到环境变量.bash_profile并source,或者创建一个link文件:[oracle@zlm gg11]$ ln -s /u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so -/u01/app/oracle/product/11.2.0/db_1/lib/libnnz10.so1.4 创建OGG专用目录subdirsGGSCI (zlm) 1> create subdirsCreating subdirectories under current directory /u01/app/oracle/gg11Parameter files /u01/app/oracle/gg11/dirprm: already existsReport files /u01/app/oracle/gg11/dirrpt: createdCheckpoint files /u01/app/oracle/gg11/dirchk: createdProcess status files /u01/app/oracle/gg11/dirpcs: createdSQL script files /u01/app/oracle/gg11/dirsql: createdDatabase definitions files /u01/app/oracle/gg11/dirdef: createdExtract data files /u01/app/oracle/gg11/dirdat: createdTemporary files /u01/app/oracle/gg11/dirtmp: createdStdout files /u01/app/oracle/gg11/dirout: created1.5 开启归档模式、强制日志、附加日志查看v$database看这3个参数是否已开启,使用OGG必须是开启状态SQL> select LOG_MODE, SUPPLEMENTAL_LOG_DATA_MIN,FORCE_LOGGING from v$dat abase;LOG_MODE SUPPLEME FOR------------ -------- ---ARCHIVELOG YES YES各参数开启方法:--archivelogSQL> shutdown immediateSQL> startup mountSQL> alter database archivelog;SQL> alter database open;--force loggingSQL> alter database force logging;--supplemental log dataSQL> alter database add supplemental log data;1.6 关闭数据库的recyclebin(10gDDL必须,11gDDL可选)SQL> alter system set recyclebin=off scope=spfile; --同步DDL要求关闭10g中的回收站特性1.7 创建复制用户ogg并授予权限SQL> create user ogg identified by ogg default tablespace users temporary tablespace te mp;SQL> grant connect,resource,unlimited tablespace to ogg;1.8 创建测试用户sender并授予权限SQL> create user sender identified by sender default tablespace users temporary tablesp ace temp;SQL> grant connect,resource,unlimited tablespace to sender;1.9 配置复制的DDL支持(必须SYSDBA登录执行)SQL> grant execute on utl_file to ogg;SQL> @$GGHOME/marker_setup.sql; --建立一个DDL标记表SQL> @$GGHOME/ddl_setup.sql; --INITIALSETUP选项运行ddl_setup.sql 将在数据库中创建捕获DDL语句的Trigger等必要组件(注意,执行时必须断开GGSCI连接,否则报错) SQL> @$GGHOME/role_setup.sql; --建立GGS_GGSUSER_ROLE角色SQL> grant GGS_GGSUSER_ROLE to ogg; --授予给extract group参数中定义的userid用户SQL> @$GGHOME/ddl_enable.sql; --enable ddl捕获触发器注意:下面2个SQL脚本只是为了提高DDL复制性能,不是必须的SQL> @?/rdbms/admin/dbmspool --创建DBMS_SHARED_POOL包SQL> @ddl_pin --通过dbms_shared_pool.keep存储过程将DDLReplication相关的对象keep 在共享池中,以保证这些对象不要reload,提升性能1.10 目标端重复配置以上1.1-1.9全部内容,至此,ORACLE-ORACLE环境搭建完毕二、用EXPDP/IMPDP初始化测试数据(仅限ORACLE-ORACLE)2.1 创建EXPDP/IMPDP使用的directory及其对应的本地目录SQL> set lin 200 pages 999SQL> col owner for a5SQL> col directory_name for a25SQL> col directory_path for a75SQL> select * from dba_directories;OWNER DIRECTORY_NAME DIRECTORY_PATH----- ------------------------- ----------------------------------SYS GGS_DDL_TRACE /u01/app/oracle/diag/rdbms/zlm11g/zlm11g/trace SYS SUBDIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/order_e ntry//2002/SepSYS SS_OE_XMLDIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/orde r_entry/SYS BACKUP /u01/backupSYS LOG_FILE_DIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/log/SYS MEDIA_DIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/produ ct_media/SYS XMLDIR /u01/app/oracle/product/11.2.0/db_1/rdbms/xmlSYS DATA_FILE_DIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/sale s_history/SYS DATA_PUMP_DIR /u01/app/oracle/admin/zlm11g/dpdump/SYS ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0/db_1/ccr/state SQL> create directory expdump as '/u01/expdp';SQL> select * from dba_directories;OWNER DIRECTORY_NAME DIRECTORY_PATH----- ------------------------- ----------------------------------SYS GGS_DDL_TRACE /u01/app/oracle/diag/rdbms/zlm11g/zlm11g/trace SYS EXPDUMP /u01/expdpSYS SUBDIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/order_e ntry//2002/SepSYS SS_OE_XMLDIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/orde r_entry/SYS BACKUP /u01/backupSYS LOG_FILE_DIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/log/ SYS MEDIA_DIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/produ ct_media/SYS XMLDIR /u01/app/oracle/product/11.2.0/db_1/rdbms/xmlSYS DATA_FILE_DIR /u01/app/oracle/product/11.2.0/db_1/demo/schema/sale s_history/SYS DATA_PUMP_DIR /u01/app/oracle/admin/zlm11g/dpdump/SYS ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0/db_1/ccr/state [oracle@zlm gg11]$ cd /u01/[oracle@zlm u01]$ lsapp backup[oracle@zlm u01]$ mkdir /u01/expdp[oracle@zlm u01]$ lltotal 16drwxr-xr-x 4 oracle oinstall 4096 Jul 13 03:12 appdrwxrwxr-x 2 oracle oinstall 4096 Jul 21 20:26 backupdrwxr-xr-x 2 oracle oinstall 4096 Aug 28 22:11 expdp2.2 登录sender用户并创建测试表testSQL> conn sender/senderConnected.SQL> begin2 for i in 1..3 loop3 insert into test values(i);4 end loop;5 end;6 /PL/SQL procedure successfully completed.SQL> select * from test1;ID----------1232.3 赋予sender读写directory的权限,执行expdp导出测试表testSQL> grant read,write on directory expdump to sender;SQL> ![oracle@zlm ~]$ expdp sender/sender directory=expdump dumpfile=test.dmp logfile=te st.log tables=test[oracle@zlm ~]$ cd /u01/expdp[oracle@zlm expdp]$ lstest.dmp test.log2.4 在目标端创建directory及相应的本地路径,复制dump文件到目标端SQL> create directory impdump as ‘/u01/impdp’;--target[oracle@zlm2 gg11]$ mkdir /u01/impdp[oracle@zlm2 gg11]$ ls /u01app backup impdp--source[oracle@zlm expdp]$ scp test.* zlm2:/u01/impdporacle@zlm2's password:test.dmp 100% 92KB 92.0KB/s 00:00 test.log 100% 1011 1.0KB/s 00:00 2.5 目标端赋予recerver用户权限,执行impdp导入测试表testSQL> grant read,write on directory impdump to sender;SQL> ![oracle@zlm2 ~]$ impdp sender/sender directory=impdump dumpfile=test.dmp tables=t est注意:expdp/impdp必须是在同一个schema下的object,否则不能执行成功,logfile可以无SQL> conn sender/senderConnected.SQL> select * from test;ID----------123此时完成test表的初始化同步,注意:如果非ORACLE-ORACLE方式同步,则只能使用OGG推荐的方式,即配置initial extract来初始化数据,具体可以参考我之前的一篇blog:OGG配置DML单向复制一例及错误分析/aaron8219/article/details/10275431三、不使用PUMP抽取进程的DML同步参数配置(ORACLE-ORACLE)3.1 单向复制3.1.1 创建并配置manager[ogg@zlm gg11]$ ./ggsciGGSCI (zlm) 1> info allGGSCI (zlm) 2> edit params mgrPORT 7809ggate (zlm) 3> start managerManager started.3.1.2 配置源端抽取组ext1GGSCI (zlm) 1> add extract ext1, tranlog, begin nowGGSCI (zlm) 2> add rmttrail ./dirdat/rt, extract ext1GGSCI (zlm) 3> edit params ext1extract ext1userid ogg, password oggrmthost zlm2, mgrport 7809rmttrail ./dirdat/rtddl include mapped objname sender.*;table sender.*;GGSCI (zlm) 4> info all3.1.3 配置目标端同步组3.1.3.1 在目标端添加checkpoint表[ogg@zlm gg11]$ ./ggsciGGSCI (zlm2) 1> edit params ./GLOBALGGSCHEMA oggCHECKPOINTTABLE ogg.ckptGGSCI (zlm2) 2> dblogin userid ogg password oggGGSCI (zlm2) 3> add checkpointtable ogg.ckpt3.1.3.2 创建同步组rep1GGSCI (zlm2) 4> add replicat rep1, exttrail ./dirdat/rt, checkpointtable ogg.ckpt GGSCI (zlm2) 5> edit params rep1replicat rep1ASSUMETARGETDEFSuserid ogg,password oggreperror default,discarddiscardfile ./dirrpt/rep1.dsc, append, megabytes 5DDLmap sender.*, target sender.*;3.1.4 源端开启抽取组ext1,目标端开启同步组rep1--sourceGGSCI (zlm) 1> start mgrGGSCI (zlm) 2> start extract ext1GGSCI (zlm) 3> info all--targetGGSCI (zlm2) 1> start mgrGGSCI (zlm2) 2> start replicat rep1GGSCI (zlm2) 3> info all3.1.5 测试DML同步3.1.5.1 insert--sourceSQL> select * from test2 /ID----------123SQL> insert into test values(4);1 row created.SQL> commit;Commit complete.--targetSQL> select * from test;ID----------1234注意:可以顺利同步,但是查看ext1和rep1的run time messages,都报了如下的错误:WARNING OGG-00869 No unique key is defined for table 'TEST'. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.Using the following key columns for source table SENDER.TEST: ID.该表没有主键,使用KEYCOLS代替,查询官方说明如下:OGG-00869: {0}Cause: The specified database error occurred, but can be ignored.Action: Contact Oracle Support only if a problem persists.由于这只是个警告,况且对实际的应用也没什么影响,是可以忽略掉的。
Linux下单机OGG同步oracle11g DB测试(2013-12-13 10:49:44)一、安装goldengate软件1.测试环境:OS: redhat 6 64bitDB: oracle 11.2.0.3 64bit查看OS和DB版本[oracle@redhat6 ~]$ uname -aLinux redhat6 2.6.32-131.0.15.el6.x86_64 #1 SMP Tue May 10 15:42:40 EDT 2011 x86_64 x86_64x86_64 GNU/LinuxSQL> select * from v$version where rownum=1;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production1.2.安装OGG[oracle@redhat6 ~]$ cd /u01/ogg[oracle@redhat6 ogg]$unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip[oracle@redhat6 ogg]$ tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar1.3.添加环境变量[oracle@redhat6 ogg]$ vi /home/oracle/.bash_profileLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport LD_LIBRARY_PATHexport PATH=/u01/ogg:$PATHexport GGATE=/u01/ogg1.4.使用ggsci工具创建目录[oracle@redhat6 ogg]$ ./ggsciOracle GoldenGate Command Interpreter for OracleVersion 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBOLinux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.GGSCI (redhat6) 1> create subdirs以上配置须SOURCE和TARGET端都进行二、配置源(SOURCE)数据库Goldengate通过抓取源端数据库重做日志进行分析,将获取的数据应用到目标端,实现数据同步。
因此,源数据库需要必须处于归档模式,并启用附加日志和强制日志。
(1)归档模式、SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /u01/app/oracle/archlogOldest online log sequence 12Next log sequence to archive 14Current log sequence 14SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;LOG_MODE SUPPLEME FOR------------ -------- ---ARCHIVELOG YES NO(2)强制日志SQL> alter database force logging;Database altered.(3)附加日志SQL>alter database add supplemental log data;SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;LOG_MODE SUPPLEME FOR------------ -------- ---ARCHIVELOG YES YES2.2禁用RecycleBin(oracle10g ogg需要禁用,oracle11g ogg不要求)SQL> alter system set recyclebin=off scope=spfile;System altered.SQL> shutdown immediate2.3创建存放DDL信息的用户并授权SQL> create user ggate identified by ggate default tablespace users temporary tablespace temp; User created.SQL> grant connect,resource to ggate;Grant succeeded.SQL> grant execute on utl_file to ggate;Grant succeeded.[oracle@redhat6 ~]$ cd $GGATE[oracle@redhat6 ggate]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Mon Dec 9 04:55:44 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> @marker_setup.sql; ---输入之前创建的用户ggateSQL> @ddl_setup.sql; ---输入之前创建的用户ggateSQL> @role_setup.sql; ---输入之前创建的用户ggateSQL>grant GGS_GGSUSER_ROLE to ggate;SQL>@ddl_enable.sql;三、测试OGG3.1 分别在SOURCE DB和TARGET DB上创建测试用户SOURCE DB:SQL> create user source identified by oracle default tablespace users temporary tablespace temp;User created.SQL> grant connect,resource,dba to source;Grant succeeded.TARGET DB:SQL> create user targer identified by oracle default tablespacetbs_hjj temporary tablespace temp; User created.SQL> grant connect,resource,dba to targer;Grant succeeded.3.2 在SOURCE和TARGET分别配置MANAGER远端和目标端都做同样的操作GGSCI (redhat6) 1> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER STOPPEDGGSCI (redhat6) 2> edit paramsmgrGGSCI (redhat6) 3> start mgrManager started.GGSCI (redhat6) 4> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER RUNNING3.3 配置SOURCE DB的复制队列连接到数据库,测试连接:GGSCI (redhat6) 5>dbloginuserid ggate@hjj,password ggateSuccessfully logged into database.增加一个抽取extract:GGSCI (redhat6) 6> add extract ext1,tranlog,begin nowEXTRACT added.GGSCI (redhat6) 7> add exttrail /u01/ogg/dirdat/lt,extract ext1EXTTRAIL added.GGSCI (redhat6) 8> edit params ext1extract ext1userid ggate@hjj,password ggatermthost redhat6,mgrport 7809rmttrail /u01/ogg/dirdat/ltddl include mapped objname source.*;table source.*;GGSCI (redhat6) 2> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER RUNNINGEXTRACT RUNNING EXT1 00:00:00 00:00:103.4 配置TARGET DB的同步队列GGSCI (redhat6) 2> edit params ./GLOBALGGSCHEMA ggateCHECKPOINTTABLE ggate.checkpointGGSCI (redhat6) 3>dbloginuserid ggate@hjj,password ggateSuccessfully logged into database.GGSCI (redhat6) 4> add checkpointtableggate.checkpointSuccessfully created checkpoint table ggate.checkpoint.创建同步队列GGSCI (redhat6) 1> add replicat rep1,exttrail /u01/ogg/dirdat/lt,checkpointtableggate.checkpoint REPLICAT added.GGSCI (redhat6) 5> edit params rep1replicat rep1ASSUMETARGETDEFSuserid ggate@hjj,password ggatediscardfile /u01/ogg/dirdat/rep1_discard.txt,append, megabytes 10 DDLmap source.*, target targer.*;3.5 开启同步(1)SOURCE端:GGSCI (redhat6) 10> start extract ext1Sending START request to MANAGER ...EXTRACT EXT1 startingGGSCI (redhat6) 11> info allProgram Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNINGEXTRACT RUNNING EXT1 00:07:38 00:00:00(2)TARGET端:GGSCI (redhat6) 3> start replicat rep1Sending START request to MANAGER ...REPLICAT REP1 startingGGSCI (redhat6) 4> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER RUNNINGEXTRACT RUNNING EXT1 00:00:00 00:00:05 REPLICAT RUNNING REP1 00:00:00 00:00:013.6 测试数据复制(1)SOURCE DB:[oracle@redhat6 ogg]$ sqlplus source/oracleSQL*Plus: Release 11.2.0.3.0 Production on Mon Dec 9 20:09:11 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> create table hjj as select * from sys.all_users;Table created.(2)TARGET DB 查看数据同步情况:[oracle@redhat6 ogg]$ sqlplustarger/oracleSQL*Plus: Release 11.2.0.3.0 Production on Mon Dec 9 20:09:26 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> select count(*) from hjj;COUNT(*)----------12在SOURCE端执行:SQL> insert into hjj select * from sys.all_users;12 rows created.SQL> commit;Commit complete.在TARGET查看同步情况SQL> select count(*) from hjj;COUNT(*)----------24Oracle到Oracle的单向复制配置完成。