Oracle goldengate ogg要怎么实现主备库切换啊?

作者&投稿:臾颖 (若有异议请与网页底部的电邮联系)
Oracle GoldenGate具体有什么作用或功能是什么(ITJOB)?~

  Oracle GoldenGate 用于在各种企业系统间以亚秒级速度复制和集成事务数据,是同类最佳的、易于部署的产品。Oracle GoldenGate 可以灵活地在同类和异类系统(包括不同版本的 Oracle Database、不同的硬件平台)之间以及 Oracle 数据库和非 Oracle 数据库(包括 Microsoft SQL Server、用于开放系统和 z/OS 的 IBM DB2、Sybase 等等)之间移动数据。
  本文演示如何安装、设置和配置此产品以轻松实现 Oracle Database 10g 和 11g 之间数据的无缝复制,还介绍了此产品的加速能力。
  Oracle 于 2009 年收购了 GoldenGate,我们可以看到在全球各行业超过 4,000 个解决方案中实施了 Oracle GoldenGate。该软件执行实时的、基于日志的更改数据捕获 (CDC),能够在异构数据库间以极低的延迟和很小的空间移动大量事务数据。
  通常,您部署 GoldenGate 捕获、数据泵和交付进程,并且可将这些进程部署在许多不同的操作系统和数据库上。可根据目标数据库的需要,复制所有数据或部分数据。当 Oracle GoldenGate 用于 Oracle 数据库时,可以复制数据操作语言 (DML) 和数据定义语言 (DDL) 操作。(目前只能在同类(不能在异类的)Oracle 版本间复制 DDL 操作。)Oracle GoldenGate 官方支持 Oracle9i 第 2 版到 Oracle Database 11g 第 2 版,并且对所有这些版本提供 DML/DDL 支持。该产品可用于 Oracle Database 的企业版和标准版。
  如上所述,可以在所支持的同类或异类 Oracle Database 版本间移动数据,也可以在 Oracle 数据库和非 Oracle 数据库间移动数据。大多数情况下,可对数据进行筛选、映射和转换。注意,如果启用了 DDL 支持(换言之,如果使用 GoldenGate 进行同类 Oracle Database 版本之间的 DDL 复制),则不支持数据筛选、映射和转换。
  Oracle GoldenGate 是以 DBA 为中心的,因此 DBA 很容易学会如何使用它。其实现时间也是最少的 — 一些站点只用一个月的时间就完全付诸实现。
  可获得什么
  Oracle GoldenGate 产品系列包括:
  Oracle GoldenGate
  Management Pack for Oracle GoldenGate(也称为 Oracle GoldenGate Director)Oracle GoldenGate Veridata
  Oracle GoldenGate Application Adapters
  Oracle GoldenGate for Mainframe
  为使增值服务造福客户,Oracle GoldenGate 核心许可包括 Oracle Active Data Guard 的全权使用许可和 Oracle Database 中 XStream 的全权使用许可。XStream 是与 Oracle Streams 接口的 API。Oracle Active Data Guard 支持主动打开备用数据库以提供报表服务,甚至在应用重做数据的同时也如此。这个特性非常棒,可将生产报表和查询工作分流到备用数据库上。
  一直以来,Oracle Streams 只用于在 Oracle 数据库间复制数据。Oracle GoldenGate 还可以在非 Oracle 数据库间复制数据,并且这种复制易于建立。
  我们应注意到,已发布的 Oracle — GoldenGate 发展方向声明中指出,“由于 Oracle GoldenGate 的战略性,将继续支持 Oracle Streams,但不会对其进行主动增强。而是对 Oracle Streams 中最好的内容行评估以确定是否将其并入 Oracle GoldenGate 中。”
  此演示的目的
  为了进行此次演示,您应在一台 Microsoft Windows 服务器上有三个数据库。这三个数据库是 HRPRD1、HRPRD2 和 HRPRD3。其数据库版本分别为 Oracle Database 11g、Oracle Database 10g 和 Oracle Database 10g。
  这三个数据库的 SYS 和 SYSTEM 口令已设置为 hrpassword1,用于测试目的。稍后可更改此口令。
  此演示的目的是在 HRPRD2 和 HRPRD3 这两个 Oracle 10g 数据库的 HR.EMPLOYEES 表之间建立单向复制。对第一个数据库中此表的 DML 更改应传给第二个数据库。然后,我们将对这一复制进行增强,可以将更改同时复制到 Oracle 11g 数据库 HRPRD1 中。其结果是,对 HRPRD2 中该表的任何更新、插入和删除不仅将会成功更新 HRPRD3,也会成功更新 HRPRD1。
  这种从 Oracle Database 10g 到 Oracle Database 10g 然后再到 Oracle Database 11g 的复制策略常用于升级情况,进行升级时,需要先复制数据,然后方可切换到升级后的数据库版本。Oracle GoldenGate 提供了简单的解决方案。
  注意,针对 Oracle 数据库时,您不 需要使用 Microsoft ODBC 数据源管理器为这些数据库创建数据源名称 (DSN)。Oracle GoldenGate 复制将使用监听器直接连接到 Oracle 数据库。
  需要下载的内容
  首先,对于 Windows 系统,需要从 Microsoft 下载中心下载 Microsoft Visual C ++ 2005 SP1 Redistributable Package,然后进行安装。如果计算机上未安装 Visual C++,这用于安装运行本应用程序时所需的 Visual C++ 库的运行时组件。
  接下来,需要从 Oracle 技术网下载 Oracle GoldenGate 软件。截至本文撰写时,OTN 只支持 Windows 平台 64 位版本:适用于 Windows 2000、XP 和 2003(64 位)上的 Oracle 10g 的 Oracle GoldenGate 10.4.0.x 版 (8 MB)。要下载 32 位 Windows 版本,您必须使用 Oracle E-Delivery 网站。(请注意,E-Delivery 下载有一个为期 30 天的试用产品许可,而非 OTN 开发人员许可。)登录此网站后,搜索适用于 Microsoft Windows(32 位)平台的“Oracle Fusion Middleware Product Pack”(因为 Oracle GoldenGate 被视作一个 Oracle 融合中间件产品,而非 Oracle Database 产品),然后单击 Go。
  此时会出现介质包列表。在此列表中,先选择 Oracle GoldenGate on Oracle Media Pack for Microsoft Windows (32-bit)。
  此介质包中包含:
  适用于 Windows 2000、XP 和 2003 上的 Oracle 10g 的 Oracle GoldenGate 10.4.0.x 版V18162-01
  大小:8.4 MB
  适用于 Windows 2000、XP 和 2003 上的 Oracle 11g 的 Oracle GoldenGate 10.4.0.x 版V18164-01
  大小:8.4 MB
  Oracle GoldenGate 文档
  V18423-01
  大小:20 MB
  下载这三个 zip 文件,因为您需要适用于 Oracle 10g 和 Oracle 11g 的 Oracle GoldenGate。
  然后,返回到 Oracle 融合中间件的介质包列表,从中选择 Management Pack for Oracle GoldenGate (v2.0.0.2) Media Pack for Microsoft Windows。
  该管理包介质包中包含:
  适用于 Windows 的 Oracle GoldenGate Director V2.0.0.x ServerV18127-01
  大小:228 MB
  适用于 Windows 的 Oracle GoldenGate Director V2.0.0.x ClientV18128-01
  大小:55 MB
  Oracle GoldenGate Director 文档
  V18129-01
  大小:952 KB
  如果您想安装管理包,下载所有这些文件。该管理包是一个安装您 Windows 服务器上的独立产品,。该产品原名为 Oracle GoldenGate Director,它包含一个多层的客户端-服务器应用程序,使组织可以轻松监视和管理其 Oracle GoldenGate 部署。
  使用 Oracle GoldenGate Director 的 GUI 界面,可以集中设计和配置 Oracle GoldenGate,还可以管理和监视为了在公司各服务器间复制数据而建立的各种 Oracle GoldenGate 进程。
  介质包的主列表中还有其他一些介质包,如 Oracle GoldenGate Veridata Media Pack for Microsoft Windows。
  Oracle GoldenGate Veridata 软件作为服务器进行安装,在不同平台上具有代理,它负责将一组数据与另一组数据进行对比以识别不同步的数据,对比时无需停机。此对比可全天候进行,可与大流量的复制同时进行。还可在不同平台间进行数据对比。
  除了上述主要介质包外,列表中还显示了其他 Oracle GoldenGate 包。这些软件包适用于非 Oracle 数据库,如 Sybase、SQL Server、IBM DB2、Teradata,还有 JMS 和平面文件,这反映了 Oracle GoldenGate 支持异构的性质。
  安装步骤
  您下载的 Oracle GoldenGate 文档 zip 文件 (V18423-01.zip)中包含 Oracle GoldenGate Oracle Installation and Setup Guide Version 10.4 (gg_ora_inst_v104.pdf),其中描述了适用于 Linux、UNIX 和 Windows 上的 Oracle 数据库的 Oracle GoldenGate 的安装步骤。
  注意,还有其他一些安装文档,它们针对适用于 Sybase、SQL Server、DB2、MySQL、Teradata 等的 Oracle GoldenGate。
  首先,将 Oracle GoldenGate for Oracle 10g (V18162-01.zip) 解压缩到一个新的 Oracle GoldenGate 软件目录中,目录名中不含任何空格。例如,您可以使用 C:\OGG10G 作为 Oracle GoldenGate 目录。此目录中的软件代码将用于建立第一个和第二个 Oracle 10g 数据库之间的复制。
  由于您的第三个数据库是 Oracle Database 11g 版,您还需要解压缩 Oracle GoldenGate for Oracle 11g (V18164-01.zip)。对于此版本的 Oracle GoldenGate,您需要使用一个单独的目录,C:\OGG11G。此目录中的软件代码将用于控制到第三个 Oracle Database 11g 数据库的复制。
  如果您有 Oracle9i 数据库并且想从其复制数据或向其复制数据,需要另一个适用于 Oracle9i 的 Oracle GoldenGate 软件。不过,您不能通过 Oracle 网站下载 Oracle GoldenGate 的 Oracle9i 版本。如果您需要此版本,可能需要通过 My Oracle Support 发出一个系统请求 (SR)。
  在命令提示符处输入以下命令:
  mkdir C:\OGG10G
  cd C:\OGG10G
  unzip c:\V18162-01.zip
  mkdir C:\OGG11G
  cd C:\OGG11G
  unzip C:\V18164-01.zip
  # start the 10g databases if not already startednet start OracleServiceHRPRD2
  net start OracleServiceHRPRD3
  # start the 11g database if not already startednet start OracleServiceHRPRD1
  设置环境变量
  现在,您可以打开两个命令窗口(开始..运行..Cmd),针对 Oracle Database 10g 和 Oracle Database 11g 将相应的环境变量(如 ORACLE_HOME、ORACLE_SID、LD_LIBRARY_PATH 等)设置为相应的值。
  为了在两个 Oracle 10g 数据库间建立复制,将这些变量进行如下设置:
  set ORACLE_HOME=C:\Oracle\product\10.2.0\db_1set ORACLE_SID=HRPRD2
  set PATH=%ORACLE_HOME%\bin;%PATH%
  set LD_LIBRARY_PATH=C:\OGG10G; %ORACLE_HOME%\LIB;%ORACLE_HOME%\jdbc\lib
  set CLASSPATH=;C:\Program
  Files\Java\jre6\lib\ext\QTJava.zip;%ORACLE_HOME%\jdbc\libORACLE_SID 可设置为 HRPRD2 或 HRPRD3,两者都是 Oracle 10g 数据库。请注意 PATH、LD_LIBRARY_PATH 和 CLASSPATH 的值。
  另一种方法是用系统变量进行这些设置,为此您可以在 Windows XP Professional 中使用:我的电脑..属性..高级..环境变量..系统变量。在这里添加新的系统变量并按如上所述更改路径。
  在此例中,在一台服务器上运行两个数据库版本的缺点是,每次启动 Oracle GoldenGate for Oracle 10g 或 Oracle GoldenGate for Oracle 11g 的 Manager 服务时,都必须更改系统变量。您可能要添加与 Oracle Database 11g 有关的系统变量,然后启动 Oracle GoldenGate for Oracle 11g Manager 服务。这之后,您可能要更改这些系统变量,使其适合于 Oracle Database 10g,然后启动 Oracle GoldenGate for Oracle 10g Manager 服务。由于这是一个测试系统,这么做可能没有问题。但在生产环境下,您需要采取一种更自动化的方法(如采用脚本化的方法)在脚本中设置这些变量并启动 Manager 服务。
  GGSCI 命令解释程序
  在命令窗口或“我的电脑”级别设置环境变量之后,转到 Oracle GoldenGate 的文件夹下,通过命令行(见图 1)或 Windows 资源管理器运行 Oracle GoldenGate Command Interpreter for Oracle (GGSCI) 程序。
  图 1 Oracle GoldenGate Command Interpreter现在,您可在 GGSCI 中执行 CREATE SUBDIRS 命令来创建 Oracle GoldenGate 的工作子目录。参见图 2,其中列出了所创建的重要目录。
  图 2 创建工作子目录
  将 Oracle GoldenGate Manager 作为本地程序运行您可以将 Oracle GoldenGate Manager 当作一个本地程序在命令窗口中运行,也可以将它作为一个 Windows 服务安装以便在 Windows 启动时自动启动。我们建议使用后面这种方法。
  如果您希望将其作为一个本地命令运行,只需调用目录中的 Manager 执行文件(调用时带着一个参数文件)即可。命令语法为:
  C:\OGG10G>mgr
  Usage: MGR PARAMFILE [REPORTFILE ]
  [PID ] [PORT ]
  [USESUBDIRS] [NOUSESUBDIRS]
  [PAUSEATEND] [NOPAUSEATEND]
  [CD ]
  PARAMFILE 是必需的参数。因此,您必须在 GGSCI 中创建一个参数文件:
  GGSCI (HaviPori) 1> edit params mgr
  此命令将在 C:\OGG10G\dirprm 目录中创建一个新的 mgr.prm 文件。在该文件中键入将用于运行 manager 进程的端口号,然后保存该文件。
  PORT 7809
  默认端口号为 7809。无论您选择哪个端口号,请确保该端口号未被任何其他程序所使用并且没有任何防火墙限制。因为 PORT 是 Manager 唯一需要的参数,所以必须指定该参数。GGSCI 使用该端口将请求发送给 Manager 以启动进程,并且 Extract 进程也使用该端口进行各种操作。
  创建该参数文件之后,就可以在 Windows 命令提示符下启动 Manager 了,如下所示:
  C:\OGG10G>mgr paramfile c:\OGG10G\dirprm\mgr.prm该命令启动 Manager,并且显示图 3 所示的消息:
  图 3 在 Windows 命令提示符处启动 Manager
  必须保持此窗口为打开状态,以保持 Manager 运行。如果您注销,该窗口将关闭,Manager 将停止运行。
  将 Manager 作为 Windows 服务进行安装
  上文描述了手动启动 Manager 的方法,还有一种启动方法,那就是将 Manager 作为自动启动的 Windows 服务来安装。
  在 Windows 集群环境下必须使用后面这种方法,因为出现故障时只有服务可以自动切换到备用服务器上。在非集群系统中,将 Manager 作为服务来安装是可选的方法但也是强烈建议的方法。
  在 Windows 中作为服务创建 Manager 进程时,该服务的默认名称为 GGSMGR。您可以为此服务指定自定义的名称。如果您在同一台服务器上需要不止一个 Oracle GoldenGate Manager 服务,比如一个针对 Oracle GoldenGate for Oracle 10g 的服务和另一个针对 Oracle GoldenGate for Oracle 11g 的服务,则指定名称是很重要的。如果您打算运行 Oracle GoldenGate Veridata,还需要一个 Manager 服务。
  用以下方法为 Manager 服务指定一个不同的名称。在 GGSCI 命令提示符处执行以下命令:
  EDIT PARAMS ./GLOBALS
  在出现的记事本编辑器中,选择新建一个文件(如果是首次这么做),然后输入以下代码并保存该 GLOBALS 文件:
  MGRSERVNAME OracleGGSMGR1
  根据 Windows 上的 Oracle 服务一般带有 Oracle 前缀(如 OracleDBConsole、OracleJobScheduler 服务)的惯例,使用名称 OracleGGSMGR1。
  通过 C:\OGG10G 目录中的 Install 程序可轻松创建 Manager 服务。使用 install addservice 命令,如图 4 所示:
  图 4 创建 Manager 服务
  新服务在 Windows 服务列表中显示为一个自动启动的服务(见图 5):
  图 5 Manager 服务属性
  Manager 服务以本地系统帐户运行,也可配置为以特定帐户(使用用户名和口令选项)运行,该用户名和口令可由 addservice 命令指定。现在可通过以下命令启动该服务:
  GGSCI (HaviPori) 1> start manager
  Starting Manager as service ('OracleGGSMGR1')...
  Service started.
  安装 Windows 事件消息
  还可使用 Install 程序将事件消息安装到 Windows 注册表中,这样它们可通过 Windows Event Manager 显示。使用以下命令可完成此操作:
  C:\OGG10G>install addevents
  Oracle GoldenGate messages installed successfully.
  Install program terminated normally.
  还可将 category.dll 和 ggsmsg.dll 文件从 C:\OGG10G 目录复制到 C:\WINDOWS\system32 目录,从而生成具体的而不是一般性的错误。
  建立复制 — 在 HRPRD2 上建立 Extract 进程Oracle GoldenGate Manager 进程已启动并运行。下一步要建立数据库之间的复制。
  为此,您至少需要创建和配置一个 Extract 和 Replicat 组。在这些组中指定您想捕获和复制的数据。
  Extract 进程捕获发生的数据更改并将这些更改发送给目标服务器上的一个“线索”。在目标服务器上启动 Replicat 进程,该进程负责进行实际的复制,它从线索中获取数据更改,然后将这些更改应用到目标数据库中。
  您还需要为 Oracle GoldenGate Replication 准备数据库:在数据库级打开追加日志 功能。为此,在以 SYSDBA 身份登录到数据库后使用以下命令:
  SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;Database altered.
  SQL> alter system switch logfile;
  System altered
  现在可以添加 Extract 组了。
  GGSCI (HaviPori) 1> ADD EXTRACT emp_ext, TRANLOG, BEGIN NOWEXTRACT added.
  您在这里指定了 TRANLOG,这意味着事务(重做)日志成为数据源。BEGIN 后面可以是该日志中的一个时间戳以便从该时刻开始进行处理,也可以是 NOW 以便立即开始处理。

