While replicating 9i Supported DDL, the following errors are observed on target Shareplex due to Oracle error ORA-14080:
Info 2010-12-21 10:11:38.884580 999522 1 Poster launched, pid = 999522 (posting from SPLEX, queue QUEUE_NAME, to SPLEX)
Notice 2010-12-21 10:11:42.799004 999522 772 s:2 Poster: ORA-14080: partition cannot be split along the specified high bound. (posting from SPLEX, queue QUEUE_NAME, to SPLEX) [module osp]
Error 2010-12-21 10:11:42.799756 999522 772 s:2 Poster: Poster exit on 9i ddl error due to ORA-14080: partition cannot be split along the specified high bound. on ALTER TABLE "OWNER"."PARTITION_TABLE_NAME" SPLIT PARTITION PT_R9... (posting from SPLEX, queue QUEUE_NAME, to SPLEX) [module opo]
Info 2010-12-21 10:11:42.842777 1716420 1 Poster exited with code=1, pid = 999522 (posting from SPLEX, queue QUEUE_NAME, to SPLEX)
There is already a partition with a specified high bound for the specified value. Partitions need to be split on a value higher than the next range down but lower that the next range up.
The error may occur when replicating 9i Supported DDL (by configuring the parameter SP_OCT_REPLICATE_ALL_DDL to 1 on source). The error can happen if the tables are independently created on source and target and the target table has a partition range that does not correspond with that on the source table. The subsequent DDL to split partition replicated to the target and failed.
The problem can be resolved in one of the following ways:
A. On target ignore the DDL by configuring the parameter SP_OPO_STOP_ON_DDL_ERR to 0 for the time being and restart Post. From this point on all DDL errors will be ignored by Post. Once the Post is past the problematic DDL, the parameter can be reset to the default of 0 by the sp_ctrl command “reset param <parameter name>”. Keeping it enabled indefinitely is not a good idea. See SOL21396 for details. In brief:
sp_ctrl>set param SP_OPO_STOP_ON_DDL_ERR 0
To enable it back
sp_ctrl>reset param SP_OPO_STOP_ON_DDL_ERR
B. Configure the parameter SP_OPO_CONT_ON_ERR to ignore the Oracle error ORA-14080. See SOL277 for details.
C. If it was not an intent to replicate 9i Supported DDL (typically the DDL on non-replicating tables), then disable the feature by setting the parameter SP_OCT_REPLICATE_ALL_DDL to 0 on source. To do this:
sp_ctrl>reset param SP_OCT_REPLICATE_ALL_DDL (the parameter is live and will take place immediately).
The above will prevent this issue in the future. Use resultion A, B or D to clear the current error.
D. Modify the target table so as to make the partition definition same as that of the source table and restart Post.
Here are details on ORA-14080:
ORA-14080: | partition cannot be split along the specified high bound |
Cause: | User attempted to split a partition along a bound which either collates higher than that of the partition to be split or lower than that of a partition immediately preceding the one to be split |
Action: | Ensure that the bound along which a partition is to be split collates lower than that of the partition to be split and higher that that of a partition immediately preceding the one to be split |
Also see SOL36703 for details on 9i Supported DDL, and SOL53602 for details on pros and cons of using this feature.