<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rock Sun's Blog &#187; oracle</title>
	<atom:link href="http://rocksun.cn/category/oracle/feed/" rel="self" type="application/rss+xml" />
	<link>http://rocksun.cn</link>
	<description>Blogger's Blog</description>
	<lastBuildDate>Sun, 05 Feb 2012 18:50:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>玩玩GoldenGate</title>
		<link>http://rocksun.cn/try-goldengate/</link>
		<comments>http://rocksun.cn/try-goldengate/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 16:50:46 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://rocksun.cn/try-goldengate/</guid>
		<description><![CDATA[前一段跟着Quest的朋友学习了一些SharePlex的东西，最近Oracle则在大力推广另一个类似的产品GoldenGate，手头的资料不多，只有一份官方文档和一份所谓的培训教材PPT，不过可操作性不强，上手有点难，后来看了这篇文章，才终于把基本的同步实现了。不过这位作者显然已经研究不少时间的GG，所以很多命令并没有写明，这里我把它补充一下吧。
1，数据库准备
1.1 检查SUPPLEMENTAL_LOG
和SharePlex一样，GG要求打开SUPPLEMENTAL_LOG，通过如下SQL可以查看：
SQL&#62;select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
如果没有开启，则执行如下语句打开SUPPLEMENTAL_LOG：
SQL&#62;alter database add supplemental log data;
1.2 建立测试用户
ggs和ggt分别为源数据用户和目标用户。
create user ggs identified by ggs default tablespace users;
grant connect,resource to ggs;
create user ggt identified by ggt default tablespace users;
grant connect,resource to ggt;
建立GG使用的用户gg。
create user gg identified by gg default tablespace users;
grant dba to gg;
2. 下载安装GoldenGate
需要到http://edelivery.oracle.com/下载对应版本的GoldenGate，我不太明白的是为什么这个GG的Product Pack是Oracle Fusion Middleware，另外，我是在RHEL5.0上做的实验，所以Platform我选择了Linux x86，下载文件大约27M。
为了简单，我直接使用操作系统的oracle用户安装GG。建立目录/home/oracle/ggs，把下载的文件unzip，然后存放到这个目录后执行：
tar -xvof ggs_redhatAS50_x86_ora11g_32bit_v10.4.0.19_002.tar
这样，/home/oracle/ggs就是我们的GG的目录了。这时候我们进入ggs目录，执行ggsci可能会报找不到库的错误，那是我们还没有配置LIB，对于我这个系统，我在.bash_profile里增加了如下几句：
LD_LIBRARY_PATH=/home/oracle/ggs:/u01/app/oracle/product/11.1.0/db_1/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/home/oracle/ggs; export PATH
运行&#8217;.  [...]


Related posts:<ol><li><a href='http://rocksun.cn/upgrade-wordpress-to-265/' rel='bookmark' title='Permanent Link: 我的Wordpress又升级了'>我的Wordpress又升级了</a></li><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/%e7%ae%80%e5%8d%95%e7%9b%ae%e6%a0%87-dba/' rel='bookmark' title='Permanent Link: 简单目标-DBA'>简单目标-DBA</a></li></ol>

]]></description>
			<content:encoded><![CDATA[<p>前一段跟着Quest的朋友学习了一些SharePlex的东西，最近Oracle则在大力推广另一个类似的产品GoldenGate，手头的资料不多，只有一份官方文档和一份所谓的培训教材PPT，不过可操作性不强，上手有点难，后来看了<a href="http://blog.sina.com.cn/s/blog_4e7cf89d0100gd87.html">这篇文章</a>，才终于把基本的同步实现了。不过这位作者显然已经研究不少时间的GG，所以很多命令并没有写明，这里我把它补充一下吧。</p>
<h3>1，数据库准备</h3>
<h6>1.1 检查SUPPLEMENTAL_LOG</h6>
<p>和SharePlex一样，GG要求打开SUPPLEMENTAL_LOG，通过如下SQL可以查看：</p>
<blockquote><p>SQL&gt;select SUPPLEMENTAL_LOG_DATA_MIN from v$database;</p></blockquote>
<p>如果没有开启，则执行如下语句打开SUPPLEMENTAL_LOG：</p>
<blockquote><p>SQL&gt;alter database add supplemental log data;</p></blockquote>
<h6>1.2 建立测试用户</h6>
<p>ggs和ggt分别为源数据用户和目标用户。</p>
<blockquote><p>create user ggs identified by ggs default tablespace users;<br />
grant connect,resource to ggs;<br />
create user ggt identified by ggt default tablespace users;<br />
grant connect,resource to ggt;</p></blockquote>
<p>建立GG使用的用户gg。</p>
<blockquote><p>create user gg identified by gg default tablespace users;<br />
grant dba to gg;</p></blockquote>
<h3>2. 下载安装GoldenGate</h3>
<p>需要到<a title="http://edelivery.oracle.com/" href="http://edelivery.oracle.com/">http://edelivery.oracle.com/</a>下载对应版本的GoldenGate，我不太明白的是为什么这个GG的Product Pack是Oracle Fusion Middleware，另外，我是在RHEL5.0上做的实验，所以Platform我选择了Linux x86，下载文件大约27M。</p>
<p>为了简单，我直接使用操作系统的oracle用户安装GG。建立目录/home/oracle/ggs，把下载的文件unzip，然后存放到这个目录后执行：</p>
<blockquote><p>tar -xvof ggs_redhatAS50_x86_ora11g_32bit_v10.4.0.19_002.tar</p></blockquote>
<p>这样，/home/oracle/ggs就是我们的GG的目录了。这时候我们进入ggs目录，执行ggsci可能会报找不到库的错误，那是我们还没有配置LIB，对于我这个系统，我在.bash_profile里增加了如下几句：</p>
<blockquote><p>LD_LIBRARY_PATH=/home/oracle/ggs:/u01/app/oracle/product/11.1.0/db_1/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH</p>
<p>PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/home/oracle/ggs; export PATH</p></blockquote>
<p>运行&#8217;.  .bash_profile’，或者重新登入oracle，再执行ggsci，就可以进入ggsci的管理界面，可以运行GG的命令了。这时，首先要做的就是建立GG的工作目录，我们运行：</p>
<blockquote><p>CREATE SUBDIRS</p></blockquote>
<p>（这一步最好在cd到/home/oracle/ggs，然后运行ggsci后执行，别的地方建立的环境有问题，我还是初学，应该有配置的方法，暂时不懂)</p>
<p>运行完毕，就生成了许多目录，这是GG配置文件，日志等文件的存放目录。</p>
<h3>3. 配置最简单的实验</h3>
<p>本次测试模拟的情况是：为了把ggs模式下的表中的数据变化同步到ggt模式的相关表中。本次配置不在源端缓存数据，直接把extract进程抓取的数据存储在目标端数据库服务器上，然后目标端数据库服务器的Replicat进程把队列中的数据投递到目标数据库中。相关配置命令和参数如下:</p>
<p>添加相关进程：</p>
<blockquote><p>ADD EXTRACT ext1 TRANLOG, BEGIN NOW</p>
<p>ADD rmttrail /home/oracle/ggs/dirdat/r1  extract ext1</p>
<p>ADD replicat rep1 EXTTRAIL /home/oracle/ggs/dirdat/r1, nodbcheckpoint</p></blockquote>
<p>运行edit param mgr，然后保存文件内容如下：</p>
<blockquote><p>port 7809</p></blockquote>
<p>运行edit param ext1 ，然后保存文件内容如下：</p>
<blockquote><p>extract ext1<br />
userid gg,password gg<br />
rmthost 127.0.0.1, mgrport 7809<br />
rmttrail /home/oracle/ggs/dirdat/r1<br />
dynamicresolution<br />
table ggs.*;</p></blockquote>
<p>运行edit param rep1，然后保存文件内容如下：</p>
<blockquote><p>replicat rep1<br />
userid gg,password gg<br />
assumetargetdefs<br />
map ggs.*, target ggt.*;</p></blockquote>
<p>然后启动必要的进程：</p>
<blockquote><p>start mgr<br />
start ext1<br />
start rep1</p></blockquote>
<p>这时可以运行info all来查看是否所有的进程都是正常运行：</p>
<p>GGSCI&gt;  info all</p>
<p>Program  Status  Group  Lag  Time Since Chkpt</p>
<p>MANAGER  RUNNING<br />
EXTRACT  RUNNING  EXT1  00:00:00  00:00:07<br />
REPLICAT  RUNNING  REP1  00:00:00  00:00:08</p>
<h3>4. 测试同步</h3>
<p>使用sqlplus执行SQL语句：</p>
<blockquote><p>create table ggs.tb1 (a number, CONSTRAINT pk1 PRIMARY KEY  (a))  ;</p>
<p>create table ggt.tb1 (a number, CONSTRAINT pk1 PRIMARY KEY  (a))  ;</p></blockquote>
<p>然后运行:</p>
<blockquote><p>insert into ggs.tb1 values (1);<br />
commit;</p></blockquote>
<p>看看是否同步到了ggt.tb1了？</p>


<p>Related posts:<ol><li><a href='http://rocksun.cn/upgrade-wordpress-to-265/' rel='bookmark' title='Permanent Link: 我的Wordpress又升级了'>我的Wordpress又升级了</a></li><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/%e7%ae%80%e5%8d%95%e7%9b%ae%e6%a0%87-dba/' rel='bookmark' title='Permanent Link: 简单目标-DBA'>简单目标-DBA</a></li></ol></p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/try-goldengate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

