Oracle database migration fails with ORA-01450 maximum key length (3118) exceeded
症状
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
原因
The tablespace block size is too small and needs to be increased.
ソリューション
When creating the tablespace, specify a larger value for the blocksize:
CREATE TABLESPACE fisheye ... BLOCKSIZE 16K;
Last modified on Mar 30, 2016
Powered by Confluence and Scroll Viewport.