Oracle Installation
Version 9.1 by Vincent Massol on 2013/04/11
Contents
Installation steps
Steps:
- Download and install a version of Oracle Database. For example Oracle Express.
- Download the corresponding Oracle JDBC Drivers and copy the JAR (e.g. ojdbc6.jar in WEB-INF/lib/)
- Start Oracle and connect to it with a DBA or system user. For example use the Oracle SQL*Plus command-line tool: connect system;
- Create the wiki user and schema:create user xwiki
identified by xwiki; - Create a tablespace (which is the Oracle term for what you know as a "database" on Microsoft SQL Server):select *
from dba_data_files
;
--
-- Pick an adequate name from the list above.
--
create tablespace xwiki
datafile '/opt/SOMETHING/oracle/oradata/SID/xwiki01.dbf'
size 1m
autoextend on
maxsize 1g
; - Create tables of the xwiki user by default in the new tablespace:alter user xwiki
default tablespace xwiki
temporary tablespace temp
;
alter user xwiki quota unlimited on xwiki
; - Give sufficient privileges to the xwiki user:grant create session to xwiki;
grant create table to xwiki;
grant create sequence to xwiki; - Tell XWiki to use Oracle. To do this, edit the WEB-INF/hibernate.cfg.xml file where you have expanded the XWiki WAR file and uncommented the Oracle part. Make sure to review the connection.url property. For example a typical Oracle Express would be:<property name="connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
Troubleshooting
ORA-01400: cannot insert NULL into ("XWIKI"."XWIKILARGESTRINGS"."XWL_ID")
This error can appear if you're using Oracle JDBC driver 10.2.0.1.0. The solution is to use version 10.2.0.2 or greater of the driver.
SetString can only process strings of less than 32766 chararacters
If you see an error that says something like this:
Error number 3201 in 3: Exception while saving document XWiki.XWikiPreferences
Wrapped Exception: could not update: [com.xpn.xwiki.doc.XWikiDocumentArchive#104408758]
com.xpn.xwiki.XWikiException: Error number 3201 in 3: Exception while saving document XWiki.XWikiPreferences
Wrapped Exception: could not update: [com.xpn.xwiki.doc.XWikiDocumentArchive#104408758]
...
Wrapped Exception:
java.sql.SQLException: setString can only process strings of less than 32766 chararacters
...
Wrapped Exception: could not update: [com.xpn.xwiki.doc.XWikiDocumentArchive#104408758]
com.xpn.xwiki.XWikiException: Error number 3201 in 3: Exception while saving document XWiki.XWikiPreferences
Wrapped Exception: could not update: [com.xpn.xwiki.doc.XWikiDocumentArchive#104408758]
...
Wrapped Exception:
java.sql.SQLException: setString can only process strings of less than 32766 chararacters
...
Then that's because Oracle has a limitation of 32K for CLOBs. To overcome it you need to add the following 2 properties in the hibernate.cfg.xml file, as specified in the installation steps section above:
<property name="hibernate.connection.SetBigStringTryClob">true</property>
<property name="hibernate.jdbc.batch_size">0</property>
<property name="hibernate.jdbc.batch_size">0</property>