ogg oracle goldengate 能实现数据转换吗
可以实现。
ogg功能很强大。

Oracle Goldengate目前支持主被动式的双向配置,换而言之OGG可以将来自于激活的主库的数据变化完全复制到从库中,从库在不断同步数据的同时已经为计划内的和计划外的outages做好了故障切换的准备,也就是我们说的Live Standby。这里我们重点介绍一下配置Oracle Goldengate Live Standby系统的步骤,和具体的故障切换过程。


如果自己搞不定可以找ASKMACLEAN专业ORACLE数据库修复团队成员帮您恢复!



SQL> conn clinic/clinic
Connected.
SQL> drop table tv;
create table tv (t1 int primary key,t2 int,t3 varchar2(30));
Table dropped.

SQL> 

Table created.

SQL> drop sequence seqt1;

create sequence seqt1 start with 1 increment by 1;
Sequence dropped.

SQL> SQL>
Sequence created.

declare
  rnd number(9,2);
begin
   for i in 1..100000 loop
     insert into tv values(seqt1.nextval,i*dbms_random.value,'MACLEAN IS TESTING');
     commit;
   end loop;
end;
/

/* 以上脚本在primary主库的某个应用账户下创建了测试用的数据,
    接着我们可以使用各种工具将数据初始化到从库中,如果在这个过程中
    希望实时在线数据迁移的话,可以参考《Goldengate实现在线数据迁移》
*/

