Oracle database migration fails with ORA-01450 maximum key length (3118) exceeded

Still need help?

The Atlassian Community is here for you.

Ask the community

Symptoms

When migrating the database to Oracle, the following appears in the atlassian-fisheye-YYYY-MM-DD.log:

2014-08-20 10:27:17,608 ERROR [ThreadPool2 ] fisheye DBEditHelper-doGet - Database migration failed: com.cenqua.crucible.hibernate.CruDBException: Problem with constraints script /opt/crucible/fecru-3.5.2/sql/ORACLE/schema/constraints_87.sql
com.cenqua.crucible.hibernate.CruDBException: Problem with constraints script /opt/crucible/fecru-3.5.2/sql/ORACLE/schema/constraints_87.sql
	at com.cenqua.crucible.hibernate.DefaultDBControl.addConstraints(DefaultDBControl.java:411)
	at com.cenqua.crucible.hibernate.OracleDBControl.addConstraints(OracleDBControl.java:122)
	at com.atlassian.crucible.migration.item.DBImporter.importData(DBImporter.java:145)
	at com.atlassian.crucible.actions.admin.database.DBEditHelper$ImportRunner.call(DBEditHelper.java:90)
	at com.atlassian.crucible.actions.admin.database.DBEditHelper$ImportRunner.call(DBEditHelper.java:72)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)
Caused by: com.cenqua.crucible.hibernate.CruDBException: SQL script error on line 131: "create index cru_idx_stored_path on cru_stored_path (cru_path);" 
(ORA-01450: maximum key length (3118) exceeded
), please contact http://www.atlassian.com/support/
	at com.cenqua.crucible.hibernate.DefaultDBControl.executeScript(DefaultDBControl.java:593)
	at com.cenqua.crucible.hibernate.DefaultDBControl.executeScript(DefaultDBControl.java:524)
	at com.cenqua.crucible.hibernate.DefaultDBControl.addConstraints(DefaultDBControl.java:405)
	... 10 more
Caused by: java.sql.SQLException: ORA-01450: maximum key length (3118) exceeded

Cause

The tablespace block size is too small and needs to be increased.

Resolution

When creating the tablespace, specify a larger value for the blocksize:

CREATE TABLESPACE fisheye ... BLOCKSIZE 16K; 
Last modified on Mar 30, 2016

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.