OOG:一台服务器两个实例之间的OGG

这里必须报怨,提出这个测试的兄弟做的时候出问题了,然后我说做出来给他。但是他现在网吧打游戏mmp!!!

测试目的及思路

本文主要测试目的:验证一台多实例的服务器上是否可以通过OGG来实习实例之间的同步(一台主机上两个实例之间表数据通过OGG同步)
主要思路:一般我们OGG的思路是抽取、传送、应用。虽然OGG有很多种应用方式,但大多都是多台服务器,毕竟很少遇到一台服务器两个库之间做ogg。当我兄弟问我这个环境是否可以通过OGG同步,我第一反应是可以,大概实现方式就是抽取出来放在本地直接应用就好了。(经过测试的确可以)

环境描述

操作系统:RatHat Linux 6.5 x64
主机名:source.zhan
IP地址:192.168.214.52
数据库版本:11.2.0.4 x64
数据库SID:zhankys(源)、zhankyd(目的)
OGG版本:12.1.2.1

环境准备

创建所需目录并授权

--赋权给安装包
mkdir -p /soft
chown -R oracle:oinstall /soft
chmod -R 775 /soft
--归档日志路径
mkdir -p /archivelog/zhankys
mkdir -p /archivelog/zhankyd
chown -R oracle:oinstall /archivelog
chmod -R 775 /archivelog
--创建OGG安装目录
mkdir /ogg
chown -R oracle:oinstall /ogg
chmod -R 775 /ogg
--设置OGG环境变量
echo ‘export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib‘>>/home/oracle/.bash_profile

数据库准备(zhankys)

--登录数据库
export ORACLE_SID=zhankys
sqlplus / as sysdba
--创建ogg账户
create tablespace ogg_tablespace datafile ‘/u01/app/oracle/oradata/zhankys/ogg01.dbf‘ size 10m autoextend on next 5m;
create user goldengate identified by goldengate default tablespace ogg_tablespace;
grant dba to goldengate;
--查看归档、强制日志模式、数据库级别的补充日志是否开启(注意归档存放目录)
archive log list;
select force_logging,supplemental_log_data_min from v$database;
show parameter enable_goldengate_replication;

--开启归档
shutdow immediate
start mount
alter database archivelog;
alter system set log_archive_dest_1=‘location=/archivelog/zhankys‘ scope =both;
alter database open;
--开启数据库强制日志模式、数据库级别的补充日志
alter database force logging;
alter database add supplemental log data;
--修改允许使用ogg的参数(针对11.2.0.4库)
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;

数据库准备(zhankyd)

--登录数据库
export ORACLE_SID=zhankyd
sqlplus / as sysdba
--创建ogg账户
--创建ogg账户
create tablespace ogg_tablespace datafile ‘/u01/app/oracle/oradata/zhankyd/ogg01.dbf‘ size 10m autoextend on next 5m;
create user goldengate identified by goldengate default tablespace ogg_tablespace;
grant dba to goldengate;
--查看归档、强制日志模式、数据库级别的补充日志是否开启(注意归档存放目录)
archive log list;
select force_logging,supplemental_log_data_min from v$database;
show parameter enable_goldengate_replication;

--开启归档
shutdow immediate
start mount
alter database archivelog;
alter system set log_archive_dest_1=‘location=/archivelog/zhankyd‘ scope =both;
alter database open;
--开启数据库强制日志模式、数据库级别的补充日志
alter database force logging;
alter database add supplemental log data;
--修改允许使用ogg的参数(针对11.2.0.4库)
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;

更改tnsname(源目的相同)

vi /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
{
ZHANKYS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.214.52)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ZHANKYS)
    )
  )

ZHANKYD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.214.52)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ZHANKYD)
    )
  )
}

初始化数据准备(两个库都建)

connect goldengate/goldengate
--创建表
DROP TABLE tcustmer;
CREATE TABLE tcustmer ( cust_code VARCHAR(4) NOT NULL, name VARCHAR(30),
city VARCHAR(20), state CHAR(2), PRIMARY KEY (cust_code));
DROP TABLE tcustord;
CREATE TABLE tcustord ( cust_code VARCHAR(4) NOT NULL, product_code VARCHAR(8) NOT NULL,
order_id INTEGER NOT NULL, product_price DECIMAL(8,2), product_amount INTEGER,
transaction_id INTEGER, PRIMARY KEY (cust_code, product_code, order_id) );

select * from goldengate.tcustmer;
select * from goldengate.tcustord;

安装OGG

OGG软件安装

xhost +
su - oracle
cd /soft
unzip 121210_ggs_Linux_x64_shiphome.zip
cd fbo_ggs_Linux_x64_shiphome/Disk1/
./runInstaller




配置OGG参数

创建ogg目录

cd /ogg
./ggsci
create subdirs

创建checkpoint表(注意dblogin到两个库都创建)

