怎么理解Oracle数据库的单向复制

73次阅读
没有评论

共计 5375 个字符,预计需要花费 14 分钟才能阅读完成。

这篇文章主要讲解了“怎么理解 Oracle 数据库的单向复制”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“怎么理解 Oracle 数据库的单向复制”吧!

1. 
环境需求:

两台装有 Oracle 软件的虚拟机服务器,并配置好监听及安装好数据库

Linux

Oracle

OGG

IP

SID

OGG1

CentOS 6.5

11.2.0.4

12.2.0.2

192.168.1.211

ogg

OGG2

CentOS 6.5

11.2.0.4

12.2.0.2

192.168.1.212

ogg

2. 
配置准备

2.1 
创建操作系统用户

useradd ogg -g oinstall

新建安装目录

[root@ogg1 ~]# mkdir -p /u01/ogg

[root@ogg1 ~]# chown -R ogg.oinstall /u01/ogg

[root@ogg1 ~]# chmod 775 /u01/ogg/

2.2 
设置用户的环境变量,尤其要给它指定 lib 库的位置以及 ggsci 位置:

export PATH

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

export GG_HOME=/u01/ogg

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export PATH=$GG_HOME:$PATH

2.3 正式安装

[root@ogg1 soft]# unzip 122022_fbo_ggs_Linux_x64_shiphome.zip

[ogg@ogg1 ~]$ cd /u01/soft/fbo_ggs_Linux_x64_shiphome/Disk1/

[ogg@ogg1 Disk1]$ ./runInstaller

 
安装步骤略,将安装目录设置为 /u01/ogg

3. 
复制准备:实现单表复制

检查相关参数是否开启

Select LOG_MODE , FORCE_LOGGING, SUPPLEMENTAL_LOG_DATA_min from v$database;

3.1 
开启参数(需开启归档模式和强制归档)

SQL show parameter golde

NAME    TYPE   VALUE

———————————— ———– ——————————

enable_goldengate_replication    boolean  FALSE

SQL alter system set enable_goldengate_replication=true;

SQL select SUPPLEMENTAL_LOG_DATA_min from v$database;

SUPPLEME

——–

NO

SQL alter database add supplemental log data;

Database altered.

SQL select SUPPLEMENTAL_LOG_DATA_min from v$database;

SUPPLEME

——–

YES

SQL alter system archive log current;

SQL shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL startup mount

ORACLE instance started.

Total System Global Area  830930944 bytes

Fixed Size    2257800 bytes

Variable Size    536874104 bytes

Database Buffers    289406976 bytes

Redo Buffers    2392064 bytes

Database mounted.

SQL alter database force logging;

Database altered.

SQL alter database archivelog;

Database altered.

SQL alter database open;

Database altered.

System altered.

源端和目标端分别设置

源端:create user ogg_source identified by oracle default tablespace users;
grant alter session to ogg_source;
grant create session to ogg_source;
grant connect to ogg_source;
grant resource to ogg_source;
grant select any dictionary to ogg_source;
grant select any table to ogg_source;
grant flashback any table to ogg_source;
grant alter any table to ogg_source;

目标:create user ogg_target identified by oracle default tablespace users;
grant alter session to ogg_target;
grant create session to ogg_target;
grant connect to ogg_target;
grant resource to ogg_target;
grant select any dictionary to ogg_target;
grant select any table to ogg_target;
grant flashback any table to ogg_target;
grant alter any table to ogg_target;
grant insert any table to ogg_target;
grant update any table to ogg_target;
grant delete any table to ogg_target;

3.2 
Ogg 配置

问题解决:无法登陆,是 oracle_sid 设置问题

GGSCI (ogg1) 5 dblogin userid ogg_source ,password oracle

ERROR: Unable to connect to database using user ogg_source. Please check privileges.

Unable to initialize database connection because of error ORA-12162: TNS:net service name is incorrectly specified.

GGSCI (ogg1) 6 exit

[ogg@ogg1 ~]$ export ORACLE_SID=ogg

[ogg@ogg1 ~]$ /u01/ogg/ggsci

Oracle GoldenGate Command Interpreter for Oracle

Version 12.2.0.2.2 OGGCORE_12.2.0.2.0_PLATFORMS_170630.0419_FBO

