OGG源端和目标端已经部署完成并正常同步,现添加一个用户进行同步。
一、OGG源端操作
mgr进程
不用动
[oracle@ptyyzxk dirprm]$ more mgr.prm
port 7809
DYNAMICPORTLIST 7800-7909
purgeoldextracts /oradata/oggdata/*,usecheckpoints, minkeepdays 7
lagreporthours 1
extract进程
编辑参数文件,添加table CEN_ORIGINAL_V20.*;
edit params extga
extract extga
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
SETENV (ORACLE_SID=appl)
userid ogg, password Sys#1007_gI
fetchoptions nousesnapshot
--TRANLOGOPTIONS DBLOGREADER
gettruncates
exttrail /oradata/oggdata/ga
table AGREEMENT.*;
table CEN_SYS.*;
table RHIN.*;
table RHIN_BAK.*;
table RHIN_BUFFER.*;
table CEN_ORIGINAL_V20.*;
pump进程
编辑参数文件
edit params dpga
extract dpga
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
rmthost 172.17.112.112, mgrport 7809
rmttrail /oggdata/dirdat/ga
passthru
dynamicresolution
table AGREEMENT.*;
table CEN_SYS.*;
table RHIN.*;
table RHIN_BAK.*;
table RHIN_BUFFER.*;
添加trandata
GGSCI (ptyyzxk) 2> dblogin userid ogg, password ******
GGSCI (ptyyzxk) 2> add trandata CEN_ORIGINAL_V20.*
# 查看trandata信息
GGSCI (ptyyzxk as ogg@appl) 4> info trandata CEN_ORIGINAL_V20.*
重启进程
stop extract extga
stop extract dpga
start extract extga
start extract dpga
二、expdp导出
查询scn号,根据scn号导出,后续replicat进行也需要根据scn启动
select to_char(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER) from dual;
18897681845339
导出:源端磁盘不够了,通过network_link从目标端执行导出。
注:在目标端建立dblink指向源端。
然后再目标端执行expdp,通过network_link就可以导出源库内容到目标端了。
vi CEN_ORIGINAL_V20.par
network_link=link_appl
logfile=CEN_ORIGINAL_V20.log
directory=dump_dir
schemas=CEN_ORIGINAL_V20
cluster=n
parallel=4
dumpfile=CEN_ORIGINAL_V20_%U.dmp
compression=ALL
flashback_scn=18897681845339
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
nohup expdp ogg/Sys#1007_gI@172.17.112.112:1521/ptzxk parfile=/oggdata/datadump/CEN_ORIGINAL_V20.par &
三、OGG目标端操作
ggsci中新建参数文件,文件名和后面的进程名保持一致,名字不能太长,10个字符限制?
edit params REP_ORI
replicat REP_ORI
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
SETENV (ORACLE_SID=ptzxk1)
userid ogg, password Sys#1007_gI
numfiles 4000
assumetargetdefs
discardfile /oggdata/dirdat/rep_temp.dsc,append,megabytes 1024
ALLOWNOOPUPDATES --允许执行无实际变化的update
map CEN_ORIGINAL_V20.*, target CEN_ORIGINAL_V20.*;
查看Checkpoint table信息:
Checkpoint table有两种类型:主表和辅助表。主表根据用户定义名称来来创建,辅助表会自动创建。辅助表就是transaction table。名称是checkpoint table名上加_LOX
可以通过查看ogg用户的user_tables查看表名。
ogg.CHECKPOINT
创建replicat进程
dblogin userid ogg, password *****
add REPLICAT REP_ORI exttrail /oggdata/dirdat/ga,BEGIN NOW,checkpointtable ogg.CHECKPOINT
四、执行导入
注意:需要先创建replicat进行,再执行导入。
虽然参数指定了remap_tablespace,但创建用户的时候还是会找原始的表空间。
需要手动创建。
vi IMP_CEN_ORIGINAL_V20.par
directory=dump_dir
dumpfile=CEN_ORIGINAL_V20_%U.dmp
logfile=IMP_CEN_ORIGINAL_V20.log
parallel=4
remap_tablespace=%:CEN_ORIGINAL
TRANSFORM=DISABLE_ARCHIVE_LOGGING:y
手工创建表空间。
create tablespace CEN_ORIGINAL_V20 DATAFILE '+DATA/PTZXK/DATAFILE/CEN_ORIGINAL_V20_01.dbf' size 1g autoextend on next 100m;
执行导入
nohup impdp ogg/Sys#1007_gI@172.17.112.112:1521/ptzxk parfile=/oggdata/datadump/IMP_CEN_ORIGINAL_V20.par &
五、启动replicat
根据前面导出的scn号启动replicat进程。
start REP_ORI,aftercsn 18897681845339
如果是先导入,后创建的replica进程,则重置下:
alter replicat REP_ORI, extseqno 0
alter replicat REP_ORI, extrba 0
info all 查看同步情况。
至此,同步完成。
合并replicat进程
这时候目标端存在多个replicat进程。合并的话可以等待2个进程的seqno和RBA一致后。
1.修改REPV20参数文件,把REP_ORI中同步的用户添加进去。
2.停止2个replicat进程。
3.启动REPV20进程。
4.同步正常后,删除REP_ORI进程。 delete REPLICAT REP_ORI
GGSCI (ptzxk01) 5> info REPLICAT REP_ORI
REPLICAT REP_ORI Last Started 2024-03-19 16:49 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:03 ago)
Process ID 21487
Log Read Checkpoint File /oggdata/dirdat/ga000000661
2024-03-19 16:50:06.458779 RBA 318491029
GGSCI (ptzxk01) 6> info REPLICAT REPV20
REPLICAT REPV20 Last Started 2024-03-19 11:25 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:09 ago)
Process ID 20526
Log Read Checkpoint File /oggdata/dirdat/ga000000661
2024-03-19 16:50:06.458779 RBA 318491029
GGSCI (ptzxk01) 16> delete REPLICAT REP_ORI
Could not delete DB checkpoint for REPLICAT REP_ORI (Database login required to delete database checkpoint)
GGSCI (ptzxk01) 17> dblogin userid ogg, password Sys#1007_gI
Successfully logged into database.
GGSCI (ptzxk01 as ogg@ptzxk1) 18> delete REPLICAT REP_ORI
Deleted REPLICAT REP_ORI.