/* 注意我们在Live Standby的环境中往往需要复制sequence序列,以保证切换到备库时业务可以正常进行  */

/* 初始化备库数据后,确保已与主库完全一致 */
primary :
SQL> select sum(t2) from tv;

   SUM(T2)
----------
2498624495

SQL> select last_number from user_sequences;

LAST_NUMBER
-----------
     100001

standby:
SQL> select sum(t2) from tv;

   SUM(T2)
----------
2498624495

SQL> select last_number from user_sequences;

LAST_NUMBER
-----------
     100001
以上完成准备工作后,我们可以进入到正式配置Goldengate live stanby的阶段,包括以下步骤:
配置由主库到备库的extract、replicat、data pump,该步骤同普通的单向复制没有太大的区别
配置由备库到主库的extract、replicat、data pump
启动由主库到备库的extract、replicat、data pump
接下来我们会实践整个配置过程:
1.
创建由主库到备库的extract、data pump、replicat
GGSCI (rh2.oracle.com) 10> dblogin userid maclean
Password: 
Successfully logged into database.

GGSCI (rh2.oracle.com) 11> add trandata clinic.*
Logging of supplemental redo data enabled for table CLINIC.TV


GGSCI (rh2.oracle.com) 4> add extract extstd1,tranlog,begin now
EXTRACT added.

