Difference between revisions of "Installing Oracle"

From EPrints Documentation
Jump to: navigation, search
(Installation)
(Troubleshooting)
Line 73: Line 73:
  
 
At the moment starting the indexer from the Admin page doesn't work, due to the Oracle environment variables not being present.
 
At the moment starting the indexer from the Admin page doesn't work, due to the Oracle environment variables not being present.
 +
 +
=== ORA-24327: need explicit attach before authenticating a user ===
 +
 +
Make sure you have set $c->{dbhost}.

Revision as of 11:28, 7 December 2010

 This page is a working document. Oracle support hasn't been fully tested yet.

Added in version 3.1.0.

Requirements

  • An Oracle database with an account that has full privileges
  • Oracle database client
  • DBD::Oracle

You should set the Oracle table character coding to "utf-8".

Installing Oracle Express Edition

This is only required if you wish to use the free Oracle DB for testing/development purposes.

See Oracle on Ubuntu.

Adding Oracle Environment Variables

Make life with Oracle easier by adding the Oracle environment variables to the global system profile.

Create /etc/profile.d/oracle.sh (replace 10.2.0 with the correct version for your Oracle server/client):

ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
ORACLE_SID=XE
PATH=$PATH:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export ORACLE_HOME
export ORACLE_SID
export PATH
export LD_LIBRARY_PATH

You will need to log out/in for this change to take effect.

GQLPlus

The sqlplus tool has very poor shell support. For a better shell tool use gqlplus.

Installation

Install EPrints as normal but don't create a (MySQL) database.

Edit archives/[repoid]/cfg/cfg.d/database.pl to add the Oracle configuration:

   #$c->{dbname} = 'eprints';
   #$c->{dbhost} = 'localhost';
   #$c->{dbport} = undef;
   #$c->{dbsock} = undef;
   $c->{dbdriver} = 'Oracle';
   $c->{dbhost} = 'localhost';
   $c->{dbsid} = 'XE';
   $c->{dbuser} = 'HR';
   $c->{dbpass} = 'HR';

dbsid is the name of the Oracle database.

Create the database and import subjects:

./bin/epadmin create_tables [repoid]
./bin/import_subjects [repoid]
./bin/epadmin create_user [repoid]

Continue configuring EPrints.

Troubleshooting

Depending on your server configuration you may find you need to set environment variables for DBD::Oracle to find your Oracle client:

export ORACLE_SID=XE
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

At the moment starting the indexer from the Admin page doesn't work, due to the Oracle environment variables not being present.

ORA-24327: need explicit attach before authenticating a user

Make sure you have set $c->{dbhost}.