源端数据库配置
[oracle@king01 ~]$ sqlplus / as sysdba
SQL> create tablespace goldengate datafile '+DATAFILE' size 1024M;
Tablespace created.
SQL> create user ggs identified by ggs default tablespace goldengate;
User created.
SQL> grant dba to ggs;
Grant succeeded.
SQL> select log_mode from v$database;
LOG_MODE
------------------------------------
ARCHIVELOG
SQL> alter database force logging;
Database altered.
SQL> select force_logging from v$database;
FORCE_LOGGING
------------------------------
YES
SQL> alter database add supplemental log data;
Database altered.
SQL> col supplemental_log_data_min for a30
SQL> select supplemental_log_data_min from v$database;
SUPPLEMENTAL_LOG_DATA_MIN
------------------------------
YES
SQL> alter system set enable_goldengate_replication=true;
System altered.
SQL> alter system archive log current;
System altered.
源端安装OGG
[oracle@king01 ~]$ vi .bash_profile
export OGG_HOME=/home/ogg
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$OGG_HOME:$PATH
[oracle@king01 ~]$ source .bash_profile
[oracle@king01 ~]$ mkdir -p /home/ogg
[oracle@king01 ~]$ unzip fbo_ggs_Linux_x64_shiphome
[oracle@king01 ~]$ cd fbo_ggs_Linux_x64_shiphome/Disk1
[oracle@king01 Disk1]$ ./runInstaller
[oracle@king01 ~]$ cd /home/ogg
[oracle@king01 ogg]$ ./ggsci
创建目录
GGSCI (king01) 1> create subdirs
Creating subdirectories under current directory /home/ogg
Parameter files /home/ogg/dirprm: created
Report files /home/ogg/dirrpt: created
Checkpoint files /home/ogg/dirchk: created
Process status files /home/ogg/dirpcs: created
SQL script files /home/ogg/dirsql: created
Database definitions files /home/ogg/dirdef: created
Extract data files /home/ogg/dirdat: created
Temporary files /home/ogg/dirtmp: created
Credential store files /home/ogg/dircrd: created
Masterkey wallet files /home/ogg/dirwlt: created
Dump files /home/ogg/dirdmp: created
源端MANAGER进程组
GGSCI (king01) 2> edit params mgr
PORT 7839
DYNAMICPORTLIST 7840-7939
AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,USECHECKPOINTS, MINKEEPDAYS 7
LAGREPORTHOURS 1
LAGINFOMINUTES 3
LAGCRITICALMINUTES 10
GGSCI (king01) 3> start mgr
Manager started.
GGSCI (king01) 4> info mgr
Manager is running (IP port king01.7839, Process ID 3243).
源端EXTRACT进程组
GGSCI (king01) 5> dblogin userid ggs,password ggs
Successfully logged into database.
GGSCI (king01 as ggs@king) 6> add trandata soe.*
GGSCI (king01 as ggs@king) 7> add extract ext_soe, tranlog, begin now, threads 2
EXTRACT added.
GGSCI (king01 as ggs@king) 8> add exttrail ./dirdat/st,extract ext_soe,megabytes 100
EXTTRAIL added.
GGSCI (king01 as ggs@king) 9> edit params ext_soe
EXTRACT ext_soe
SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")
USERID ggs, PASSWORD ggs
REPORTCOUNT EVERY 30 MINUTES, RATE
REPORTROLLOVER AT 02:00
TRANLOGOPTIONS DBLOGREADER
TRANLOGOPTIONS EXCLUDEUSER ggt
DBOPTIONS ALLOWUNUSEDCOLUMN
EXTTRAIL ./dirdat/st
DISCARDFILE ./dirrpt/ext_soe.dsc,APPEND,MEGABYTES 5
TABLEEXCLUDE SOE.ORDERENTRY_METADATA
TABLE SOE.*;
GGSCI (king01 as ggs@king) 10> start ext_soe
Sending START request to MANAGER ...
EXTRACT EXT_SOE starting
GGSCI (king01 as ggs@king) 11> info ext_soe
EXTRACT EXT_SOE Last Started 2018-11-08 17:05 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:03 ago)
Process ID 7172
Log Read Checkpoint Oracle Redo Logs
2018-11-09 08:53:58 Thread 1, Seqno 74, RBA 27958272
SCN 0.1517400 (1517400)
Log Read Checkpoint Oracle Redo Logs
2018-11-09 08:54:01 Thread 2, Seqno 58, RBA 19046912
SCN 0.1517403 (1517403)
源端PUMP进程组
GGSCI (king01 as ggs@king) 12> add extract pmp_soe, exttrailsource ./dirdat/st
EXTRACT added.
GGSCI (king01 as ggs@king) 13> add rmttrail ./dirdat/rt,EXTRACT pmp_soe,megabytes 100
RMTTRAIL added.
GGSCI (king01 as ggs@king) 14> edit params pmp_soe
EXTRACT pmp_soe
PASSTHRU
RMTHOST 192.168.1.203, MGRPORT 7839, COMPRESS
RMTTRAIL ./dirdat/rt
TABLE SOE.*;
GGSCI (king01 as ggs@king) 15> start pmp_soe
Sending START request to MANAGER ...
EXTRACT PMP_SOE starting
GGSCI (king01 as ggs@king) 16> info pmp_soe
EXTRACT PMP_SOE Last Started 2018-11-08 17:01 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:07 ago)
Process ID 6690
Log Read Checkpoint File /home/ogg/dirdat/st000000000
First Record RBA 1382
GGSCI (king01 as ggs@king) 17> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT_SOE 00:00:00 00:00:01
EXTRACT RUNNING PMP_SOE 00:00:00 00:00:04
源端备份数据库
[oracle@king01 ~]$ mkdir backup
[oracle@king01 ~]$ rman target /
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/backup/%F';
RMAN> RUN {
BACKUP INCREMENTAL LEVEL=0 TAG 'FULL_BACKUP' DATABASE
FORMAT '/home/oracle/backup//soe_full_incr_%s_%p_%T'
PLUS ARCHIVELOG
FORMAT '/home/oracle/backup/soe_arch_%s_%p_%T' delete all input;
DELETE NOPROMPT OBSOLETE;
CROSSCHECK BACKUP;
DELETE NOPROMPT EXPIRED BACKUP;
}
[oracle@king01 ~]$ sqlplus / as sysdba
SQL> select to_char(current_scn) from v$database;
TO_CHAR(CURRENT_SCN)
----------------------------------------
1419545
SQL> alter system archive log current ;
System altered.
SQL> alter system archive log current ;
System altered.
SQL> alter system archive log current ;
System altered.
[oracle@king01 ~]$ rman target /
RMAN> backup archivelog all FORMAT '/home/oracle/backup/soe_arch_%s_%p_%T';
[oracle@king01 ~]$ cd /home/oracle/backup
[oracle@king01 backup]$ scp * 192.168.1.203:/home/oracle/backup
目标端恢复数据库
[oracle@king03 ~]$ mkdir -p /home/oracle/admin/kingdb/adump
[oracle@king03 ~]$ mkdir -p /home/oracle/oradata/kingdb/
[oracle@king03 ~]$ mkdir -p /home/oracle/fast_recovery_area/kingdb
[oracle@king03 ~]$ cd $ORACLE_HOME/dbs
[oracle@king03 dbs]$ vi initkingdb.ora
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/home/oracle/oradata/kingdb/control01.ctl','/home/oracle/fast_recovery_area/kingdb/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='kingdb'
*.db_recovery_file_dest='/home/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=21474836480
*.diagnostic_dest='/home/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=kingdbXDB)'
*.enable_goldengate_replication=TRUE
*.job_queue_processes=0
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=536870912
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=2147483648
*.undo_tablespace='UNDOTBS1'
[oracle@king03 dbs]$ sqlplus / as sysdba
SQL> create spfile from pfile;
File created.
[oracle@king03 dbs]$ orapwd file=/home/oracle/product/11.2.0/db_1/dbs/orapwkingdb password=oracle entries=5 force=y
[oracle@king03 ~]$ rman target /
RMAN> startup nomount
Total System Global Area 1068937216 bytes
Fixed Size 2260088 bytes
Variable Size 322962312 bytes
Database Buffers 687865856 bytes
Redo Buffers 55848960 bytes
RMAN> set DBID=4126740520
executing command: SET DBID
RMAN> run {
set CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/backup/%F';
restore controlfile from autobackup;
}
RMAN> alter database mount;
RMAN> run {
set until scn 1419545;
SET NEWNAME FOR DATAFILE 1 to '/home/oracle/oradata/kingdb/system.dbf';
SET NEWNAME FOR DATAFILE 2 to '/home/oracle/oradata/kingdb/sysaux.dbf';
SET NEWNAME FOR DATAFILE 3 to '/home/oracle/oradata/kingdb/undotbs1.dbf';
SET NEWNAME FOR DATAFILE 4 to '/home/oracle/oradata/kingdb/users.dbf';
SET NEWNAME FOR DATAFILE 5 to '/home/oracle/oradata/kingdb/undotbs2.dbf';
SET NEWNAME FOR DATAFILE 6 to '/home/oracle/oradata/kingdb/soe.dbf';
SET NEWNAME FOR DATAFILE 7 to '/home/oracle/oradata/kingdb/goldengate.dbf';
SET NEWNAME FOR DATAFILE 8 to '/home/oracle/oradata/kingdb/tpcc.dbf';
SET NEWNAME FOR DATAFILE 9 to '/home/oracle/oradata/kingdb/tpch.dbf';
SET NEWNAME FOR TEMPFILE 1 to '/home/oracle/oradata/kingdb/temp01.dbf';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
SWITCH TEMPFILE ALL;
recover database;
}
[oracle@king03 ~]$ sqlplus / as sysdba
SQL> alter database rename file '+DATAFILE/kingdb/onlinelog/group_1.261.991491245' to '/home/oracle/oradata/kingdb/redo1_a.log';
SQL> alter database rename file '+FRA/kingdb/onlinelog/group_1.257.991491249' to '/home/oracle/oradata/kingdb/redo1_b.log';
SQL> alter database rename file '+DATAFILE/kingdb/onlinelog/group_2.262.991491251' to '/home/oracle/oradata/kingdb/redo2_a.log';
SQL> alter database rename file '+FRA/kingdb/onlinelog/group_2.258.991491255' to '/home/oracle/oradata/kingdb/redo2_b.log';
SQL> alter database rename file '+DATAFILE/kingdb/onlinelog/group_3.265.991491457' to '/home/oracle/oradata/kingdb/redo3_a.log';
SQL> alter database rename file '+FRA/kingdb/onlinelog/group_3.259.991491461' to '/home/oracle/oradata/kingdb/redo3_b.log';
SQL> alter database rename file '+DATAFILE/kingdb/onlinelog/group_4.266.991491465' to '/home/oracle/oradata/kingdb/redo4_a.log';
SQL> alter database rename file '+FRA/kingdb/onlinelog/group_4.260.991491469' to '/home/oracle/oradata/kingdb/redo4_b.log';
SQL> alter database open resetlogs;
SQL> SQL> select thread#,status,enabled from v$thread;
THREAD# STATUS ENABLED
---------- ------------------ ------------------------
1 OPEN PUBLIC
2 CLOSED PUBLIC
SQL> alter database disable thread 2;
Database altered.
SQL> select thread#,status,enabled from v$thread;
THREAD# STATUS ENABLED
---------- ------------------ ------------------------
1 OPEN PUBLIC
2 CLOSED DISABLED
目标端数据库设置
[oracle@king03 ~]$ sqlplus / as sysdba
SQL> select 'alter table '||owner||'.'||table_name||' disable constraint '||constraint_name||';'
from dba_constraints
where constraint_type in ('R') and
owner in('SOE')
order by status,owner;
'ALTERTABLE'||OWNER||'.'||TABLE_NAME||'DISABLECONSTRAINT'||CONSTRAINT_NAME||';'
--------------------------------------------------------------------------------
alter table SOE.ADDRESSES disable constraint ADD_CUST_FK;
alter table SOE.ORDERS disable constraint ORDERS_CUSTOMER_ID_FK;
alter table SOE.ORDER_ITEMS disable constraint ORDER_ITEMS_PRODUCT_ID_FK;
alter table SOE.INVENTORIES disable constraint INVENTORIES_PRODUCT_ID_FK;
alter table SOE.ORDER_ITEMS disable constraint ORDER_ITEMS_ORDER_ID_FK;
alter table SOE.INVENTORIES disable constraint INVENTORIES_WAREHOUSES_FK;
6 rows selected.
SQL> select 'alter trigger '||owner||'.'||trigger_name||' disable;'
from dba_triggers
where owner in('SOE')
order by status,owner;
no rows selected
SQL> drop user ggs cascade;
User dropped.
SQL> create user ggt identified by ggt default tablespace goldengate;
User created.
SQL> grant dba to ggt;
Grant succeeded.
目标端安装OGG
[oracle@king03 ~]$ vi .bash_profile
export OGG_HOME=/home/ogg
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$OGG_HOME:$PATH
[oracle@king03 ~]$ source .bash_profile
[oracle@king03 ~]$ mkdir -p /home/ogg
[oracle@king03 ~]$ unzip fbo_ggs_Linux_x64_shiphome
[oracle@king03 ~]$ cd fbo_ggs_Linux_x64_shiphome/Disk1
[oracle@king03 Disk1]$ ./runInstaller
[oracle@king03 Disk1]$ cd /home/ogg
[oracle@king03 ogg]$ ./ggsci
创建目录
GGSCI (king03) 1> create subdirs
Creating subdirectories under current directory /home/ogg
Parameter files /home/ogg/dirprm: created
Report files /home/ogg/dirrpt: created
Checkpoint files /home/ogg/dirchk: created
Process status files /home/ogg/dirpcs: created
SQL script files /home/ogg/dirsql: created
Database definitions files /home/ogg/dirdef: created
Extract data files /home/ogg/dirdat: created
Temporary files /home/ogg/dirtmp: created
Credential store files /home/ogg/dircrd: created
Masterkey wallet files /home/ogg/dirwlt: created
Dump files /home/ogg/dirdmp: created
目标端MANAGER进程组
GGSCI (king03) 2> edit params mgr
PORT 7839
DYNAMICPORTLIST 7840-7939
AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,USECHECKPOINTS, MINKEEPDAYS 7
LAGREPORTHOURS 1
LAGINFOMINUTES 3
LAGCRITICALMINUTES 10
GGSCI (king03) 3> start mgr
Manager started.
GGSCI (king03) 4> info mgr
Manager is running (IP port king03.7839, Process ID 13650).
目标端REPLICAT进程组
GGSCI (king03) 5> edit params ./GLOBALS
checkpointtable ggt.chkpt
GGSCI (king03) 6> dblogin userid ggt,password ggt
Successfully logged into database.
GGSCI (king03 as ggt@king) 7> add checkpointtable
No checkpoint table specified. Using GLOBALS specification (ggt.chkpt)...
Successfully created checkpoint table ggt.chkpt.
GGSCI (king03 as ggt@king) 8> add replicat rep_soe,exttrail ./dirdat/rt
REPLICAT added.
GGSCI (king03 as ggt@king) 9> edit param rep_soe
REPLICAT rep_soe
SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")
USERID ggt, PASSWORD ggt
REPORTCOUNT EVERY 30 MINUTES, RATE
REPORTROLLOVER AT 02:00
DBOPTIONS SUPPRESSTRIGGERS
REPERROR DEFAULT, ABEND
DISCARDFILE ./dirrpt/rep_soe.dsc,APPEND,MEGABYTES 5
ASSUMETARGETDEFS
ALLOWNOOPUPDATES
MAP SOE.*, TARGET SOE.*;
GGSCI (king03 as ggt@king) 10> start replicat rep_soe, aftercsn 1419545
Sending START request to MANAGER ...
REPLICAT REP_SOE starting
GGSCI (king03 as ggt@king) 11> info rep_soe
REPLICAT REP_SOE Last Started 2018-11-08 17:10 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:03 ago)
Process ID 28121
Log Read Checkpoint File /home/ogg/dirdat/rt000000000
First Record RBA 0
GGSCI (king03 as ggt@king) 12> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP_SOE 00:00:00 00:00:01
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341