GGSCI (rh2.oracle.com) 5> add exttrail /d01/ext/cl,megabytes 100,extract extstd1
EXTTRAIL added.

GGSCI (rh2.oracle.com) 7> view params extstd1

-- Identify the Extract group:
EXTRACT extstd1
-- Specify database login information as needed for the database:
userid maclean, password maclean
-- Specify the local trail that this Extract writes to:
EXTTRAIL /d01/ext/cl
-- Specify sequences to be captured:
SEQUENCE clinic.seqt1;
-- Specify tables to be captured:
TABLE clinic.*;
-- Exclude specific tables from capture if needed:
-- TABLEEXCLUDE 

GGSCI (rh2.oracle.com) 17> add extract pumpstd1,exttrailsource /d01/ext/cl,begin now
EXTRACT added.

GGSCI (rh2.oracle.com) 98> add rmttrail /d01/rmt/cl,megabytes 100,extract pumpstd1
RMTTRAIL added.

GGSCI (rh2.oracle.com) 129> view params pumpstd1
-- Identify the data pump group:
EXTRACT pumpstd1
userid maclean, password maclean
-- Specify database login information as needed for the database:
userid maclean, password maclean
RMTHOST rh3.oracle.com, MGRPORT 7809
-- Specify the remote trail on the standby system:
RMTTRAIL /d01/rmt/cl
-- Pass data through without mapping, filtering, conversion:
PASSTHRU
sequence clinic.seqt1;
Table clinic.*;