Linux, x64, 64bit (optimized), Oracle 11g on Jun 30 2017 14:42:26

Operating system character set identified as UTF-8.

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

GGSCI (ogg1) 1 dblogin userid ogg_source ,password oracle

Successfully logged into database.

1. 
配置需要抽取的表或者用户

Add trandata luc.*

2. 
配置全局参数

./GLOBALS
必须大写

事务配置及检查点表

3. 
配置 MGR 进程

Edit params mgr

port 7809

4. 
配置 Extract 脚本

配置参数,使用本地的方式。

Edit params EXT_1

EXTRACT EXT_1
USERID ogg_source, PASSWORD oracle
EXTTRAIL /home/oracle/ogg/ogg_work/dirdat/ss
TABLE N1.*;

添加抽取进程,从数据库日志中抓取数据。

  ADD EXTRACT EXT_1, TRANLOG, BEGIN NOW

EXTRACT added.

配置本地队列, 然后启动

ADD EXTTRAIL /home/oracle/ogg/ogg_work/dirdat/ss, EXTRACT EXT_1

start EXT_1

Sending START request to MANAGER …

EXTRACT EXT_1 starting

配置完成之后,就可以查看是否能够正常抽取了,可以看到是没有正常启动。状态现在还是 STOPPED

info EXT_1

EXTRACT  EXT_1  Initialized  2016-11-11 16:16  Status STOPPED

Checkpoint Lag  00:00:00 (updated 00:01:22 ago)

Log Read Checkpoint  Oracle Redo Logs

  2016-11-11 16:16:04  Seqno 0, RBA 0

5. 
配置 Pump 脚本

  edit params dpump_1

EXTRACT dpump_1

PASSTHRU

RMTHOST 10.127.2.32, MGRPORT 1530

RMTTRAIL  /home/oracle/ogg/ogg_work/dirdat/ss

TABLE n1.*;

ADD EXTRACT dpump_1,EXTTRAILSOURCE /home/oracle/ogg/ogg_work/dirdat/ss

EXTRACT added.

ADD RMTTRAIL /home/oracle/ogg/ogg_work/dirdat/ss, EXTRACT dpump_1

RMTTRAIL added.

配置完成之后,启动 PUMP 进程。

start dpump_1

Sending START request to MANAGER …

EXTRACT DPUMP_1 starting 查看 DUMP 进程的信息如下:

info dpump_1

EXTRACT  DPUMP_1  Last Started 2016-11-11 16:24  Status RUNNING

Checkpoint Lag  00:00:00 (updated 00:00:04 ago)

Process ID  53479

Log Read Checkpoint  File /home/oracle/ogg/ogg_work/dirdat/ss000000000

  First Record  RBA 0

6. 
配置 Application 脚本

配置投递队列参数,将数据应用到目标库,这里有个映射关系,就是源库的 n1.* 和目标库的 n1.* 是对应的。

edit params rep_1

REPLICAT REP_1

USERID ogg_target, PASSWORD oracle

ASSUMETARGETDEFS

HANDLECOLLISIONS

MAP n1.*,TARGET n1.*;
添加投递队列

ADD REPLICAT REP_1, EXTTRAIL /home/oracle/ogg/ogg_work/dirdat/ss,CHECKPOINTTABLE ogg_target.CHKPTAB

REPLICAT added.

start REP_1

Sending START request to MANAGER …

REPLICAT REP_1 starting

启动成功后的状态是这样的。

INFO REP_1

REPLICAT  REP_1  Last Started 2016-11-11 17:02  Status RUNNING

Checkpoint Lag  00:00:00 (updated 00:00:02 ago)

Process ID  69571

Log Read Checkpoint  File /home/oracle/ogg/ogg_work/dirdat/ss000000000

  First Record  RBA 0

报错执行:

BEGIN

   DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(

   grantee = ogg_target ,

   grant_privileges = true);

   END;

   /

循环插入 1 -100

begin
for i in 1 .. 100 loop
  insert into  luc.test values (i,’uuu’);
  end loop;

end;

/

插入大量数据测试是否同步:

insert into luc.test select level,level||’obj’from dual connect by level 500000;

感谢各位的阅读,以上就是“怎么理解 Oracle 数据库的单向复制”的内容了,经过本文的学习后,相信大家对怎么理解 Oracle 数据库的单向复制这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计5375字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)