mnoGoSearch 3.3.9 reference manual: Full-featured search engine software
Prev | Chapter 7. Storing mnoGoSearch data | Next

# Oracle notes

## Introduction

By Anton Zemlyanov `<az@hotmail.ru>`

### Why Oracle?

Oracle is a powerful, tunable, scalable and reliable industrial RDBMS. It provides some functionalities which are absent in simple freeware RDBMS like MySQL and PostgreSQL, such as: transactions support, concurrency and consistency, data integrity, partitioning, replication, cost-based and rule-based optimizers, parallel execution, redo logs, RAW devices and many other features. Although Oracle is a very functional database, the additional qualities like reliability impose some overhead. In fact, providing many advantages Oracle has some disadvantages. For example great tenability requires more experienced DBA, redo logs support provide great reliability against instance and media failures but requires more efficient disk system. I think you should select Oracle as a database for mnoGoSearch if you want to search through hundreds of megabytes or several gigabytes of information, reliability is one of the primary concerns, need high availability of the database, and you are ready to pay higher sums for hardware and Oracle DBA to achieve better quality of service.

### mnoGoSearch+Oracle8 Installation Requirements

In order to install mnoGoSearch with Oracle RDBMS support you must ensure the following requirements are met:

- Oracle8 Server must be properly installed on any computer accessible from the site where mnoGoSearch is to be installed. See the documentation provided with your Oracle server.

- Oracle client software and libraries must be installed on the site where you plan to install mnoGoSearch. I strongly recommend to install utilities also, it helps you test the client and server accessibility.

- glibc 2.0 or glibc 2.1. Oracle 8.0.5.X libraries are built for glibc 2.0.

### Currently supported/tested platforms

Oracle versions:

- Oracle 8.0.5.X

- Oracle 9i

Operation systems:

- Linux Red Hat 6.1 (2.2.X + glibc 2.0)

Oracle Server may be run on any platform supporting TCP/IP connections. I see no difficulties to port mnoGoSearch Oracle driver to any commercial and freeware UNIX systems, any contribution is appreciated.

## Compilation, Installation and Configuration

### Compilation

Oracle 8.0.5.X and Linux Red Hat 6.1

    ./Configure --with-oracle8=oracle_home_dir
    make
    make install

If you have any troubles, try to put `CC = i386-glibc20-linux-gcc` in the `src/Makefile`, this is an old version of gcc compiler for glibc 2.0.

### Installation and Configuration

Check whether Oracle Server and Oracle Client work properly.

First, try if mnoGoSearch service is accessible

     [oracle@ant oracle]$ tnsping mnoGoSearch 3

    TNS Ping Utility for Linux: Version 8.0.5.0.0 - Production on 29-FEB-00 09:46:12
    (c) Copyright 1997 Oracle Corporation.  All rights reserved.

    Attempting to contact (ADDRESS=(PROTOCOL=TCP)(Host=ant.gpovz.ru)(Port=1521))
    OK (10 msec)
    OK (0 msec)
    OK (10 msec)

Second, try to connect to Oracle Server with svrmgrl and check whether mnoGoSearch tables were created

    [oracle@ant oracle]$ svrmgrl command='connect scott/tiger@mnoGoSearch'

    Oracle Server Manager Release 3.0.5.0.0 - Production

    (c) Copyright 1997, Oracle Corporation.  All Rights Reserved.

    Oracle8 Release 8.0.5.1.0 - Production
    PL/SQL Release 8.0.5.1.0 - Production

    Connected.
    SVRMGR> SELECT table_name FROM user_tables;
    TABLE_NAME
    ------------------------------
    DICT
    DICT10
    DICT11
    DICT12
    DICT16
    DICT2
    DICT3
    DICT32
    DICT4
    DICT5
    DICT6
    DICT7
    DICT8
    DICT9
    PERFTEST
    ROBOTS
    STOPWORD
    TAB1
    URL
    19 rows selected.

Check the library paths in /etc/ld.so.conf

    [oracle@ant oracle]$ cat /etc/ld.so.conf
    /usr/X11R6/lib
    /usr/lib
    /usr/i486-linux-libc5/lib
    /usr/lib/qt-2.0.1/lib
    /usr/lib/qt-1.44/lib
    /oracle8/app/oracle/product/8.0.5/lib

This file should contain the line `oracle_home_path/lib` to ensure mnoGoSearch will be able to open libclntsh.so, the shared Oracle Client library

Make the symbolic link:

`ln -s /oracle8/app/oracle/product/8.0.5/network/admin/tnsnames.ora /etc`

Correct the `indexer.conf` file

You should specify `DBName`, `DBUser`, `DBPass` in order for mnoGoSearch to be able to connect to Oracle Server. DBName is the service name, it should have the same name that was written to `tnsnames.ora` file, DBUSer and DBPass are the Oracle user and his password correspondingly. You can run the indexer now.

Setting up search.cgi

Copy the file `/usr/local/mnoGoSearch/bin/search.cgi` to `apache_root/cgi-bin/search.cgi`. Then add two lines to apache's `http.conf` file:

SetEnv ORACLE_HOME /oracle8/app/oracle/product/8.0.5
PassEnv ORACLE_HOME

Correct the `search.htm` to provide DBName, DBUser, DBPass information. `search.cgi` should work now.

Prev | Home | Next
mnoGoSearch performance issues | Up | IBM DB2 notes