在备库上配置由主库到备库的replicat:

GGSCI (rh3.oracle.com) 4> add replicat repstd1,exttrail /d01/rmt/cl,begin now
REPLICAT added.

GGSCI (rh3.oracle.com) 49> view params repstd1
-- Identify the Replicat group:
REPLICAT repstd1
-- State that source and target definitions are identical:
ASSUMETARGETDEFS
-- Specify database login information as needed for the database:
userid maclean, password maclean
-- Specify tables for delivery:
MAP clinic.*, TARGET clinic.*;
-- Exclude specific tables from delivery if needed:
-- MAPEXCLUDE 

2.
创建由备库到主库的extract、data pump、replicat

GGSCI (rh3.oracle.com) 51> dblogin userid maclean
Password: 
Successfully logged into database.

GGSCI (rh3.oracle.com) 52> add trandata clinic.*
Logging of supplemental redo data enabled for table CLINIC.TV.

/* 不要忘记在备库端的相关表加上追加日志 */

GGSCI (rh3.oracle.com) 53> add extract extstd2,tranlog,begin now
EXTRACT added.

GGSCI (rh3.oracle.com) 54> add exttrail /d01/ext/cl,megabytes 100,extract extstd2
EXTTRAIL added.

GGSCI (rh3.oracle.com) 58> view params extstd2
-- Identify the Extract group:
EXTRACT extstd2
-- Specify database login information as needed for the database:
userid maclean, password maclean
-- Specify the local trail that this Extract writes to:
EXTTRAIL /d01/ext/cl
-- Specify sequences to be captured:
SEQUENCE clinic.seqt1;
-- Specify tables to be captured:
TABLE clinic.*;
-- Exclude specific tables from capture if needed:
-- TABLEEXCLUDE 

