If you are installing PostGreSQL instead of Oracle, skip this +section.
OpenACS 5.9.0 will install with Oracle 9i but has not been +extensively tested so may still have bugs or tuning issues. See +Andrew Piskorski's Oracle 9i notes for +guidance.
This installation guide attempts to present all of the +information necessary to complete an OpenACS installation. We try +hard to make all of the steps possible in one pass, rather than +having a step which amounts to "go away and develop a profound +understanding of software X and then come back and, in 99% of all +cases, type these two lines." The exception to our rule is +Oracle production systems. This page describes a set of steps to +get a working Oracle development server, but it is unsuitable for production systems. +If you will be using OpenACS on Oracle in a production environment, +you will experience many problems unless you develop a basic +understanding of Oracle which is outside the scope of this +document. T
This document assumes that you'll be installing Oracle on +the same box as AOLserver. For more details on a remote Oracle +installation, see Daryl Biberdorf's document.
Useful links to find help on how to set up Oracle under Linux +are:
Production Oracle systems should run on certified platforms. +Follow the metalink note 223718.1to find certified +platforms. If you don't have metalink access, take a look at +the Oracle on Linux FAQ: Which Linux +Distributions Are Directly Supported By Oracle?. In summary, +free and inexpensive Linux distributions are not certified.
You can download the Oracle software from the Oracle Downloads page.
Each Oracle release comes with extensive and usually quite +well-written documentation. Your first step should be to thoroughly +read the release notes for your operating system and your Oracle +version. Find the docs here:
It is generally useful to run a particular Oracle version with +its latest patchset. At the time of writing these were 8.1.7.4 and +9.2.0.5, both of which are considered to be very stable.
To be able to download a patchset, you need a (to-pay-for) +account on Metalink. You may find the appropriate patchset +by following Andrew's suggestion.
+Oracle is very well-documented software, the online +documentation comes with printable PDFs and full-text search. +Altogether there is more than 20.000 pages of documentation, so do +not expect to understand Oracle within in a few hours. The best +starting pointing into Oracle is the Concepts book. Here's the +8i version and the 9.2 version.
To give you an idea of how configurable Oracle is and how much +thought you may need to put into buying the proper hardware and +creating a sane setup, you should thoroughly read Cary +Millsap's Configuring Oracle Server for VLDB and the +Optimal Flexible Architecture standard.
Throughout these instructions, we will refer to a number of +configurable settings and advise certain defaults. With the +exception of passwords, we advise you to follow these defaults +unless you know what you are doing. Subsequent documents will +expect that you used the defaults, so a change made here will +necessitate further changes later. For a guide to the defaults, +please see the section +called “Defaults”.
In order for OpenACS to work properly you need to set the +environment appropriately.
+export ORACLE_BASE=/ora8/m01/app/oracle +export ORACLE_HOME=$ORACLE_BASE/product/8.1.7 +export PATH=$PATH:$ORACLE_HOME/bin +export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib +export ORACLE_SID=ora8 +export ORACLE_TERM=vt100 +export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data + +umask 022 +
+open_cursors = 500 +
+nls_date_format = "YYYY-MM-DD" +
For additional resources/documentation, please see this +thread and Andrew Piskorski's mini-guide.
+Though Oracle 8.1.7 has an automated installer, we still need to
+perform several manual, administrative tasks before we can launch
+it. You must perform all of these steps as the root
user. We recommend entering the X
+window system as a normal user and then doing a su -
. This command gives you full root
+access.
Login as a non-root user and start X by typing startx
+
+[joeuser ~]$ startx ++
Open a terminal window type and login as root
+[joeuser ~]$ su - +Password: *********** +[root ~]# ++
Create and setup the oracle
+group and oracle
account
We need to create a user oracle
, which is used to install the
+product, as well as starting and stopping the database.
+[root ~]# groupadd dba +[root ~]# groupadd oinstall +[root ~]# groupadd oracle +[root ~]# useradd -g dba -G oinstall,oracle -m oracle +[root ~]# passwd oracle +
You will be prompted for the New Password and Confirmation of +that password.
+Setup the installation location for Oracle. While Oracle can
+reside in a variety of places in the file system, OpenACS has
+adopted /ora8
as the base
+directory.
+Note: the Oracle
+install needs about 1 GB free on /ora8
to install successfully.
+[root ~]# mkdir /ora8 +root:/ora8# cd /ora8 +root:/ora8# mkdir -p m01 m02 m03/oradata/ora8 +root:/ora8# chown -R oracle.dba /ora8 +root:/ora8# exit ++
Set up the oracle
user's
+environment
Log in as the user oracle
by
+typing the following:
+[joeuser ~]$ su - oracle +Password: ******** ++
Use a text editor to edit the .bash_profile
file in the oracle
account home directory.
+[oracle ~]$ emacs .bash_profile +
You may get this error trying to start emacs:
+Xlib: connection to ":0.0" refused by server +Xlib: Client is not authorized to connect to Server +emacs: Cannot connect to X server :0. +Check the DISPLAY environment variable or use `-d'. +Also use the `xhost' program to verify that it is set to permit +connections from your machine. +
If so, open a new terminal window and do the following:
+[joeuser ~]$ xhost +localhost +
Now, back in the oracle terminal:
+[oracle ~]$ export DISPLAY=localhost:0.0 +[oracle ~]$ emacs .bash_profile +
Try this procedure anytime you get an Xlib connection refused +error.
+Add the following lines (substituting your Oracle version number
+as needed) to .bash_profile
:
+export ORACLE_BASE=/ora8/m01/app/oracle +export ORACLE_HOME=$ORACLE_BASE/product/8.1.7 +export PATH=$PATH:$ORACLE_HOME/bin +export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib +export ORACLE_SID=ora8 +export ORACLE_TERM=vt100 +export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data + +umask 022 +
Save the file by typing CTRL-X
+CTRL-S
and then exit by typing CTRL-X CTRL-C
. Alternatively, use the
+menus.
Make sure that you do not add any lines like the +following
+# NLS_LANG=american +# export NLS_LANG +
These lines will change the Oracle date settings and will break +OpenACS since OpenACS depends on the ANSI date format, YYYY-MM-DD +dates.
+Log out as oracle
+[oracle ~]$ exit ++
Log back in as oracle
and
+double check that your environment variables are as intended. The
+env
command lists all of the
+variables that are set in your environment, and grep
shows you just the lines you want
+(those with ORA in it).
+[joeuser ~]$ su - oracle +[oracle ~]$ env | grep ORA +
If it worked, you should see:
+ORACLE_SID=ora8 +ORACLE_BASE=/ora8/m01/app/oracle +ORACLE_TERM=vt100 +ORACLE_HOME=/ora8/m01/app/oracle/product/8.1.7 +ORA_NLS33=/ora8/m01/app/oracle/product/8.1.7/ocommon/nls/admin/data +
If not, try adding the files to ~/.bashrc
instead of .bash_profile
. Then logout and log back in
+again. Also, be certain you are doing su - oracle
and not just su oracle
. The -
means that .bashrc
and .bash_profile
will be evaluated.
Make sure that /bin
,
+/usr/bin
, and /usr/local/bin
are in your path by
+typing:
+[oracle ~]$ echo $PATH +/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home/oracle/bin:/ora8/m01/app/oracle/product/8.1.7/bin +
If they are not, then add them to the .bash_profile
by changing the PATH
+statement above to PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
+
Log in as oracle
and start X
+if not already running. Start a new terminal:
+[joeuser ~]$ xhost +localhost +[joeuser ~]$ su - oracle +Password: ********** +[oracle ~]$ export DISPLAY=localhost:0.0 ++
Find the runInstaller
+script
If you are installing Oracle from a CD-ROM, it is located in the
+install/linux
path from the
+cd-rom mount point
+[oracle ~]$ su - root +[root ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom +[root ~]# exit +[oracle ~]$ cd /mnt/cdrom ++
If you are installing from the tarball, the install script is
+located in the Oracle8iR2
+directory that was created when you expanded the archive.
+[oracle ~]$ cd /where/oracle/Disk1 ++
Check to make sure the file is there.
+oracle:/where/oracle/Disk1$ ls +doc index.htm install runInstaller stage starterdb +
If you don't see runInstaller
, you are in the wrong
+directory.
Run the installer
+oracle:/where/oracle/Disk1$ ./runInstaller +
A window will open that welcomes you to the 'Oracle
+Universal Installer' (OUI). Click on "Next
"
Some people have had trouble with this step on RedHat 7.3 and +8.0. If so, try the following steps before calling ./runInstaller:
Execute the following command: /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh +
Type export +LD_ASSUME_KERNEL=2.2.5 +
The "File Locations" screen in the OUI:
"Source" path should have been prefilled with
+"(wherever you mounted the CDROM)/stage/products.jar
"
"destination" path says "/ora8/m01/app/oracle/product/8.1.7
"
If the destination is not correct it is because your environment
+variables are not set properly. Make sure you logged on as
+oracle
using su - oracle
. If so, edit the ~/.bash_profile
as you did in the section called
+“Pre-Installation Tasks”
+
Click "Next" (a pop up window will display Loading +Product information).
The "Unix Group Name" screen in the OUI:
The Unix Group name needs to be set to 'oinstall
' ( we made this Unix group
+earlier ).
Click "Next"
A popup window appears instantly, requesting you to run a script +as root:
Debian users need to link /bin/awk
to /usr/bin/awk
before running the script
+below
+[joueser ~]$ su - +[root ~]# ln -s /usr/bin/awk /bin/awk ++
Open a new terminal window, then type:
+[joeuser ~]$ su - +[root ~]# cd /ora8/m01/app/oracle/product/8.1.7 +[root ~]# ./orainstRoot.sh +; You should see: +Creating Oracle Inventory pointer file (/etc/oraInst.loc) +Changing groupname of /ora8/m01/app/oracle/oraInventory to oinstall. +[root ~]# mkdir -p /usr/local/java +[root ~]# exit +[joeuser ~]$ exit ++
Click "Retry"
The "Available Products" screen in the OUI:
Select "Oracle 8i Enterprise Edition 8.1.7.1.0"
Click "Next"
The "Installation Types" screen
Select the "Custom" installation type.
Click "Next"
The "Available Product Components" screen
In addition to the defaults, make sure that "Oracle SQLJ +8.1.7.0," "Oracle Protocol Support 8.1.7.0.0," and +"Linux Documentation 8.1.7.0.0" are also checked.
Click "Next"
A progress bar will appear for about 1 minute.
The "Component Locations" screen in the OUI
Click on the "Java Runtime Environment 1.1.8" It
+should have the path "/ora8/m01/app/oracle/jre/1.1.8
"
Click "Next"
A progress bar will appear for about 1 minute.
The "Privileged Operation System Groups" screen in the +OUI
Enter "dba" for "Database Administrator (OSDBA) +Group"
Enter "dba" for the "Database Operator (OSOPER) +Group"
Click "Next"
A progress bar will appear for about 1 minute.
The "Authentication Methods" screen
Click "Next"
The next screen is "Choose JDK home directory"
Keep the default path: /usr/local/java
+
Click "Next"
The "Create a Database" screen in the OUI
Select "No" as we will do this later, after some +important configuration changes.
Click "Next"
The next screen is "Oracle Product Support"
TCP should be checked with "Status" listed as +Required
Click "Next"
The "Summary" screen in the OUI
Check the "Space Requirements" section to verify you +have enough disk space for the install.
Check that "(144 products)" is in the "New +Installations" section title.
Click "Install"
A progress bar will appear for about 20 - 30 minutes. Now is a +good time to take a break.
A "Setup Privileges" window will popup towards the end
+of the installation asking you to run a script as root
+
Run the script. Switch to the oracle user first to set the +environment appropriately and then do su to get root privileges, while +keeping the oracle user's environment.
+[joeuser ~]$ su - oracle
+Password: *********
+[oracle ~]$ su
+Password: *********
+[root ~]# /ora8/m01/app/oracle/product/8.1.7/root.sh
+; You should see the following.
+
+Creating Oracle Inventory pointer file (/etc/oraInst.loc)
+Changing groupname of /ora8/m01/app/oracle/oraInventory to oinstall.
+# /ora8/m01/app/oracle/product/8.1.7/root.sh
+Running Oracle8 root.sh script...
+The following environment variables are set as:
+ ORACLE_OWNER= oracle
+ ORACLE_HOME= /ora8/m01/app/oracle/product/8.1.7
+ ORACLE_SID= ora8
+
+Enter the full pathname of the local bin directory: [/usr/local/bin]:
+
+Press ENTER here to accept default of /usr/local/bin
+
+
+Creating /etc/oratab file...
+Entry will be added to the /etc/oratab file by
+Database Configuration Assistants when a database is created
+Finished running generic part of root.sh script.
+Now product-specific root actions will be performed.
+IMPORTANT NOTE: Please delete any log and trace files previously
+ created by the Oracle Enterprise Manager Intelligent
+ Agent. These files may be found in the directories
+ you use for storing other Net8 log and trace files.
+ If such files exist, the OEM IA may not restart.
+
+Do not follow the instructions on deleting trace and log files, +it is not necessary.
+[root ~]# exit +[joeuser ~]$ exit ++
Go back to the pop-up window and click "OK"
The "Configuration Tools" screen in the OUI
This window displays the config tools that will automatically be +launched.
The "Welcome" screen in the "net 8 Configuration +Assistant"
Make sure the "Perform Typical installation" is +not selected.
Click "Next"
The "Directory Service Access" screen in the "Net +8 Configuration Assistant"
Select "No"
Click "Next"
The "Listener Configuration, Listener Name" screen in +the "Net 8 Configuration Assistant"
Accept the default listener name of "LISTENER"
Click "Next"
The "Listener Configuration, Select Protocols" screen +in the "Net 8 Configuration Assistant"
The only choice in "Select protocols:" should be +"TCP/IP"
Click "Next"
The "Listener Configuration TCP/IP Protocol" screen in +the "Net 8 Configuration Assistant"
Default Port should be 1521 and selected.
Click "Next"
The "Listener Configuration, More Listeners" screen in +the "Net 8 Configuration Assistant"
Select "No"
Click "Next"
The "Listener Configuration Done" screen in the +"Net 8 Configuration Assistant"
Click "Next"
The "Naming Methods Configuration" screen in the +"Net 8 Configuration Assistant"
Select "No"
Click "Next"
The "Done" screen in the "Net 8 Configuration +Assistant"
Click "Finish"
The "End of Installation" screen in the OUI
Click "Exit"
Click "Yes" on the confirmation pop up window.
The Oracle Universal Installer window should have +disappeared!
Congratulations, you have just installed Oracle 8.1.7 Server! +However, you still need to create a database which can take about +an hour of non-interactive time, so don't quit yet.
+This step will take you through the steps of creating a +customized database. Be warned that this process takes about an +hour on a Pentium II with 128 MB of RAM.
Make sure you are running X. Open up a terminal and su
to oracle and then run the dbassist
program.
+[joeuser ~]$ xhost +localhost +[joeuser ~]$ su - oracle +Password: ********* +[oracle ~]$ export DISPLAY=localhost:0.0 +[oracle ~]$ dbassist ++
The "Welcome" screen in the Oracle Database +Configuration Agent (ODCA)
Select "Create a database"
Click "Next"
The "Select database type" screen in the ODCA
Select "Custom"
Click "Next"
The "Primary Database Type" window in ODCA
Select "Multipurpose"
Click "Next"
The "concurrent users" screen of the ODCA
Select "60" concurrent users.
Click "Next"
Select "Dedicated Server
+Mode
", click "Next
"
Accept all of the options, and click Next
Oracle Visual Information Retrieval
+may be grayed out. If so, you can ignore it; just make sure that
+everything else is checked.
For "Global Database Name", enter "ora8
"; for "SID", also enter
+"ora8
" (it should do
+this automatically). Click "Change Character Set
and select
+UTF8
. Click "Next
".
Accept the defaults for the next screen (control file location).
+Click "Next
"
Go to the "temporary" and "rollback" tabs,
+and change the Size (upper-right text box) to 150
MB. Click "Next
"
Increase the redo log sizes to 10000K
each. Click "Next
"
Use the default checkpoint interval & timeout. Click
+"Next
"
Increase "Processes
" to 100
; "Block Size
" to 4096
(better for small Linux boxes; use
+8192 for a big Solaris machine).
Accept the defaults for the Trace File Directory. Click
+"Next
"
Finally, select "Save
+information to a shell script
" and click
+"Finish
" (We're
+going to examine the contents of this file before creating our
+database.)
Click the "Save
"
+button. Oracle will automatically save it to the correct directory
+and with the correct file name. This will likely be /ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib/sqlora8.sh
+
It will alert you that the script has been saved +successfully.
Now we need to customize the database configuration a bit. While
+still logged on as oracle
, edit
+the database initialization script (run when the db loads). The
+scripts are kept in $ORACLE_HOME/dbs
and the name of the script
+is usually init
SID.ora
where SID is the SID of your database.
+Assuming your $ORACLE_HOME
+matches our default of /ora8/m01/app/oracle/product/8.1.7
, the
+following will open the file for editing.
+[oracle ~]$ emacs /ora8/m01/app/oracle/product/8.1.7/dbs/initora8.ora ++
Add the following line to the end:
+nls_date_format = "YYYY-MM-DD" ++
Now find the open_cursors
+line in the file. If you're using emacs
scroll up to the top of the buffer
+and do CTRL-S
and type
+open_cursors
to find the line.
+The default is 100
. Change it
+to 500
.
+open_cursors = 500 ++
Save the file. In emacs, do CTRL-X
+CTRL-S
to save followed by CTRL-X CTRL-C
to exit or use the menu.
At this point, you are ready to initiate database creation. We
+recommend shutting down X to free up some RAM unless you have 256
+MB of RAM or more. You can do this quickly by doing a CRTL-ALT-BACKSPACE
, but make sure you have
+saved any files you were editing. You should now be returned to a
+text shell prompt. If you get sent to a graphical login screen
+instead, switch to a virtual console by doing CRTL-ALT-F1
. Then login as oracle
.
Change to the directory where the database creation script is +and run it:
+[oracle ~]$ cd /ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib +oracle:/ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib$ ./sqlora8.sh +
In some instances, Oracle will save the file to /ora8/m01/app/oracle/product/8.1.7/assistants/dbca
+Try running the script there if your first attempt does not
+succeed.
Your database will now be built. It will take > 1 hour - no +fooling. You will see lots of errors scroll by (like: +"ORA-01432: public synonym to be dropped does not exist") +Fear not, this is normal.
Eventually, you'll be returned to your shell prompt. In the +meantime, relax, you've earned it.
+For this step, open up a terminal and su
to oracle
as usual. You should be running X
+and Netscape (or other web browser) for this phase.
You need to download the "Oracle Acceptance Test"
+file. It's available here and at http://philip.greenspun.com/wtr/oracle/acceptance-sql.txt.
+Save the file to /var/tmp
+
In the oracle shell, copy the file.
+[oracle ~]$ cp /var/tmp/acceptance-sql.txt /var/tmp/acceptance.sql ++
Once you've got the acceptance test file all set, stay in +your term and type the following:
+[oracle ~]$ sqlplus system/manager +
SQL*Plus should startup. If you get an ORA-01034: Oracle not Available
error, it
+is because your Oracle instance is not running. You can manually
+start it as the oracle
+user.
+[oracle ~]$ svrmgrl +SVRMGR> connect internal +SVRMGR> startup ++
Now that you're into SQL*Plus, change the default passwords +for system, sys, and ctxsys to "alexisahunk" (or to +something you'll remember):
+SQL> alter user system identified by alexisahunk; +SQL> alter user sys identified by alexisahunk; +SQL> alter user ctxsys identified by alexisahunk; ++
Verify that your date settings are correct.
+SQL> select sysdate from dual; +
If you don't see a date that fits the format YYYY-MM-DD
, please read the section called
+“Troubleshooting Oracle
+Dates”.
At this point we are going to hammer your database with an +intense acceptance test. This usually takes around 30 minutes.
+SQL> \@ /var/tmp/acceptance.sql + +; A bunch of lines will scroll by. You'll know if the test worked if +; you see this at the end: + +SYSDATE +---------- +2000-06-10 + +SQL> +
Many people encounter an error regarding maximum key length
:
+ERROR at line 1: +ORA-01450: maximum key length (758) exceeded +
This error occurs if your database block size is wrong and is
+usually suffered by people trying to load OpenACS into a
+pre-existing database. Unfortunately, the only solution is to
+create a new database with a block size of at least 4096
. For instructions on how to do this,
+see the section called
+“Creating the First Database”
+above. You can set the parameter using the dbassist
program or by setting the
+DB_BLOCK_SIZE
parameter in your
+database's creation script.
If there were no errors, then consider yourself fortunate. Your +Oracle installation is working.
+You will want to automate the database startup and shutdown +process. It's probably best to have Oracle spring to life when +you boot up your machine.
Oracle includes a script called dbstart
that can be used to automatically
+start the database. Unfortunately, the script shipped in the Linux
+distribution does not work out of the box. The fix is simple.
+Follow these directions to apply it. First, save dbstart to /var/tmp
. Then, as oracle
, do the following:
+[oracle ~]$ cp /var/tmp/dbstart.txt /ora8/m01/app/oracle/product/8.1.7/bin/dbstart +[oracle ~]$ chmod 755 /ora8/m01/app/oracle/product/8.1.7/bin/dbstart ++
While you're logged in as oracle
, you should configure the
+oratab
file to load your
+database at start. Edit the file /etc/oratab
:
You will see this line.
+ora8:/ora8/m01/app/oracle/product/8.1.7:N +
By the way, if you changed the service name or have multiple +databases, the format of this file is:
service_name:$ORACLE_HOME:Y || N (for
+autoload)
Change the last letter from "N" to "Y". This +tells Oracle that you want the database to start when the machine +boots. It should look like this.
+ora8:/ora8/m01/app/oracle/product/8.1.7:Y ++
Save the file & quit the terminal.
You need a script to automate startup and shutdown. Save
+oracle8i.txt in /var/tmp
. Then login as root
and install the script. (Debian users:
+substitute /etc/init.d
for
+/etc/rc.d/init.d
throughout
+this section)
+[oracle ~]$ su - +[root ~]# cp /var/tmp/oracle8i.txt /etc/rc.d/init.d/oracle8i +[root ~]# chown root.root /etc/rc.d/init.d/oracle8i +[root ~]# chmod 755 /etc/rc.d/init.d/oracle8i ++
Test the script by typing the following commands and checking
+the output. (Debian Users: as root, do mkdir /var/lock/subsys
first)
+[root ~]# /etc/rc.d/init.d/oracle8i stop +Oracle 8i auto start/stop +Shutting Oracle8i: +Oracle Server Manager Release 3.1.7.0.0 - Production + +Copyright (c) 1997, 1999, Oracle Corporation. All +Rights Reserved. + +Oracle8i Enterprise Edition Release 8.1.7.0.1 - +Production +With the Partitioning option +JServer Release 8.1.7.0.1 - Production + +SVRMGR> Connected. +SVRMGR> Database closed. +Database dismounted. +ORACLE instance shut down. +SVRMGR> +Server Manager complete. +Database "ora8" shut down. + +[root ~]# /etc/rc.d/init.d/oracle8i start +Oracle 8i auto start/stop +Starting Oracle8i: +SQL*Plus: Release 8.1.7.0.0 - Production on Wed Mar 6 17:56:02 2002 + +(c) Copyright 2000 Oracle Corporation. All rights reserved. + +SQL> Connected to an idle instance. +SQL> ORACLE instance started. + +Total System Global Area 84713632 bytes +Fixed Size 73888 bytes +Variable Size 76079104 bytes +Database Buffers 8388608 bytes +Redo Buffers 172032 bytes +Database mounted. +Database opened. +SQL> Disconnected + +Database "ora8" warm started. + +Database "ora8" warm started. ++
If it worked, then run these commands to make the startup and +shutdown automatic.
Red Hat users:
+[root ~]# cd /etc/rc.d/init.d/ +[root ~]# chkconfig --add oracle8i +[root ~]# chkconfig --list oracle8i +; You should see: +oracle8i 0:off 1:off 2:off 3:on 4:on 5:on 6:off ++
Debian users:
+[root ~]# update-rc.d oracle8i defaults + Adding system startup for /etc/init.d/oracle8i ... + /etc/rc0.d/K20oracle8i -> ../init.d/oracle8i + /etc/rc1.d/K20oracle8i -> ../init.d/oracle8i + /etc/rc6.d/K20oracle8i -> ../init.d/oracle8i + /etc/rc2.d/S20oracle8i -> ../init.d/oracle8i + /etc/rc3.d/S20oracle8i -> ../init.d/oracle8i + /etc/rc4.d/S20oracle8i -> ../init.d/oracle8i + /etc/rc5.d/S20oracle8i -> ../init.d/oracle8i ++
SuSE users:
+[root ~]# cd /etc/rc.d/init.d +root:/etc/rc.d/init.d# ln -s /etc/rc.d/init.d/oracle8i K20oracle8i +root:/etc/rc.d/init.d# ln -s /etc/rc.d/init.d/oracle8i S20oracle8i +root:/etc/rc.d/init.d# cp K20oracle8i rc0.d +root:/etc/rc.d/init.d# cp S20oracle8i rc0.d +root:/etc/rc.d/init.d# cp K20oracle8i rc1.d +root:/etc/rc.d/init.d# cp S20oracle8i rc1.d +root:/etc/rc.d/init.d# cp K20oracle8i rc6.d +root:/etc/rc.d/init.d# cp S20oracle8i rc6.d +root:/etc/rc.d/init.d# cp K20oracle8i rc2.d +root:/etc/rc.d/init.d# cp S20oracle8i rc2.d +root:/etc/rc.d/init.d# cp K20oracle8i rc3.d +root:/etc/rc.d/init.d# cp S20oracle8i rc3.d +root:/etc/rc.d/init.d# cp K20oracle8i rc4.d +root:/etc/rc.d/init.d# cp S20oracle8i rc4.d +root:/etc/rc.d/init.d# cp K20oracle8i rc5.d +root:/etc/rc.d/init.d# cp S20oracle8i rc5.d +root:/etc/rc.d/init.d# rm K20oracle8i +root:/etc/rc.d/init.d# rm S20oracle8i +root:/etc/rc.d/init.d# cd +[root ~]# SuSEconfig +Started the SuSE-Configuration Tool. +Running in full featured mode. +Reading /etc/rc.config and updating the system... +Executing /sbin/conf.d/SuSEconfig.gdm... +Executing /sbin/conf.d/SuSEconfig.gnprint... +Executing /sbin/conf.d/SuSEconfig.groff... +Executing /sbin/conf.d/SuSEconfig.java... +Executing /sbin/conf.d/SuSEconfig.kdm... +Executing /sbin/conf.d/SuSEconfig.pcmcia... +Executing /sbin/conf.d/SuSEconfig.perl... +Executing /sbin/conf.d/SuSEconfig.postfix... +Executing /sbin/conf.d/SuSEconfig.sendmail... +Executing /sbin/conf.d/SuSEconfig.susehilf... +Executing /sbin/conf.d/SuSEconfig.susehilf.add... +Executing /sbin/conf.d/SuSEconfig.susewm... +Executing /sbin/conf.d/SuSEconfig.tetex... +Executing /sbin/conf.d/SuSEconfig.ypclient... +Processing index files of all manpages... +Finished. ++
You also need some scripts to automate startup and shutdown of +the Oracle8i listener. The listener is a name server that allows +your Oracle programs to talk to local and remote databases using a +standard naming convention. It is required for Intermedia Text and +full site search.
Download these three scripts into /var/tmp
+
Now issue the following commands (still as root
).
+[root ~]# su - oracle +[oracle ~]$ cp /var/tmp/startlsnr.txt /ora8/m01/app/oracle/product/8.1.7/bin/startlsnr +[oracle ~]$ cp /var/tmp/stoplsnr.txt /ora8/m01/app/oracle/product/8.1.7/bin/stoplsnr +[oracle ~]$ chmod 755 /ora8/m01/app/oracle/product/8.1.7/bin/startlsnr +[oracle ~]$ chmod 755 /ora8/m01/app/oracle/product/8.1.7/bin/stoplsnr +[oracle ~]$ exit +[root ~]# cp /var/tmp/listener8i.txt /etc/rc.d/init.d/listener8i +[root ~]# cd /etc/rc.d/init.d +root:/etc/rc.d/init.d# chmod 755 listener8i +
Test the listener automation by running the following commands +and checking the output.
+root:/etc/rc.d/init.d# ./listener8i stop +Oracle 8i listener start/stop +Shutting down Listener for 8i: +LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 06-MAR-2002 18:28:49 + +(c) Copyright 1998, Oracle Corporation. All rights reserved. + +Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521))) +The command completed successfully + + +root:/etc/rc.d/init.d# ./listener8i start +Oracle 8i listener start/stop +Starting the Listener for 8i: +LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 06-MAR-2002 18:28:52 + +(c) Copyright 1998, Oracle Corporation. All rights reserved. + +Starting /ora8/m01/app/oracle/product/8.1.7/bin/tnslsnr: please wait... + +TNSLSNR for Linux: Version 8.1.7.0.0 - Production +System parameter file is /ora8/m01/app/oracle/product/8.1.7/network/admin/listener.ora +Log messages written to /ora8/m01/app/oracle/product/8.1.7/network/log/listener.log +Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521))) +Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) + +Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521))) +STATUS of the LISTENER +------------------------ +Alias LISTENER +Version TNSLSNR for Linux: Version 8.1.7.0.0 - Production +Start Date 06-MAR-2002 18:28:53 +Uptime 0 days 0 hr. 0 min. 0 sec +Trace Level off +Security OFF +SNMP OFF +Listener Parameter File /ora8/m01/app/oracle/product/8.1.7/network/admin/listener.ora +Listener Log File /ora8/m01/app/oracle/product/8.1.7/network/log/listener.log +Services Summary... + PLSExtProc has 1 service handler(s) + ora8 has 1 service handler(s) +The command completed successfully +
This test will verify that the listener is operating normally. +Login into the database using the listener naming convention.
+sqlplus
username/password/\@SID
+
+[root ~]# su - oracle +[oracle ~]$ sqlplus system/alexisahunk\@ora8 + +SQL> select sysdate from dual; + +SYSDATE +---------- +2002-02-22 + +SQL> exit +[oracle ~]$ exit +[root ~]# +
RedHat users:
Now run chkconfig
on the
+listener8i
script.
+[root ~]# cd /etc/rc.d/init.d/ +root:/etc/rc.d/init.d# chkconfig --add listener8i +root:/etc/rc.d/init.d# chkconfig --list listener8i +listener8i 0:off 1:off 2:off 3:on 4:on 5:on 6:off ++
Debian users:
Now run update-rc.d
on the
+listener8i
script.
+[root ~]# update-rc.d listener8i defaults 21 19 + Adding system startup for /etc/init.d/listener8i ... + /etc/rc0.d/K19listener8i -> ../init.d/listener8i + /etc/rc1.d/K19listener8i -> ../init.d/listener8i + /etc/rc6.d/K19listener8i -> ../init.d/listener8i + /etc/rc2.d/S21listener8i -> ../init.d/listener8i + /etc/rc3.d/S21listener8i -> ../init.d/listener8i + /etc/rc4.d/S21listener8i -> ../init.d/listener8i + /etc/rc5.d/S21listener8i -> ../init.d/listener8i ++
Test the automation
As a final test, reboot your computer and make sure Oracle comes +up. You can do this by typing
+[root ~]# /sbin/shutdown -r -t 0 now +
Log back in and ensure that Oracle started automatically.
+[joeuser ~]$ su - oracle +[oracle ~]$ sqlplus system/alexisahunk\@ora8 + +SQL> exit ++
Congratulations, your installation of Oracle 8.1.7 is +complete.
+Oracle has an internal representation for storing the data based
+on the number of seconds elapsed since some date. However, for the
+purposes of inputing dates into Oracle and getting them back out,
+Oracle needs to be told to use a specific date format. By default,
+it uses an Oracle-specific format which isn't copacetic. You
+want Oracle to use the ANSI-compliant date format which is of form
+'YYYY-MM-DD'
.
To fix this, you should include the following line in
+$ORACLE_HOME/dbs/init
SID.ora
or for the default case, $ORACLE_HOME/dbs/initora8.ora
+
+nls_date_format = "YYYY-MM-DD" +
You test whether this solved the problem by firing up
+sqlplus
and typing:
+SQL> select sysdate from dual; +
You should see back a date like 2000-06-02
. If some of the date is chopped
+off, i.e. like 2000-06-0
,
+everything is still fine. The problem here is that sqlplus
is simply truncating the output.
+You can fix this by typing:
+SQL> column sysdate format a15 +SQL> select sysdate from dual; +
If the date does not conform to this format, double-check that +you included the necessary line in the init scripts. If it still +isn't working, make sure that you have restarted the database +since adding the line:
+[joeuser ~]$ svrmgrl +SVRMGR> connect internal +Connected. +SVRMGR> shutdown +Database closed. +Database dismounted. +ORACLE instance shut down. +SVRMGR> startup +ORACLE instance started. +
If you're sure that you have restarted the database since +adding the line, check your initialization scripts. Make sure that +the following line is not included:
+export nls_lang = american +
Setting this environment variable will override the date
+setting. Either delete this line and login again or add the
+following entry to your login scripts after the nls_lang
line:
+export nls_date_format = 'YYYY-MM-DD' +
Log back in again. If adding the nls_date_format
line doesn't help, you
+can ask for advice in our OpenACS
+forums.
Dropping a tablespace
Run sqlplus as the dba:
+[oracle ~]$ sqlplus system/changeme ++
To drop a user and all of the tables and data owned by that +user:
+SQL> drop user oracle_user_name cascade;
+
+To drop the tablespace: This will delete everything in the +tablespace overriding any referential integrity constraints. Run +this command only if you want to clean out your database +entirely.
+SQL> drop tablespace table_space_name including contents cascade constraints;
+
+For more information on Oracle, please consult the documentation.
+We used the following defaults while installing Oracle.
Variable | Value | Reason | +
---|---|---|
ORACLE_HOME | /ora8/m01/app/oracle/product/8.1.7 | This is the default Oracle installation directory. | +
ORACLE_SERVICE | ora8 | The service name is a domain-qualified identifier for your +Oracle server. | +
ORACLE_SID | ora8 | This is an identifier for your Oracle server. | +
ORACLE_OWNER | oracle | The user who owns all of the oracle files. | +
ORACLE_GROUP | dba | The special oracle group. Users in the dba group are authorized
+to do a connect internal within
+svrmgrl to gain full system
+access to the Oracle system. |
+