1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
|
<sect1 id="oracle">
<title>Oracle notes
<indexterm><primary>Oracle</primary><secondary>notes</secondary></indexterm>
</title>
<sect2 id="oracle-intro">
<title>Introduction</title>
<para>By Anton Zemlyanov <email>az@hotmail.ru</email>
</para>
<sect3 id="oracle-why">
<title>Why Oracle?</title>
<para>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. </para>
</sect3>
<sect3 id="oracle-req">
<title>mnoGoSearch+Oracle8 Installation Requirements</title>
<para>In order to install mnoGoSearch with Oracle RDBMS support you must ensure the following requirements are met:</para>
<itemizedlist>
<listitem>
<para>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. </para>
</listitem>
<listitem>
<para>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. </para>
</listitem>
<listitem>
<para>glibc 2.0 or glibc 2.1. Oracle 8.0.5.X libraries are built for glibc 2.0.</para>
</listitem>
</itemizedlist>
</sect3>
<sect3 id="oracle-platforms">
<title>Currently supported/tested platforms</title>
<para>Oracle versions:</para>
<itemizedlist>
<listitem>
<para>Oracle 8.0.5.X </para>
</listitem>
<listitem>
<para>Oracle 9i </para>
</listitem>
</itemizedlist>
<para>Operation systems:</para>
<itemizedlist>
<listitem>
<para>Linux Red Hat 6.1 (2.2.X + glibc 2.0) </para>
</listitem>
</itemizedlist>
<para>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. </para>
</sect3>
</sect2>
<sect2 id="oracle-install">
<title>Compilation, Installation and Configuration</title>
<sect3 id="oracle-compil">
<title>Compilation</title>
<para>Oracle 8.0.5.X and Linux Red Hat 6.1</para>
<para>
<programlisting>
./Configure --with-oracle8=oracle_home_dir
make
make install
</programlisting>
</para>
<para>If you have any troubles, try to put
<literal>CC = i386-glibc20-linux-gcc</literal> in the
<filename>src/Makefile</filename>, this is an old version of gcc compiler
for glibc 2.0. </para>
</sect3>
<sect3 id="oracle-install-config">
<title>Installation and Configuration</title>
<para>
<emphasis>Check whether Oracle Server and Oracle Client work properly.</emphasis>
</para>
<para>First, try if mnoGoSearch service is accessible
<programlisting>
[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)
</programlisting>
</para>
<para>Second, try to connect to Oracle Server with svrmgrl and check whether mnoGoSearch tables were created
<programlisting>
[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.
</programlisting>
</para>
<para>
<emphasis>Check the library paths in /etc/ld.so.conf</emphasis>
</para>
<para>
<programlisting>
[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
</programlisting>
</para>
<para>This file should contain the line
<literal>oracle_home_path/lib</literal> to ensure mnoGoSearch will be
able to open libclntsh.so, the shared Oracle Client library</para>
<para>
<emphasis>Make the symbolic link:</emphasis>
</para>
<para>
<userinput>
ln -s /oracle8/app/oracle/product/8.0.5/network/admin/tnsnames.ora /etc
</userinput>
</para>
<para>
<emphasis>Correct the indexer.conf file</emphasis>
</para>
<para>You should specify
<option>DBName</option>, <option>DBUser</option>,
<option>DBPass</option> 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 <filename>tnsnames.ora</filename> file,
DBUSer and DBPass are the Oracle user and his password
correspondingly. You can run the indexer now. </para>
<para>
<emphasis>Setting up search.cgi</emphasis>
</para>
<para>Copy the file
<filename>/usr/local/mnoGoSearch/bin/search.cgi</filename> to
<filename>apache_root/cgi-bin/search.cgi</filename>. Then add two
lines to apache's <filename>http.conf</filename> file:</para>
<literallayout>
SetEnv ORACLE_HOME /oracle8/app/oracle/product/8.0.5
PassEnv ORACLE_HOME
</literallayout>
<para>Correct the
<filename>search.htm</filename> to provide DBName, DBUser, DBPass
information. <filename>search.cgi</filename> should work now. </para>
</sect3>
</sect2>
</sect1>
|