返回顶部
首页 > 资讯 > 服务器 >OOG:一台服务器两个实例之间的OGG
  • 129
分享到

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

2024-04-02 19:04:59 129人浏览 安东尼
摘要

这里必须报怨,提出这个测试的兄弟做的时候出问题了,然后我说做出来给他。但是他现在网吧打游戏mmp!!! 测试目的及思路 本文主要测试目的:验证一台多实例的服务器上是否可以通过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

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

配置OGG参数

创建ogg目录

cd /ogg
./ggsci
create subdirs

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

--源主机创建checkpoint表
{
dblogin userid goldengate@zhankys,passWord goldengate
add checkpointtable goldengate.ggs_checkpoint
}
--源实例创建完后exit在登录目的库建checkpoint表
{
dblogin userid goldengate@zhankyd,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 goldengate@zhankys,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 goldengate@zhankys,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 goldengate@zhankyd,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 goldengate@zhankyd,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;

--结束END--

本文标题: OOG:一台服务器两个实例之间的OGG

本文链接: https://lsjlt.com/news/37679.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • OOG:一台服务器两个实例之间的OGG
    这里必须报怨,提出这个测试的兄弟做的时候出问题了,然后我说做出来给他。但是他现在网吧打游戏mmp!!! 测试目的及思路 本文主要测试目的:验证一台多实例的服务器上是否可以通过OGG来实习实例之间的同步(一台...
    99+
    2024-04-02
  • 一台服务器搭建部署两个或多个Redis实例
    问题描述: 今天程序那边说测试服里面有两个项目,为了数据不冲突,想一台服务器搞两个Redis实例, 然后自己这边查询了一下,确实可以这么整,只需要区分端口号和区分配置文件方面就行, 原理与nginx和tomcat等添加容器单实例...
    99+
    2020-09-20
    一台服务器搭建部署两个或多个Redis实例
  • 两个云服务器之间的连接
    两个云服务器之间的连接方式可能是通过 VPN 隧道或者其他加密技术来实现的。下面是一些可能用到的技术,以及如何使用这些技术: VPN 隧道:VPN 隧道是通过一系列加密技术来建立连接的一种方式。使用VPN 隧道,您可以使用私人密钥加密数...
    99+
    2023-10-26
    两个 服务器
  • 同一台机器上配置两个MySQL实例
    摘要:实际环境中,为充分利用硬件资源,同一台机器上可能运行多个mysql实例,本文分享一种实现方法。...
    99+
    2024-04-02
  • 如何在一台云服务器上同时启动两个mysql实例
    下文给大家带来有关如何在一台云服务器上同时启动两个mysql实例内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完如何在一台云服务器上同时启动两个mysql实例你一...
    99+
    2024-04-02
  • 两个云服务器之间的连接方法
    以下是两个云服务器之间的主要通信方法: DNS解析:将请求发送到对应的云服务器上。 HTTP:客户端向服务器提出请求,服务器返回响应。 GET和POST:发送请求并接收响应。 CONNECT命令:向服务器发送指令,例如"GET http...
    99+
    2023-10-26
    两个 服务器 方法
  • 两个云服务器之间的连接方式
    两个云服务器之间的连接方式可以根据云服务提供商的不同而有所不同。以下是一些常见的云服务器配置和连接方式: 公共云(Public Cloud) 公共云提供商通常会提供两种类型的服务器:集群服务器和分布式服务器。其中,集群服务器负责处理大...
    99+
    2023-10-26
    两个 方式 服务器
  • 两个云服务器之间的连接是什么
    两个云服务器之间的连接方式可能是通过专用线缆或公用网络连接。通常情况下,这两个云服务器都会通过同一个公共网络(如互联网)连接到相同的服务器实例上,以确保它们的数据同步和安全传输。 在这种连接方式下,您需要提供一个云服务器的IP地址,以及一...
    99+
    2023-10-26
    两个 服务器
  • 两个云服务器之间的连接方式是
    两个云服务器之间的连接方式可以采用以下几种方式: VPN连接:使用VPN连接可以确保云服务器不受第三方服务提供商的干扰,可以在不同地理位置和网络环境下使用多个云服务器。使用VPN连接需要购买相应的服务,并且需要一定的技术知识和设备资源。...
    99+
    2023-10-27
    两个 方式 服务器
  • 两个云服务器之间的连接方法是
    两个云服务器之间的连接方法可以包括以下几种: HTTP/1.1 Gbps GCP VPN:使用 GCP VPN可以实现双向 IP 认证和加密通信。通过在 Windows Server 2008 或更高版本上安装 GCP,可以使用 VPN...
    99+
    2023-10-27
    两个 服务器 方法
  • 两台linux服务器之间传输文件的几种方法
    打开powershell, 开始连接服务器 ssh root@192.168.7.204 然后输入密码后就进来了,进入之后找到你要传输文件的位置 接下来我要将这个包传到另一个环境中去,有以...
    99+
    2023-09-03
    linux Powered by 金山文档
  • 阿里云一台跑两个服务器的实现方法与步骤
    在云计算的环境中,一台服务器通常需要支持多个虚拟机或者容器来运行多个应用,以提高资源利用效率。本文将详细说明如何在阿里云上实现一台服务器跑两个服务器的操作步骤,以帮助读者更好地理解并使用云计算。 在阿里云上,一台服务器可以运行多个服务器的实...
    99+
    2023-11-10
    一台 阿里 步骤
  • 两个云服务器之间的连接方式是什么
    两个云服务器之间的连接方式可能包括: 数据库连接:两个云服务器可以通过数据库连接建立连接,用于访问数据和执行各种操作,如创建、删除或更新数据。 文件传输:两个云服务器可以使用文件传输服务(如S3 Streaming Service或S4...
    99+
    2023-10-27
    两个 方式 服务器
  • 两个云服务器之间的连接是什么协议
    两个云服务器之间的连接需要使用IPSec或IPSec VPN协议。IPSec VPN适用于企业、政府机构或军事机构,它能够为两个云服务器之间的连接提供端到端的加密和身份验证,确保数据传输的安全性和完整性。 IPSec VPN需要两个服务器...
    99+
    2023-10-27
    协议 两个 服务器
  • 两个云服务器之间的连接是什么意思
    两个云服务器之间的连接是指多个云服务器之间通过网络连接相互通信。这通常涉及到通过互联网进行通信,可以通过各种通信协议和服务进行交互,例如Wi-Fi、蓝牙、ZigBee等等。 如果您指的是两个云服务器之间的数据传输,通常它涉及到云服务器中的...
    99+
    2023-10-27
    两个 服务器
  • 两个云服务器之间的连接方法是什么
    两个云服务器之间的连接方法可能会因您使用的云服务器和您所在的位置而有所不同,但以下是一个可能的基本连接方法: 使用互联网连接: 使用互联网连接连接两个云服务器,可以确保您的主机能够获得最快的速度、最佳的网络连接、最佳的可用性和最高质量...
    99+
    2023-10-27
    两个 服务器 方法
  • 两个云服务器之间的连接方法有哪些
    两个云服务器之间的连接方法可能包括: DNS解析:DNS(Domain Name System)是一种用于将一个域名对应的IP地址进行解析的机制,通常是通过域名服务器或DNS服务器的缓存来实现。在这种情况下,云服务器可以提供一个或多个D...
    99+
    2023-10-27
    两个 服务器 方法
  • 两个云服务器之间的连接方式有哪些
    云服务器的连接方式有很多,以下是一些常见的连接方式: WAN连接 通过路由器或者网关连接到云服务器的WAN端口,可以实现云服务器与其他云服务提供商之间的连接。这种连接方式适用于不同的云服务提供商,但对于一些大型的云服务提供商来说,这种...
    99+
    2023-10-28
    两个 方式 服务器
  • 一个云服务器多个实例
    在云服务器中,每个实例可以运行一个或多个应用程序,并且可以通过网络连接共享它们。这意味着,多个实例可以访问彼此的资源,同时还可以访问与实例相同的资源,例如存储空间、网络带宽等。因此,为了保证数据的可靠性和性能,需要确保多个实例之间的隔离性。...
    99+
    2023-10-26
    多个 实例 服务器
  • nginx一台服务器上配置两个https 域名网站
    要在 Nginx 中配置两个 HTTPS 网站,您需要执行以下步骤: 在服务器上安装 SSL 证书。您需要为每个网站安装单独的 SSL 证书。在 Nginx 配置文件中创建两个 server 块,每个...
    99+
    2023-09-21
    https 服务器 nginx
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作