search
HomeDatabaseMysql TutorialOracle GoldenGate 安装配置

Oracle GoldenGate软件可以实现异构平台数据的迁移和同步,它是基于数据库日志结构变化,通过解析源端在线日志或归档日志获得数据

Oracle GoldenGate软件可以实现异构平台数据的迁移和同步,它是基于数据库日志结构变化,通过解析源端在线日志或归档日志获得数据增量,再将这些变化应用到目标数据库,从而实现源库和目标库的数据同步。下面通过一个简单的示例,详细介绍利用GoldenGate实现Oracle数据库之间的同步。

1. 安装
1.1 下载介质
GoldenGate的安装介质可以从Oracle的官网上下载。

1.2 配置GoldenGate用户
 下载完成后将其拷贝到源和目标的数据库的相应位置解压完成后,,即可以开始进行配置。
# su – oracle
 $ mkdir /u01/ogg
 $ cd /u01/ogg
 $ tar xvf ogg_for_oracle_linux_86.tar
注意,如果使用Oracle 11g的数据库,需要创建一个link文件。
$ 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.so

配置环境变量
$ vi ~/.bash_profile
添加如下的内容:
export ORACLE_BASE=/u01/app/oracle
 export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/ogg
 export GGATE=/u01/app/oracle/ogg

1.3 配置ogg的应用目录
 使用ggsci工具,创建必要的目录。

$ cd /u01/app/oracle/ogg
 $ ./ggsci

Oracle GoldenGate Command Interpreter for Oracle
 Version 11.1.1.0.0 Build 078
 Linux, x86, 32bit (optimized), Oracle 10 on Jul 28 2015 10:20:18

Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.

GGSCI (gridcontrol) 1> create subdirs

至此,GoldenGate基本的安装完成。
 注意:此部分需要在源端和目标端完成。

2. 源数据库配置
GoldenGate主要通过抓取源端数据库重做日志进行分析,将获取的数据应用到目标端,实现数据同步。因此,为了让GoldenGate能够正常工作,源数据库需要进行一定配置。

2.1配置源数据库必须是 归档模式、附加日志、强制日志

 


--查看

SQL> CONN / AS SYSDBA
 SQL>select db.LOG_MODE, db.SUPPLEMENTAL_LOG_DATA_MIN, db.FORCE_LOGGING

  from v$database db

SQL>--修改

SQL>--1)archivelog

SQL>shutdown immediate

SQL>startup mount

SQL>alter database archivelog;

SQL>alter database open;

SQL>--2)force logging

SQL>alter database force logging;

SQL>--3)supplemental log data

SQL>alter database add supplemental log data;

2.2 关闭数据库的recyblebin
 SQL>alter system set recyclebin=off scope=spfile;
如果数据库是10g,需要关闭recyclebin并重启;或者手工purge recyclebin。

2.3 配置复制的DDL支持


SQL>create user ogg identified by ogg default tablespace users temporary tablespace temp;
SQL>grant connect,resource,unlimited tablespace to ogg;

SQL>grant execute on utl_file to ogg;

 

SQL>@$GGATE/marker_setup.sql;

SQL>@$GGATE/ddl_setup.sql;

SQL>@$GGATE/role_setup.sql;

SQL>grant GGS_GGSUSER_ROLE to ogg;

SQL>@$GGATE/ddl_enable.sql;

 

2.4创建源端和目标端的测试用户


--在源端执行
SQL>create user ss identified by oracle default tablespace users temporary tablespace temp;

SQL>grant connect,resource,unlimited tablespace to ss;

 

--在目标上执行

SQL>create user rr identified by oracle default tablespace users temporary tablespace temp;

SQL>grant connect,resource,unlimited tablespace to rr;

 

3. 配置manager
在源端和目标端分别执行下面的步骤。

3.1 源端创建manager
 [ogg@node1 gg]$ ./ggsci
 GGSCI (node1) 1> info all
 Program Status Group Lag Time Since Chkpt
 MANAGER STOPPED
 GGSCI (node1) 2> edit params mgr
 PORT 7809
 GGSCI(node1) 3> start manager
 Manager started.
在目标端
[ogg@node2 gg]$ ./ggsci
 GGSCI (node2) 1> info all
 Program Status Group Lag Time Since Chkpt
 MANAGER STOPPED
 GGSCI (node2) 2> edit params mgr
 PORT 7809
 GGSCI(node2) 3> start manager
 Manager started.

4. 配置源端复制队列
GGSCI (node1) 1> add extract ext1, tranlog, begin now
 EXTRACT added.
 GGSCI (node1) 2> add exttrail /u01/ogg/dirdat/lt, extract ext1
 EXTTRAIL added.

GGSCI (node1) 3> edit params ext1
 extract ext1
 userid , password ogg
 rmthost node1, mgrport 7809
 rmttrail /u01/ogg/dirdat/lt
 ddl include mapped objname sender.*;
 table sender.*;

GGSCI (node1) 6> info all
 Program Status Group Lag Time Since Chkpt
 MANAGER STOPPED
 EXTRACT STOPPED EXT1 00:00:00 00:10:55