GGSCI (rh3.oracle.com) 59> add extract pumpstd2,exttrailsource /d01/ext/cl,begin now
EXTRACT added.

GGSCI (rh3.oracle.com) 60> add rmttrail /d01/rmt/cl,megabytes 100,extract pumpstd2
RMTTRAIL added.

GGSCI (rh3.oracle.com) 63> view params pumpstd2

-- Identify the data pump group:
EXTRACT pumpstd2
userid maclean, password maclean
-- Specify database login information as needed for the database:
userid maclean, password maclean
RMTHOST rh2.oracle.com, MGRPORT 7809
-- Specify the remote trail on the standby system:
RMTTRAIL /d01/rmt/cl
-- Pass data through without mapping, filtering, conversion:
PASSTHRU
sequence clinic.seqt1;
Table clinic.*;

在主库上配置replicat:


GGSCI (rh2.oracle.com) 136> add replicat repstd2,exttrail /d01/rmt/cl,begin now,checkpointtable maclean.ck
REPLICAT added.

GGSCI (rh2.oracle.com) 138> view params repstd2

-- Identify the Replicat group:
REPLICAT repstd2
-- State that source and target definitions are identical:
ASSUMETARGETDEFS
-- Specify database login information as needed for the database:
userid maclean, password maclean
-- Specify tables for delivery:
MAP clinic.*, TARGET clinic.*;
-- Exclude specific tables from delivery if needed:
-- MAPEXCLUDE 