--源主机创建checkpoint表
{
dblogin userid [email protected],password goldengate
add checkpointtable goldengate.ggs_checkpoint
}
--源实例创建完后exit在登录目的库建checkpoint表
{
dblogin userid [email protected],password goldengate
add checkpointtable goldengate.ggs_checkpoint
}

设置globals

edit params ./globals
{
UNLOCKEDTRAILFILES
}

配置MGR

edit params mgr
{
PORT 7809
AUTOSTART ER *
AUTORESTART ER *,RETRIES 3,WAITMINUTES 5,RESETMINUTES 60
LAGREPORTHOURS 1
LAGINFOMINUTES 3
LAGCRITICALMINUTES 10
PURGEOLDEXTRACTS ./dirdat/*,USECHECKPOINTS,MINKEEPDAYS 3
}
start mgr

配置需要trandata的对象(跟踪的表为源库,注意dblogin登录是否源库)

dblogin userid [email protected],password goldengate
add trandata goldengate.tcustmer
add trandata goldengate.tcustord
info trandata goldengate.*

配置extract(注意userid指定抽取的库)

add extract e_single,tranlog,begin now
add exttrail ./dirdat/single,extract b_e_29,megabytes 5
edit param e_single
{
EXTRACT e_single
SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
GETENV (NLS_LANG)
userid [email protected],password goldengate
EXTTRAIL ./dirdat/single,FORMAT RELEASE 12.1
DISCARDFILE ./dirrpt/e_single.dsc,PURGE
--NOCOMPRESSDELETES
NOCOMPRESSUPDATES
GETUPDATEBEFORES
GETUPDATEAFTERS
TRANLOGOPTIONS LOGRETENTION disabled
WARNLONGTRANS 30m,CHECKINTERVAL 3m

table goldengate.tcustmer;
table goldengate.tcustord;
}
start e_single
info e_single

配置replicat(注意userid指定应用的库)

dblogin userid [email protected],password goldengate
add replicat r_single,exttrail ./dirdat/single,checkpointtable goldengate.ggs_checkpoint
edit param r_single
{
REPLICAT r_single
SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
GETENV (NLS_LANG)
USERID [email protected],PASSWORD goldengate
HANDLECOLLISIONS
ASSUMETARGETDEFS
REPERROR DEFAULT,DISCARD
DBOPTIONS NOSUPPRESSTRIGGERS
DISCARDFILE ./dirrpt/b_r_29.dsc,PURGE

MAP goldengate.TCUSTMER, TARGET goldengate.TCUSTMER;
MAP goldengate.TCUSTORD, TARGET goldengate.TCUSTORD;
}
start r_single
info r_single

校验结果语句

select * from goldengate.TCUSTMER;
select * from goldengate.TCUSTORD;

INSERT INTO goldengate.tcustmer VALUES (‘ZZZ‘,‘BG SOFTWARE CO.‘,‘SEATTLE‘,‘WZ‘);
INSERT INTO goldengate.tcustord VALUES (‘ZZZ‘,‘CAR‘,144,17520,3,100);
COMMIT;

INSERT INTO goldengate.tcustmer VALUES (‘ZqZZ‘,‘BqG SOFTWARE CO.‘,‘SEATTLE‘,‘WZ‘);
INSERT INTO goldengate.tcustord VALUES (‘ZqZZ‘,‘CAR‘,144,17520,3,100);
COMMIT;

INSERT INTO goldengate.tcustmer VALUES (‘ZbZ‘,‘BzG SOFTWARE CO.‘,‘SEATTLE‘,‘WZ‘);
INSERT INTO goldengate.tcustord VALUES (‘ZbZ‘,‘CAR‘,144,17520,3,100);
COMMIT;

INSERT INTO goldengate.tcustmer VALUES (‘ZghZ‘,‘BG SOFTWARE CO.‘,‘SEATTLE‘,‘WZ‘);
INSERT INTO goldengate.tcustord VALUES (‘ZghZ‘,‘CAR‘,144,17520,3,100);
COMMIT;

delete goldengate.tcustmer where cust_code=‘ZZZ‘;
delete goldengate.tcustord where cust_code=‘ZZZ‘;
delete goldengate.tcustmer where cust_code=‘ZqZZ‘;
delete goldengate.tcustord where cust_code=‘ZqZZ‘;
delete goldengate.tcustmer where cust_code=‘ZbZ‘;
delete goldengate.tcustord where cust_code=‘ZbZ‘;
delete goldengate.tcustmer where cust_code=‘ZghZ‘;
delete goldengate.tcustord where cust_code=‘ZghZ‘;
commit;

原文地址:https://blog.51cto.com/zhanky/2392828

时间: 2024-07-31 17:12:17

OOG:一台服务器两个实例之间的OGG的相关文章

同一台服务器两个svn服务器

今天公司叫我在一台已有的svn服务器上,在建立一台svn服务器为外网提供服务. 其实给单独建立一个库不就可以了么? 我是这么想的.但没办法,还是弄吧 1,区分svn服务器肯定是通过端口区分的. 2,定义的目录不同 CentOS6.5 # yum -y install subversion # svnserve --version           查看是否安装成功和查看版本 默认的目录在  /svndata    第一台svn服务器 自己建立第二台服务器的库目录    /svn # svnad

ZABBIX监控一台服务器上多实例memcache落地经验步骤

大家好!我是系统运维工程师: 李超  上一次给大家分享了工作中监控多实例tomcat的自发现zabbix做法,今天带给大家的就是一台服务器上监控多memcache的一个落地经验. 首先我带大家看一下多实例memcache做法,话不多说,咱们开工: 由于是多实例,所以就需要用到zabbix的自动发现功能(LLD)基本思路如下: 1.写自动发现脚本. 2.写状态取值脚本. 3.添加配置文件. 4.添加权限. 5.配置zabbix web. zabbix我采用yum安装所以路径是/etc/zabbix

windows下同一台服务器上装有两个ORACLE数据库实例,通过命令启停数据库

同一台服务器上装有两个ORACLE数据库实例,通过命令启停数据库,如何区分操作的是哪个数据库实例?操作如下: 1.在命令行 set oracle_sid=one_实例   //先修改环境变量,这一步等于切换了数据库实例 sqlplus /nolog    connect /as sysdba    shutdown 或者 2.连接的时候 sqlplus user/[email protected] as sysdba    //也可以指定 shutdown immediate select in

测试两台服务器之间的网络带宽

标签: 服务器 / 测试 / 网络 / windows / unix / 工具 一.为什么选择了iperf 之前做了一个项目,说要测试两台服务器之间的带宽,本想通过拷贝来进行测试,后来客户觉得得出的数据没有说服性,于是改拿工具来进行测试.我们这回用的工具名字叫iperf. iperf它是一款网络性能测试的工具,分为多个版本:Linux版.UNIX版.Windows版.相比之下,Windows版更新的比较慢,而UNIX和Linux版本更新起来更快,现在最新版本是2.05,而他安装简单.方便,而且测

rsync配置两台服务器之间的文件备份(同步)

rsync配置两台服务器之间的文件备份(同步) 前情提要 环境: 192.168.1.2 主服务器 centos 7.7 192.168.1.3 备份服务器 centos 7.7 rsync 安装(两台linux都需要安装) 在linux环境下,以centos为例,安装非常简单: [[email protected] ~]# yum install rsync rsync的配置文件(服务端配置) rsync 服务端安装完成之后是没有生成rsync.conf文件的,需要手动创建rsyncd.con

两台服务器之间的互链

补之前发过的. 如有错误的地方还请评论留下意见,感谢. 首先说需求:想把服务器1的数据库B中的mf_fx的表的数据同步到服务器2的数据库B中的mf_fx表中. 当然,用navicat的数据传输可以实现这个功能,或者用备份文件也可以实现这个功能.但是当传输的数据有条件时navicat就不怎么好使,备份文件又嫌麻烦.那么我们就可以用服务器1和2之间建立连接.直接insert into 服务器2的表select  from 服务器1的表. 我的数据库版本是08 r2 sp3 可以先在sys.serve

两台服务器通过网线互联

在公司安装测试环境:平台系统和数据库,分别在两台服务器上安装,一台装平台,一台装数据库,由于蛋疼的公司实行全加密,暂时无法申请IP地址,只能用网线连接两个服务器实现通信.具体操作是,分别设置两台服务器的IP地址,网口eth0为192.168.1.108和192.168.1.109,网关分别设为192.168.1.109和192.168.1.108(也就是把IP地址互换过来了),子网都为255.255.255.0.这里要注意找对服务器的网口位置,不然是无法ping通的,可以用ifdown eth2

linux两台服务器间复制文件scp

换服务器或添加服务器时常会用到两台服务器之间复制文件,这个时候就可以使用scp命令. scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度. 两台主机之间复制文件必需得同时有两台主机的复制执行帐号和操作权限. scp一般有六种使用方法: 本地复制远程文件:(把远程的文件复制到本地) scp [email protected]:/val/test/test.tar

nginx把两个不同的网站挂到同一台服务器的80端口上

本文主要分享如果利用nginx把两个不同的网站挂到同一台服务器的80端口上 最终效果 例如:www.manyjar.com (web服务器是8080端口)和ishenghuo.manyjar.com (web服务器是2020端口)这两个网站的效果一样.   一.后台服务器部署 在同一台服务器上部署两台不同的tomcat服务器,端口分别是8080和2020.8080的服务器配置不需要修改,而2020端口的服务器配置修改如下: 1 修改其中一个tomcat的conf文件下的server.xml文件3