5. 配置目标端同步队列
5.1 在目标端添加checkpoint表
[oracle@node2 ogg]$ ./ggsci
 GGSCI (node2) 1> edit params ./GLOBAL –添加下列内容
GGSCHEMA ggate
 CHECKPOINTTABLE ggate.checkpoint
 GGSCI (node2) 2> dblogin userid ogg password ogg
 Successfully logged into database.

GGSCI (node2) 3> add checkpointtable ogg.checkpoint
 Successfully created checkpoint table GGATE.CHECKPOINT.

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Explain the role of InnoDB redo logs and undo logs.Explain the role of InnoDB redo logs and undo logs.Apr 15, 2025 am 12:16 AM

InnoDB uses redologs and undologs to ensure data consistency and reliability. 1.redologs record data page modification to ensure crash recovery and transaction persistence. 2.undologs records the original data value and supports transaction rollback and MVCC.

What are the key metrics to look for in an EXPLAIN output (type, key, rows, Extra)?What are the key metrics to look for in an EXPLAIN output (type, key, rows, Extra)?Apr 15, 2025 am 12:15 AM

Key metrics for EXPLAIN commands include type, key, rows, and Extra. 1) The type reflects the access type of the query. The higher the value, the higher the efficiency, such as const is better than ALL. 2) The key displays the index used, and NULL indicates no index. 3) rows estimates the number of scanned rows, affecting query performance. 4) Extra provides additional information, such as Usingfilesort prompts that it needs to be optimized.

What is the Using temporary status in EXPLAIN and how to avoid it?What is the Using temporary status in EXPLAIN and how to avoid it?Apr 15, 2025 am 12:14 AM

Usingtemporary indicates that the need to create temporary tables in MySQL queries, which are commonly found in ORDERBY using DISTINCT, GROUPBY, or non-indexed columns. You can avoid the occurrence of indexes and rewrite queries and improve query performance. Specifically, when Usingtemporary appears in EXPLAIN output, it means that MySQL needs to create temporary tables to handle queries. This usually occurs when: 1) deduplication or grouping when using DISTINCT or GROUPBY; 2) sort when ORDERBY contains non-index columns; 3) use complex subquery or join operations. Optimization methods include: 1) ORDERBY and GROUPB

Describe the different SQL transaction isolation levels (Read Uncommitted, Read Committed, Repeatable Read, Serializable) and their implications in MySQL/InnoDB.Describe the different SQL transaction isolation levels (Read Uncommitted, Read Committed, Repeatable Read, Serializable) and their implications in MySQL/InnoDB.Apr 15, 2025 am 12:11 AM

MySQL/InnoDB supports four transaction isolation levels: ReadUncommitted, ReadCommitted, RepeatableRead and Serializable. 1.ReadUncommitted allows reading of uncommitted data, which may cause dirty reading. 2. ReadCommitted avoids dirty reading, but non-repeatable reading may occur. 3.RepeatableRead is the default level, avoiding dirty reading and non-repeatable reading, but phantom reading may occur. 4. Serializable avoids all concurrency problems but reduces concurrency. Choosing the appropriate isolation level requires balancing data consistency and performance requirements.

MySQL vs. Other Databases: Comparing the OptionsMySQL vs. Other Databases: Comparing the OptionsApr 15, 2025 am 12:08 AM

MySQL is suitable for web applications and content management systems and is popular for its open source, high performance and ease of use. 1) Compared with PostgreSQL, MySQL performs better in simple queries and high concurrent read operations. 2) Compared with Oracle, MySQL is more popular among small and medium-sized enterprises because of its open source and low cost. 3) Compared with Microsoft SQL Server, MySQL is more suitable for cross-platform applications. 4) Unlike MongoDB, MySQL is more suitable for structured data and transaction processing.

How does MySQL index cardinality affect query performance?How does MySQL index cardinality affect query performance?Apr 14, 2025 am 12:18 AM

MySQL index cardinality has a significant impact on query performance: 1. High cardinality index can more effectively narrow the data range and improve query efficiency; 2. Low cardinality index may lead to full table scanning and reduce query performance; 3. In joint index, high cardinality sequences should be placed in front to optimize query.

MySQL: Resources and Tutorials for New UsersMySQL: Resources and Tutorials for New UsersApr 14, 2025 am 12:16 AM

The MySQL learning path includes basic knowledge, core concepts, usage examples, and optimization techniques. 1) Understand basic concepts such as tables, rows, columns, and SQL queries. 2) Learn the definition, working principles and advantages of MySQL. 3) Master basic CRUD operations and advanced usage, such as indexes and stored procedures. 4) Familiar with common error debugging and performance optimization suggestions, such as rational use of indexes and optimization queries. Through these steps, you will have a full grasp of the use and optimization of MySQL.

Real-World MySQL: Examples and Use CasesReal-World MySQL: Examples and Use CasesApr 14, 2025 am 12:15 AM

MySQL's real-world applications include basic database design and complex query optimization. 1) Basic usage: used to store and manage user data, such as inserting, querying, updating and deleting user information. 2) Advanced usage: Handle complex business logic, such as order and inventory management of e-commerce platforms. 3) Performance optimization: Improve performance by rationally using indexes, partition tables and query caches.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools