Multidomain MDM
- Multidomain MDM 10.3 HotFix 1
- All Products
update C_REPOS_ZDT_STATUS set ACTIVE_UPGRADE_IND = 1; BEGIN cmxzdt.v_zdt_ind:= -1; END; / commit;
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.stop_replication_replay(out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.cleanup_obsolete_objects(out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.configure_ggs_event_replicat( cmxzdt.zdt_local ); cmxzdt.stop_event_queue( out_error_msg, out_return_code ); dbms_output.put_line('out_return_code => ' || out_return_code || ' out_error_msg => ' || SUBSTR( out_error_msg, 1, 250 )); END; /
Run From | Steps |
---|---|
Hub Console |
|
API | To run a tokenize batch job on all records, use the ExecuteBatchGenerateMatchTokens request with the
fullRestripInd set to
1 .
The following code sample shows an ExecuteBatchGenerateMatchTokens request to create match tokens for all records in the C_PARTY base object:
|
where:exec CMXZDT.add_backfill_task(backfill type, 'base object name', 'api',sequence); COMMIT;
exec CMXZDT.add_backfill_task('TRUST_BACKFILL','C_CUSTOMER','B', 1); COMMIT;
Run From | Steps |
---|---|
Hub Console |
|
API |
|
BEGIN cmxzdt.disable_bo_replication ('C_AGREEMENT'); commit; END; /
BEGIN cmxzdt.remap_table_replication ('C_AGREEMENT_XREF', 'C_AGREEMENT_XREF_NEW_FROM_A'); commit; END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN CMXZDT.CONFIGURE_GGS_EVENT_REPLICAT(CMXZDT.ZDT_LOCAL); cmxzdt.start_event_queue( out_error_msg, out_return_code ); dbms_output.put_line('out_return_code => ' || out_return_code || ' out_error_msg => ' || SUBSTR( out_error_msg, 1, 250 )); END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.start_replication_replay(in_env_type => cmxzdt.zdt_local, out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.wait_replay_catchup(in_timeout_minutes => 5, out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.disable_all_batch(in_affected_zdt_env => cmxzdt.zdt_source, in_timeout_minutes => 30, out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.enable_all_write_sif(in_affected_zdt_env => cmxzdt.zdt_target, in_timeout_minutes => 5, out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.synchronize_sequences(out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.disable_all_write_sif(in_affected_zdt_env => cmxzdt.zdt_source, in_timeout_minutes => 5, out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.stop_replication(out_error_message => out_error_msg, out_return_code => out_return_code, in_timeout_minutes => 60); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
Run From | Steps |
---|---|
Hub Console |
|
API |
|
Delete from c_repos_zdt_backfill_task; COMMIT;
Run From | Steps |
---|---|
Hub Console |
|
API | To run the tokenize batch job on dirty records only, use the ExecuteBatchGenerateMatchTokens request with the
fullRestripInd set to
0 .
The following code sample shows an ExecuteBatchGenerateMatchTokens request to create match tokens for dirty records in the C_PARTY base object:
|
Sample SQL: DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.enable_all_batch(in_affected_zdt_env => cmxzdt.zdt_target, in_timeout_minutes => 5, out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
GGSCI (hostname) 1> dblogin userid USER password "Password" GGSCI (hostname) 1> stop * GGSCI (hostname) 1> delete * -- hit 'y' when Prompted for n/y GGSCI (hostname) 1> DELETE TRACETABLE [SCHEMA_NAME].GGS_EVENT_TRACE GGSCI (hostname) 1> DELETE CHECKPOINTTABLE [SCHEMA_NAME].GGS_EVENT_CHECKPOINT GGSCI (hostname) 1> DELETE CHECKPOINTTABLE [SCHEMA_NAME].GGS_CHECKPOINT
GGSCI (hostname) 1> dblogin userid USER password "Password" GGSCI (hostname) 1> stop * GGSCI (hostname) 1> delete * -- hit 'y' when Prompted for n/y GGSCI (hostname) 1> DELETE TRACETABLE [SCHEMA_NAME].GGS_EVENT_TRACE GGSCI (hostname) 1> DELETE CHECKPOINTTABLE [SCHEMA_NAME].GGS_EVENT_CHECKPOINT
<GoldenGate install directory>/dirchkdel * <GoldenGate install directory>/dirdatdel enva/* del envb/* <GoldenGate install directory>/dirprmdel eqenv*.prm* del pqenv*.prm* del rqenv*.prm* del e_env*.prm* del p_env*.prm* del *.def <GoldenGate install directory>/dirrptdel *.dsc del e_env*.rpt del eqenv*.rpt del p_env*.rpt del pqenv*.rpt del r_env*.rpt del rqenv*.rpt
/* Repository tables for ZDT */ delete from C_REPOS_ZDT_EVENT_QUEUE; delete from C_REPOS_ZDT_REPLICAT_EXCEPTION; update C_REPOS_ZDT_ENV_STATE set state = NULL, state_ts = NULL, state_desc = NULL, updated_by=NULL, update_date=NULL; /* Tables for Oracle GoldenGate */ delete from GGS_CHECKPOINT; -- Do not drop this table delete from GGS_CHECKPOINT_LOX; -- Do not drop this table drop table GGS_EVENT_CHECKPOINT cascade constraints; drop table GGS_EVENT_CHECKPOINT_LOX cascade constraints; drop table GGS_EVENT_TRACE cascade constraints; commit;
DECLARE PROCEDURE unregister_table( prowid_table VARCHAR2 , ptable VARCHAR2 ) AS sql_text VARCHAR2(2000); BEGIN debug_print( ' Start to unregister a table: ' || ptable || ' rowid_table ' || prowid_table ); FOR cc2 IN ( SELECT k.rowid_key_constraint, k.key_type_str, kc.rowid_column , kc.rowid_parent_column FROM c_repos_key_constraint k , c_repos_key_constraint_col kc , c_repos_column c WHERE k.rowid_key_constraint = kc.rowid_key_constraint AND kc.rowid_column = c.rowid_column AND c.rowid_table = prowid_table ) LOOP debug_print( ' Start to deprecate constraints : ' || cc2.rowid_key_constraint || ' ' || cc2.rowid_column || ' rowid_table ' || prowid_table ); sql_text := 'DELETE c_repos_key_constraint_col ' || 'WHERE rowid_column = ''' || cc2.rowid_column || ''''; debug_print( sql_text ); EXECUTE IMMEDIATE sql_text; sql_text := 'DELETE c_repos_key_constraint ' || 'WHERE rowid_key_constraint = ''' || cc2.rowid_key_constraint || ''''; debug_print( sql_text ); EXECUTE IMMEDIATE sql_text; END LOOP; sql_text := 'DELETE c_repos_column ' || 'WHERE rowid_table = ''' || prowid_table || ''''; debug_print( sql_text ); EXECUTE IMMEDIATE sql_text; sql_text := 'DELETE c_repos_table ' || 'WHERE rowid_table = ''' || prowid_table || ''''; debug_print( sql_text ); EXECUTE IMMEDIATE sql_text; COMMIT; debug_print(' unregistered table: ' || prowid_table); END unregister_table; BEGIN debug_print(' ============================================= '); debug_print('==> Start to drop temporary ZDT objects'); debug_print('==> '); FOR i IN ( SELECT DISTINCT u.object_type t, u.object_name n FROM user_procedures u WHERE object_name IN ( 'ZDT_C_REPOS_TASK_DATA_GET_XREF' , 'GENERATE_CMXZDT_TEMP' , 'CMXZDT_TEMP' ) ) LOOP debug_print( '==> Start to drop temporary ' || i.t || ' ' || i.n || '' ); EXECUTE IMMEDIATE 'drop ' || i.t || ' ' || i.n || ''; END LOOP; debug_print( '==> ' ); debug_print( '==> End dropping temporary ZDT objects' ); debug_print( ' ============================================= ' ); debug_print( ' ============================================= ' ); debug_print( '==> Start to unregister deprecated tables ' ); debug_print( '==> ' ); FOR cc IN ( SELECT rowid_table, table_name , SUBSTR( table_name, LENGTH( table_name ) - 3, 4 ) AS postfix , SUBSTR( UPPER( table_name ), 1, LENGTH( table_name ) - 5 ) AS bo_name FROM c_repos_table WHERE type_ind = 14 AND ( ( table_name LIKE '%_HUID' ) OR ( table_name LIKE '%_HFKM' ) OR ( table_name LIKE '%_HMXR' ) ) ) LOOP debug_print( ' Start to unregister table : ' || cc.table_name || ' rowid_table ' || cc.rowid_table ); unregister_table( cc.rowid_table, cc.table_name ); END LOOP; debug_print( '==> ' ); debug_print( '==> End unregistering deprecated tables ' ); debug_print( ' ============================================= ' ); debug_print( 'Changes are completed for all tables. ' ); END; /
update c_repos_zdt_status set REPLICATION_TARGET_IND = 0; COMMIT;
update C_REPOS_ZDT_STATUS set ACTIVE_UPGRADE_IND = 0; BEGIN cmxzdt.v_zdt_ind:= -1; END; / COMMIT;
BEGIN CMXZDT.GET_ZDT_CONFIG; CMXZDT.CONFIGURE_SEQUENCES; END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN CMXZDT.CONFIGURE_GGS_EVENT_REPLICAT(CMXZDT.zdt_local); CMXZDT.CONFIGURE_GGS_EVENT_EXTRACT(CMXZDT.zdt_local); CMXZDT.START_EVENT_QUEUE(out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
BEGIN CMXZDT.CONFIGURE_GGS_EXTRACT(CMXZDT.zdt_local); END; /
DECLARE out_error_msg VARCHAR2(32000); out_return_code INT; BEGIN cmxzdt.start_replication_extract(in_env_type => cmxzdt.zdt_local, out_error_message => out_error_msg, out_return_code => out_return_code); dbms_output.put_line('out_return_code => '||out_return_code||' out_error_msg => '||substr(out_error_msg,1,250)); END; /
SQL-CMX_ORS_B> select current_scn from v$database; CURRENT_SCN ----------- 2880593
c:> <ors username>/<password>@<tns entry name> directory=<DATA_PUMP_DIR_OBJECT> dumpfile=<mrm_backup_envb.dmp> logfile=<mrm_backup_after_upgrade.log> parallel=8 job_name=<EXPORT_AFTER_UPGRADE> flashback_scn=<CURRENT_SCN from the previous step>