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.