3.
完成以上OGG配置后,可以启动主库到备库的extract、pump、以及replicat:
GGSCI (rh2.oracle.com) 141> start extstd1
Sending START request to MANAGER ...
EXTRACT EXTSTD1 starting


GGSCI (rh2.oracle.com) 142> start pumpstd1
Sending START request to MANAGER ...
EXTRACT PUMPSTD1 starting



GGSCI (rh3.oracle.com) 70> start repstd1
Sending START request to MANAGER ...
REPLICAT REPSTD1 starting

/* 如果你是在offline状态下配置的话,那么此时可以启用应用了*/
接下来我们尝试做有计划的主备库切换演练:
1.
首先停止一切在主库上的应用,这一点和DataGuard Switchover一样。在保证没有活动事务的情况下,才能切换干净。
2.
在主库端使用LAG等命令了解extract的延迟,若返回如"At EOF, no more records to process"的信息,则说明所有事务均已被抽取。
GGSCI (rh2.oracle.com) 144> lag extstd1
Sending GETLAG request to EXTRACT EXTSTD1 ...
Last record lag: 0 seconds.
At EOF, no more records to process.

在EOF的前提下关闭extract:
GGSCI (rh2.oracle.com) 146> stop extstd1 
Sending STOP request to EXTRACT EXTSTD1 ...
Request processed.

3.
同样对pump使用LAG命令,若返回如"At EOF, no more records to process"的信息,则说明已抽取的数据都被发送到备库了。
GGSCI (rh2.oracle.com) 147> lag pumpstd1
Sending GETLAG request to EXTRACT PUMPSTD1 ...
Last record lag: 3 seconds.
At EOF, no more records to process.

在EOF的前提下,关闭data pump
GGSCI (rh2.oracle.com) 148> stop pumpstd1
Sending STOP request to EXTRACT PUMPSTD1 ...
Request processed.

3.
检查备库端replicat的同步情况,如返回"At EOF, no more records to process.",则说明所有记录均被复制。
GGSCI (rh3.oracle.com) 71> lag repstd1
Sending GETLAG request to REPLICAT REPSTD1 ...
Last record lag: 5 seconds.
At EOF, no more records to process.

在EOF的前提下关闭replicat

GGSCI (rh3.oracle.com) 72> stop repstd1
Sending STOP request to REPLICAT REPSTD1 ...
Request processed.

4.
紧接着我们可以在备库上为业务应用用户赋予必要的insert、update、delete权限,启用各种触发器trigger及cascade delete约束等;
以上手段在主库上对应的操作是收回应用业务的权限,disable掉各种触发器及cascade delete约束,
之所以这样做是为了保证在任何时候扮演备库角色的数据库均不应当接受任何除了OGG外的手动的或者应用驱动的业务数据变更,
以保证主备库间的数据一致。

5.
修改原备库上的extract的启动时间到现在,已保证它不去抽取那些之前的重做日志

GGSCI (rh3.oracle.com) 75> alter extstd2 ,begin now
EXTRACT altered.

GGSCI (rh3.oracle.com) 76> start extstd2

Sending START request to MANAGER ...
EXTRACT EXTSTD2 starting


若之前没有启动由备库到主库的pump和replicat的话可以在此时启动:

GGSCI (rh3.oracle.com) 78> start pumpstd2

Sending START request to MANAGER ...
EXTRACT PUMPSTD2 starting

GGSCI (rh2.oracle.com) 161> start repstd2

Sending START request to MANAGER ...
REPLICAT REPSTD2 starting

6.此时我们可以正式启动在原备库现在的主库上的应用了


接下来我们尝试回切到原主库上:
1.前提步骤与之前的切换相似,首先停止在原备库上的任何应用,
之后使用LAG命令确认extract和replicat的进度,在确认后关闭extract和replicat。
完成在主库上的维护工作:包括赋予权限,启用触发器等等。

2.修改原主库上的extract的开始时间为当前,保证它不去处理之前的重做日志:
GGSCI (rh2.oracle.com) 165> alter extract extstd1,begin now
EXTRACT altered.

3.此时我们已经可以启动在原主库现在的主库上的应用了

4.启动最早配置的由主库到备库的extract、pump、replicat:

GGSCI (rh2.oracle.com) 166> start extstd1

Sending START request to MANAGER ...
EXTRACT EXTSTD1 starting

GGSCI (rh2.oracle.com) 171> start pumpstd1

Sending START request to MANAGER ...
EXTRACT PUMPSTD1 starting

GGSCI (rh3.oracle.com) 86> start repstd1

Sending START request to MANAGER ...
REPLICAT REPSTD1 starting


以上完成了OGG的Live Standby中主备库之间的计划内的切换Switchover,That's Great!



松江区13991061382: oracel golden gate 是什么意思 -
家欢小儿: Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源 数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步.Oracle Golden Gate可以在异构的IT基础结构(包括几乎 所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以 在应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数 据库升级和移植、双业务中心等多个场景下应用.同时,Oracle Golden Gate 可以实现一 对一、广播(一对多)、聚合(多对一)、双向、点对点、级联等多种灵活的拓扑结构.

松江区13991061382: 如何安装oracle goldengate studio -
家欢小儿: Rac 与单实例不同之处在与 rac 上的 goldengate 需要安装在 共享存储上,以下为详细步骤: 首先在 oracle rac 上安装 goldengate,因为使用的 oracle 版本比较新,goldengate 版本也比较 新,所以很多以前的的配置方法需要一些小的修改

松江区13991061382: 如何利用Oracle golden gate 分发数据库同步消息至ActiveMQ -
家欢小儿: 利用Oracle golden gate 分发数据库同步消息至ActiveMQ 引言 Oracle golden gate是甲骨文推出的一款数据库同步软件,可以实现异构数据库之间的亚秒级同步,它不仅仅支持Oracle,还支持Mysql和一些业界常用数据库.Ogg可以自动抽取表级...

松江区13991061382: oracle goldengate可以免费使用么 -
家欢小儿: OGG,只要不打补丁,不需要官方提供技术支持,它就是可以免费的

松江区13991061382: oracle goldengate 12c 支持哪些系统 -
家欢小儿: 当然有关系. goldengate支持多种数据库,对于不同操作系统,不同数据库以及不同的数据库版本,都有自己特殊的一个安装包. 对于oracle数据库而言,需要考虑数据库的宿主操作系统. 12以前还需要考虑oracle数据库的版本,12以后应该是不用考虑了.

松江区13991061382: oracle goldengate 只能同步表数据吗 -
家欢小儿: 是的,它自身定位是软件级的数据复制技术,主要解决数据的增、删、改,利用的数据库日志.

松江区13991061382: 如何运用oracle golden gate实现数据双向实时的复制 -
家欢小儿: 建议用oracle 用户安装,设置oralce用户的环境变量:LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib:$ORACLE_GOLDENGATE:$ORACLE_HOME/libLD_LIBRARY_PATH 中必须有 $ORACLE_HOME/lib 才能执行./ggsci ,否则回报缺少动态库文件的错误:但是这种情况下oracle 数据库运行没有问题.

松江区13991061382: Oracle goldengate ogg要怎么实现主备库切换啊? -
家欢小儿: Oracle Goldengate目前支持主被动式的双向配置,换而言之OGG可以将来自于激活的主库的数据变化完全复制到从库中,从库在不断同步数据的同时已经为计划内的和计划外的outages做好了故障切换的准备,也就是我们说的Live Standby.这...

松江区13991061382: Oracle GoldenGate和Dataguard以及stream复制的区别 -
家欢小儿: Oracle GoldenGate 收费软件,逻辑同步,性能损耗小 带宽要求低 stream 免费,逻辑同步,性能损坏比ogg大一些 Dataguard 除adg外免费, 逻辑或物理同步,适用于灾备环境

松江区13991061382: oracle goldengate需要序列号吗 -
家欢小儿: 如果你只是进行异地容灾的话,只需要下载Oracle GoldenGate on Oracle Media Pack for Microsoft Windows就行了,注意选择适合你的oracle数据库版本的goldengate.至于director则是用来监控和管理的工具,不是必须的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网