CCL Home Page
Up Directory CCL RH6.2
ORACLE install for Linux

Oracle for RedHat Linux 6.2

These are my notes (, Jan Labanowski) on installing Oracle for Linux on Pentium III computer with 256MB of memory, with 2 256M swap partitions (SwapTotal: 385440 kB as given by: cat /proc/meminfo). I am using RH Linux 6.2 with current updates (as of Feb 15, 2001) I am using GNOME as my desktop environment in X-windows. Please send me ( corrections and comments about the stuff which is fuzzy and hard to follow, so I can make it better. Thank you in advance... Disclaimer: All below is a nonsence. If you want to learn the truth, hire a competent lawyer. They will tell you what is right for a fee.

Installing RH6.2 Linux

Booted from the CD Nr. 1 in the Linux 6.2 distribution (CD Version: 10539-1) and hit Enter. Since I also have a Adaptex SCSI controller on board, it loaded driver aic7xxx. Then showed the the GUI. I chose English, Generic 101PC Keyboard Model with US ENglisg/ISO 9995-3 layout., enabled dead keys, and 3 button PS/2 mouse. My partitions were done before, on previous install with fdisk: Device Boot Start End Blocks Id System Mount Point /dev/hda1 * 1 1023 8217216 c Win95 FAT32 (LBA) /win /dev/hda2 1024 1040 136552+ 83 Linux /boot /dev/hda3 1041 1171 1052257+ 83 Linux /ftp /dev/hda4 1172 3720 20474842+ 5 Extended /dev/hda5 1172 1204 265041 82 Linux swap swap /dev/hda6 1205 1237 265041 82 Linux swap swap /dev/hda7 1238 3720 19944666 83 Linux / So I did not bother them, but just assigned /boot, /ftp, and / to them on the page by clicking on Edit after highlighting a partition. Then chose Time zone, Root password (did not create any users at this time). CHose no MD5 pass, but enabled shadow passwords. The packages I chose were: * Printer Support * Samba server * X Window * Anon FTP * Gnome * Web Server * KDE * SQL Server/Postgress * Mail/WWW/News Tools * Network Management Workstation * Dos/Windows connectivity * Authoring/Publishing * Graphic Manipulations * Emacs * Multimedia Support * Development * Networked Workstation * Kernel development * Dial up Workstation * Utilities. * NFS Connectivity My monitor is Cornerstone c1025. It is not on the list, so I took default "DDC Probed Montor/CRN0018, and entered: 30-95 kHz as horizontal scan, and 50-160 Hz as vertical sync (from the monitor manual book). I have ATI XPERT 98 PCI with 8Megs, so I clicked on ATI Xpert 98, 8192k, [Test this configuration], checked [Customize X Config]. I said Yes on the next test screen asking me if I can see the question. In Customize X screen I chose 1280x1024 16 bits as my resolution settings. It installed all packages, but froze on me when creating boot diskette. I rebooted the machine from CD, but chose UPGRADE (not the INSTALL) on the screen which asked for type of installation. Clicked on Next, which got me to Installing 118 Packages. Then, it created the Boot Diskette. Then I removed CD and Diskette and computer rebooted. It went through fsck to repair the disk left with bad inodes after it froze during install. When I logged in, and did startx the X was at wrong resolution and wrong sync. I used Xconfigurator to fix it. It never wanted to ask me for the amount of memory on the video card, so I had to do [Back] several times at the X Configuration screen to get to the appropriate screen.

Getting Oracle and Docs

First, I went to the Oracle OTN site: You need to register, if you did not already do so. Register by clicking on "Membership" on the top bar on OTN home page. Then from the OTN home page: I clicked on: "Top Downloads" and Oracle8i Database on the top of right column. It lead me to: From here I clicked on Oracle 8i Downloads, Release 3, Version 8.1.7 "Oracle8i Enterprise Edition Release 3 ( for Linux (Intel), with OPS" I had to sign up, etc, and finally downloaded over 500MBytes tar file. I also downloaded Installation and Release Notes as PDF files. Then I went to documentation site and kept downloading PDF files until I filled up my disk {:-)}. I then burned a CD with all this stuff for my personal use (it would be a crime to give it to someone!!!), so I have an easy way to keep reinstalling and trying, and erasing, and trying again. {:-(}. Beside the "official" Installation Manual from Oracle, I also looked for the docs on the web, and found: (my local copy is here) which I am following closely here (great page), and (my local copy is here) which is slightly out of date by full of great ideas and prescriptions when you actually want to use Oracle.

Getting some upgrades for Red Hat Linux 6.2

First, I installed a utility called wget. It allows retrieving files from Web and Anon FTP easily on a command line. I got it from the original RH6.2 CD Number 1. Somehow, it was not installed as default: a) Put your RH CD1 in the drive b) wait until it is mounted itself [DO NOT RUN AUTORUN!!!] c) check iif it is mounted (df -k will list /mnt/cdrom). d) If did not mount bu itself, do mount /mnt/cdrom Then install it: rpm -Uhv /mnt/cdrom/RedHat/RPMS/wget-1.5.3-6.i386.rpm I went to late at night (whey US sleeps, and Europe did not wake up yet ) and retrieved the updates: ftp Name: anonymous Password: quest cd linux/redhat/updates/6.2 binary prompt !mkdir i386 lcd i386 cd i386 mget * !mkdir ../i586 lcd ../i586 cd ../i586 mget * !mkdir ../i586 lcd ../i586 cd ../i586 mget * !mkdir ../i686 lcd ../i686 cd ../i686 mget * !mkdir ../i686 lcd ../i686 cd ../i686 mget * !mkdir ../SRPMS lcd ../SPRMS cd ../SRPMS get kernel-2.2.17-14.src.rpm To tell you the truth, I burned a CD with this stuff, since I have 6 PCs to update. And it is so much easier than copying and downloading several times the same thing. You can get the updates from the RedHat itself, but this site is usuall overbooked. So go to the list of mirrors and pick up the one which is not under siege. The first update I made was to update the updating package, i.e., RPM. In my case, as you remember, I have it on the CD. cd /mnt/cdrom/6.2/i386 rpm -Uhv rpm* I also needed badly the ssh. And to compile ssh, I needed openssl. While there is a newer openssl out there, I took the older one from the Red Hat updates RPM, so it is known as a RPM package to the system, since other RPMs are dependent on it. I also installed pam, since ssh needs it. cd /mnt/cdrom/6.2/i386 rpm -Uhv openssl* rpm -Uhv pam* Now, I took the OpenSsh cd /root/updates wget tar zxvf openssh-2.3.0p1.tar.gz cd openssh-2.3.0p1 Looked at INSTALL file and did ./configure make make install PATH=${PATH}://usr/local/bin export PATH

Updating packages

Before updating kernel, I installed all updates but kernel itself.

Updating other packages

Note that it is assumed that openssl and pam are already installed as described above. cd /mnt/cdrom/6.2/i386 rpm -Uhv SysVinit* rpm -Uhv apache-* rpm -Uhv bash* rpm -Uhv ed* rpm -Uhv emacs* rpm -Uhv esound* rpm -Uhv fetchmail* rpm -Uhv gdm* rpm -Uhv ghostscript* rpm -Uhv glibc* rpm -Uhv gnorpm* rpm -Uhv gnu* rpm -Uhv gpm* rpm -Uhv imap* rpm -Uhv inetd* rpm -Uhv iputils* rpm -Uhv joe* rpm -Uhv krb* rpm -Uhv libtiff* rpm -Uhv lpr* rpm -Uhv mailx* rpm -Uhv man* rpm -Uhv mgetty* rpm -Uhv mod_perl* rpm -Uhv modutils* rpm -Uhv mutt* rpm -Uhv ncurses* rpm -Uhv netscape* rpm -Uhv nfs-utils* rpm -Uhv nscd* rpm -Uhv openldap* nss_ldap* rpm -Uhv perl* rpm -Uhv php* rpm -Uhv pine* rpm -Uhv popt* rpm -Uhv python* rpm -Uhv rmt* rpm -Uhv samba* rpm -Uhv slocate* rpm -Uhv sysklogd* rpm -Uhv tcsh* rpm -Uhv textutils* rpm -Uhv tmpwatch* rpm -Uhv traceroute* rpm -Uhv transfig* rpm -Uhv umb-scheme* rpm -Uhv wu-ftpd* rpm -Uhv xchat* rpm -Uhv xpdf* rpm -Uhv up2date* usermode* ../noarch/*.rpm Then, I rebooted the machine.

Updating the kernel for Red Hat Linux 6.2

The updates contained also a newer kernel (the kernel which I originally installed was: 2.2.14-5.0. You can check your kernel version with uname -a The latest Red Hat kernel update is 2.2.17-14. The latest kernel 2.2.X on the site is 2.2.18. I decided to go with the 2.2.18 upgrade from I first saved the sources, binaries, and config files of the 2.2.14-5.0 kernel just in case. Before you start upgrading the kernel, you should read the piece "Upgrading the Linux Kernel on Red Hat Linux Systems" which is available from: This were my actions:

Save/Backup whatever you can...

cd /usr/src # remove link to linux-2.2.14 rm linux # make a copy of /boot dir mkdir /boot-old cd /boot tar cvf - . | ( cd /boot-old; tar xvf - ) mkdir /etc-old cd /etc tar cvf - . | ( cd /etc-old; tar xvf - )

Make boot-up/rescue disk

First check what is your current kernel and enter its version for mkbootdisk uname -r fdformat /dev/fd0H1440 mkbootdisk --device /dev/fd0H1440 2.2.14-5.0 I rebooted the computer with a dikette in the drive to see that disk really works.

Saving old configuration

I was running X. To make sure that my option for the working kernel will be passed over to the new build, I saved the old kernel options: cd /usr/src/linux-2.2.14 make xconfig # pushed Store Configuration to File # /root/config-2.2.14-5.0 # pushed Quit Without Saving I also copied a file from configs directory: cp /usr/src/linux-2.2.14/configs/kernel-2.2.14-i686.config /root Quite frankly, I am not sure which one corresponds to the config of the Kernel which came with the distribution. The differences between them are quite minor: diff config-2.2.14-5.0 kernel-2.2.14-i686.config 13c13 < CONFIG_M386=y --- > # CONFIG_M386 is not set 18,21c18,27 < # CONFIG_M686FX is not set < # CONFIG_X86_PN_OFF is not set < # CONFIG_X86_FX is not set < # CONFIG_X86_CPU_OPTIMIZATIONS is not set --- > CONFIG_M686FX=y > CONFIG_X86_WP_WORKS_OK=y > CONFIG_X86_INVLPG=y > CONFIG_X86_BSWAP=y > CONFIG_X86_POPAD_OK=y > CONFIG_X86_TSC=y > CONFIG_X86_GOOD_APIC=y > CONFIG_X86_PN_OFF=y > CONFIG_X86_FX=y > CONFIG_X86_CPU_OPTIMIZATIONS=y 38c44 < # CONFIG_BIGMEM is not set --- > CONFIG_BIGMEM=y 83,86d88

Upgrading Linux kernel

I retrieved new kernel to /usr/src directory from the standard site, in my case The latest was: 2.2.18: cd /usr/src wget Then I unpacked it as (make sure that linux link is deleted from /usr/src): cd /usr/src tar Ixvf linux-2.2.18.tar.bz2 mv linux linux-2.2.18 ln -s linux-2.2.18 linux While obviously, this is the virgin source, I still go by the book: cd /usr/src/linux make mrproper make xconfig The last one brought a GUI. I clicked first on the [Load Configuration from File] and entered /root/kernel-2.2.14-i686.config as a file. In another terminal window I did: diff /usr/src/linux/arch/i386/defconfig \ /root/kernel-2.2.14-i686.config | more To see what are the differences between default settings of the virgin kernel and the RedHat settings. Then I went through the options to see what they say and change some. I first clicked at the upper leftmost button [Code Mature] and than at [Next] button of each table. I made changes indicated with the ***********. You probably should leave the original defaults, if you are using different hardware (namely motherboard) than I do. I use: ASUS P3V133. It has the VIA VT82C596B PCI to ISA bridge and also all this USB stuff which I do not use. Code Maturity Prompt for development: Y Processor type PPro Processor Family /dev/cpu/microcode - Intel P6 CPU microcode: M /dev/cpu/*/msr - Model specific register support: N /dev/cpu/*/cpuid -- CPU info support: N 1GB Max Physical Memory Math Emulation: Y MTRR: Y Symmetric Multiprocessing: N Loadable Module Support Enable loadable: Y Set version info on all symbols: Y Kernel module loader: Y General Setup: Networking: Y PCI support: Y [Any] PCI Access Mode: ANY PCI quirks: Y PCI bridge optimization: N Backward compatible /proc/pci: Y MCA Support: N SGI SUpport: N System V IPC: Y BSD Process Accounting: Y Sysctl: Y Kernel support for a.out: M Kernel support for ELF: Y Kernel support for Misc: Y Kernel support for Java Binaries: M Parallel port Support: M PC-style hardware: M Support for Foreign hardware: N Advvanced Power Management BIOS support: Y Ignore USER SUSPEND: N Enable PM at boot time: N Make CPU Idle calls when idle: N Enable console blanking using APM: N RTC stores time in GMT: Y Allow interrupts during APM BIOS calls: N Use real mode APM Bios call to power off: N Toshiba Laptop Support: N Plug and Play support Plug and Play support: Y Auto-probe for Paralle devices: M Block Devices Floppy: Y Enhanced IDE: Y Use old disk: N Include IDE/ATA-2: Y Include IDE/ATAPI CDROM: Y Include IDE/ATAPI Tape: M Include IDE/ATAPI Floppy: M Include SCSI emulation: M CMD640 chipset: Y CMD640 enhanced support: N RZ1000 chipset: Y Generic PCI IDE: Y Generic PCI bus-master: Y Generic PSI bus-master DMA support: Y Boot off-board chipsets first support: N Use DMA by default when available: Y ********** OPTi82C621 chipset: N ALI15X3 chipset: N Tekram TRM290 chipset: N NS87415 chipset: N VIA82 C586 chipset: Y ********** CMD646 chipset: Y Cyrix CS5530 MediaGX chipset: N Other IDE chipset: N Additional Block Devices: M Network block device: M Myltiple device driver support: Y Linear mode: M RAID-0: M RAID-1: M RAID-4/5: M RAM disk support: Y Default RAM disk size: 4096 XT hard disk support: N ************ Mylex DAC960: M Parallel port IDE support: M Parallel IDE high level drivers Parallel port IDE disk: M Parallel port ATAPI CD-ROMS: M Parallel port ATAPI disks: M Parallel port ATAPI tapes: M Parallel port generic ATAPI devices: M Prallel IDE protocol modules ATEN EH-100: M MicroSolutions: M Data Store Commuter: M FIT TF-2000: M FIT TF-3000: M Shuttle EPAT/EPEZ: M Shuttle EPIA: M Freecom IQ ASIC-2: M Freecom powewr: M King Byte: M KT PHd: M OnSpec 90c20: M OnSpec 90c26: M Compaq SMART2: M Compaq CISS Array: N Networking options: Packet socket: Y Kernel/User netling: Y Routing messages: Y Netlink device emulation: Y Network firewals: Y Socket Filtering: Y Unix domain sockets: Y TCP/IP Networking: Y IP multicasting: Y Advanced router: N ... IP:kernel: N ... IP:firewalling: Y IP:firewall packed netling: Y IP:transparent proxy: Y IP:masquerading: Y Protocol-specific masquerading as modules IP:ICMP masquerading: Y Protocol-specifc masquerading support IP:masq special: Y IP:ipautofw: M IP:ipportwf: M IP:ip fwmark mask: M IP:optimize: N IP:tunnel: M IP:GRE: M IP: multicast routing: N ... IP:aliasing: Y IP:ARP: N IP: TCP syncookie support: Y IP: Reverse ARP: M IP: Allo large window: M The IPv6: N ........ The IPX: M IPX full internal IPX net: N IPX SPX network: N Appletalk DDP: M CCITT X.25: N LAPB: N Bridging: N Frame diverter: N 802.2 LLC: N Acorn: N ... WAN router: M Forwarding between high speed interfaces: N CPU is too slow to handle full bandwith: N QoS: None checked Telephony Support: Linux telephony support: M QuickNet Internet: M SCSI Support SCSI Support: Y SCSI disk support: Y SCSI tape support: M SCSI CD-ROM support: Y Enable vendor specific extensions: Y SCSI Generic Support: M Proble all LUNs on each SCSI device : Y Verbose SCSI Error: Y SCSI loggin: Y SCSI low-level drivers: 3ware Hardware: N 7000FASST: M ACARD SCSI: M Adaptec AHA152X: M Adaptec AHA1542: M Adaptec AHA1740: M Adaptec Raid: M Adaptec AIC7xxx: M Enable Tagged Command: N Max number of TCQ: 8 Collect Stats to report in /proc: Y Delay in seconds after SCSI reset: 5 IBM ServeRAID: M Advansys Support: M Advansys IN200: M AMI: M Buslogic: M Omit FlashPoint: N Compaq Fibre: N DTC3180: M EATA: M enable tagged command queueing: Y enable elevator sorting: N 16 Maximum number of queued commands EATA-DMA: M EATA-PIO: M Future DOmain: M GDT: M Generic NCR5380: M Enable NCR53c400 extensions: N PORT: NCR5380/53c400 mapping Initio 9100U: M Initio INI: M IOMEGA parallel ppa: M IOMEGA parallel imm: M ppa/imm option slow: N ppa/imm option assume slow: N NCR53c406a: M symbios 53c416: M Simple: 53c710: M ... and so on... Did not change anything. I2O device support I2O Support: N Network device support: Network device support: Y ARCnet: Dummy net driver: M Bonding: M EQL: M Ethertap: M General Instruments Surf: N Ethernet (10 or 100MBit) Ethernet (1000 Mbut) FDDI driver: Y Digital DEFEA: N SysKonnect FDDI PCI: M Hippi driver: N Appletalk devices PLIP: M PPP: M SLIP: M CSLIP: Y Keepalive: Y Six bit SLIP: Y Wireless LAN: Y STRIP: M ATT: M Airnet: M Token Ring Fibre Channel: Y Interphase: M RedCreek: M Traffic: M WAN interfaces SBNI12-xx: M ARCnet devices ARCnet support: N Ethernet (10 and 100Mbit) Ethernet: Y 3COM cards: Y 3c501: M 3c503: M 3c505: M 3c507: M 3c509/3c579: M 3c515 ISA: M 3c590/3c900: M AMD LANCE: M Wester DIgital/SMC cards: Y WD80*3 support: M SMC Ultra: M SMC Ultra32: M SMC 9194: M RacalInterlan: Y NI6010: M NI5210: M NI6510: M RealTek 8129: M RealTek 8139: N Other ISA: Y ATI70/1720: M Cabletron: M ... accepted all defaults Ethernet (1000MBit) Alteon: M Packet Engines GNIC-II: N Packet Engines Yellowfin: M SysKonnect: M Appletalk devices Took defaults Token Ring devices Took defaults Wan Interaces: Took defaults Amateur Radio Support: Amateur Radio: N IrDA support Defaults Infrared-port device drivers Defaults ISDN Subsystems Defaults ISDN Features Defaults ... Passive ISDN Defaults Active ISDN Defaults Old CDROM Drivers Defaults Character devices: Defaults Mice: ATIXL busmouse: M Logitech busmouse: M Microsoft busmouse: M PS2 Mouse: Y C&T 82C710 mouser: M PC1010 digitizer pad: M Joystick: Default Video for Linux Default Ftape, Floppy tape device: Default Watchdog card: Default I2C Support I2C Support: N Hardware sensors support none USB Support Support for USB: M USB verbose: N Miscelaneous USB Options Preliminary USB device filesystem: N Support for hot: N Enforce: N USB Controllers: UHCI: M UHCI Alternative: M OHCI: M USB Devices: USB printer: M USB Scanner: M USB Modem : M USB Serial Convertor: M USB Generic Serial Driver: N Filesystems Quota support: Y Kernet automounter: Y AFFS: N Amiga: N Apple: N DOS FAT: M MSDOS fs support: M UMSDOS Unix like: M VFAT: M ISO9660: Y MS Joiliet: Y Minix: N NTFS: M OS/2 HPFS: M Network file systems: Coda: N NFS: Y NFS Version 3 support: Y NFS Server support: Y NFS Server Ver3 support: Y SMB: M Use a default NLS: N NCP: N Partition types: BSD: Y Macintosh : Y SMD: Y Solaris: Y Unixware: Y Native language support: Default: cp437 437: Y 737: M 775: M 850: M 852: M 855: N 860: N 861: N 862: N 863: N 864: N 865: N 866: M 869: M 874: N 932: N 936: N 949: N 950: N 8859-1: M 8859-2: M 8859-3: N 8859-4: N 8859-5: M 8859-6: N 8859-7: M Console Drvers VGA TEXT: Y Video mode selection: Y MDA: M SUpport for frame buffer: Y Permedia2: M ATI MAch64: M VESA VGA: N VGA 16: N Matrox acceleration: M Millenium: Y Mistique: Y G100/G200: Y Multihead: Y Sound SOund card Support: M Support for C-Media: M Enable legacy FM Enable legacy MPU-401 Crystal SoundFusion: M Creative SBLive: M Ensonic AudioPCI: M Creative Ensonic AudioPCI 97: M ESS Mastro: M ESS Maesto3: M Rest took defaults Additional low level sound: Additional low lever sound drivers: Y Took defaults Kernel hacking Magic SysRq Key: Y Then, at the end I clicked on: Main Menu, Store Configuration File: /root/kernel_config_1 Save and Exit Then, in the xterm window I ran: make dep Then I made the following changes in header files, as suggested on the page 2-2 of Oracle Installation Guide: cd /usr/src/linux/include/asm cp -p shmparam.h shmparam.h-orig and edited shmparam.h (the 0x8000000 is half of my memory in hex): #define SHMMAX 0x2000000 --> #define SHMMAX 0x8000000 (I have 256Megs, i.e. 0x10000000 of it and 0x8000000 is half) #define SHMMNI (1<<_SHM_ID_BITS) --> #define SHMMNI 100 #define SHMSEG SHMMNI --> #define SHMSEG 10 and then cd /usr/src/linux/include/linux cp -p sem.h sem.h-orig and edited sem.h: #define SEMOPM 32 --> #define SEMOPM 100 then edited the Makefile in /usr/src/linux and changed: EXTRAVERSION = --> EXTRAVERSION = -01 Now I was ready to build kernel and modules: cd /usr/src/linux make bzImage make modules make modules_install After doing this the directory /lib/modules/2.2.18-01 was created, as well as new kernel and I installed the files in /boot partition and made a RAM disk: cd /boot rm vmlinuz cp /usr/src/linux/arch/i386/boot/bzImage vmlinuz-2.2.18-01 ln -s vmlinuz-2.2.18-01 vmlinuz rm cp /usr/src/linux/ ln -s mkinitrd /boot/initrd-2.2.18-01.img 2.2.18-01 Now is time to fix lilo. I first edited /etc/lilo.conf to be: boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 linear default=linux image=/boot/vmlinuz-2.2.18-01 label=test initrd=/boot/initrd-2.2.18-01.img read-only root=/dev/hda7 image=/boot/vmlinuz-2.2.14-5.0 label=linux initrd=/boot/initrd-2.2.14-5.0.img read-only root=/dev/hda7 other=/dev/hda1 label=dos It will load new kernel when you type test after boot: prompt. Then I ran lilo to put these changes on hard drive. lilo -v This generated the following output: # lilo -v LILO version 21, Copyright 1992-1998 Werner Almesberger Reading boot sector from /dev/hda Merging with /boot/boot.b Boot image: /boot/vmlinuz-2.2.18-01 Mapping RAM disk /boot/initrd-2.2.18-01.img Added test Boot image: /boot/vmlinuz-2.2.14-5.0 Mapping RAM disk /boot/initrd-2.2.14-5.0.img Added linux * Boot other: /dev/hda1, loader /boot/chain.b Added dos /boot/boot.0300 exists - no backup copy made. Writing boot sector. Then I created a boot rescue diskette with a new kernel: cd /boot fdformat /dev/fd0H1440 mkbootdisk --device /dev/fd0 2.2.18-01 Then I silently prayed and rebooted the machines. During kernel recompilation I was greatly helped by the Kernel-HOWTO by Brian Ward (my local copy is here). I also used: and Jason Costomiris note on RedHat discussion list: (local copy is here).

Oracle Installation

Then I prepared for Oracle install.

Installing JDK1.1.8

Installed Java JDK1.1.8v3 for Linux from Blackdown taken from: (you may want to right click on these links if you do not have bz2 MIME type set) Local copy is here. I placed it in /tmp, and then unpacked it as: cd /tmp tar Ixvf jdk118_v3-glibc-2.1.3.tar.bz2 mv jdk118_v3 /usr/local cd /usr/local ln -s jdk118_v3 java

Creating accounts and groups for Oracle

Then I created needed users and groups groupadd oinstall groupadd dba groupadd oper useradd oracle -g oinstall -G dba,oper passwd oracle

Removing traces of previous failed installs of Oracle

Since I had oracle installed before, I deleted all traces of it namely: rm -rf /u01 rm /etc/oratab rm /etc/oraInst.loc Note, if you have a running/needed/usefull installation of Oracle on your system DO NOT DO THAT!!! Use Oracle GUI to do uninstall (the same which you used to install -- it is described below).

Directories and Environment Varialbles

Created directory for Oracle Install: mkdir /u01 chown oracle.dba /u01 Then I untarred my Oracle from my CD. You need to carefully examine what I was doing here. I compressed linux81701.tar with gzip before putting it on CD (it was actially an unnecessary thing, since most stuff on CD comes compressed as jar files (i.e., zip) and gzipping the original Oracle tar does not really save any space. Also, the top directory of original tar is not is not the same as in my tar. You just need to do what needs to be don to have the ORACLE_BASE=/u01/app/oracle by moving directories around. cd /usr/src mkdir -p oracle-dist/oracle-dist/ cd oracle-dist/oracle-dist/ # tar xvf /mnt/cdrom/linux81701.tar tar zxvf /mnt/cdrom/linux81701.tar.gz # cd /usr/src # mv oracle-dist oracle-dist1 # cd oracle-dist1 # mv oracle-dist .. # cd .. # rmdir oracle-dist1 Then exited X-window desktop, logged out as root, logged in as oracle and started X-window desktop (startx). I added the following to the .bash_profile in /home/oracle (home) directory: PATH=${PATH}:${HOME}/bin BASH_ENV=${HOME}/.bashrc USERNAME="oracle" export USERNAME BASH_ENV PATH JAVA_HOME=/usr/local/java export JAVA_HOME ORACLE_BASE=/u01/app/oracle export ORACLE_BASE ORACLE_HOME=${ORACLE_BASE}/product/ export ORACLE_HOME ORACLE_SID=linux817 export ORACLE_SID PATH=${PATH}:${ORACLE_HOME}/bin:${JAVA_HOME}:/bin export PATH if [ "${LD_LIBRARY_PATH:-}" == "" ]; then LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/usr/lib:/usr/local/lib else LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH} fi export LD_LIBRARY_PATH CLASSPATH=${JAVA_HOME}/lib/ export CLASSPATH You can find a copy of my .bash_profile here. Note that people usually use ORCL as ORACLE_SID. In my case it is: ORACLE_SID=linux817 After changing the file you have to do: . .bash_profile to actually set your environment variables, or log out and then log in again as user oracle.

Running Oracle Installer

Then I started Oracle install (as user oracle); cd /usr/src/oracle-dist/ ./runInstaller The window appeared: Welcome with bunch of options. I clicked on [Next] File Locations Accepted the defaults on next window (Source and Destination Paths) since they came from myself (current directory and ORACLE_HOME environment variable) by clicking [Next]. Unix Group Name Unix Group Name: oinstall Clicked [Next] and it asked me to execute a script: /u01/app/oracle/product/ First, I checked the script for bugs... It looked fine to me. I opened the xterm and su - and as a root cd /u01/app/oracle/product/ ./ It told me: Creating Oracle Inventory pointer file (/etc/oraInst.loc) Changing groupname of /u01/app/oracle/oraInventory to oinstall. I did not close the xterm since I will need it later on. Then I clicked in the pop off window the [Retry] button. It then came with available product information window: Available Products I selected Oracle8i Enterprise Edition and clicked [Next] Installation Types Accepted default Typical Installation (837 MB) and clicked [Next] Choose JDK Home Directory Since there is so much fuzz about Oracle not liking new JDKs, I accepted /usr/local/java which was a link to jdk118_v3 as described above. Database Identification Global Database Name: SID linux817 and clicked [Next] Summary It displayed a bunch of products to be installed. Impressive. I clicked on [Install] Install A window was displaying which was reporting installation progress. You can get a cup of coffee made now, since it takes time. After about 30 minutes it popped off the small window asking to run /u01/app/oracle/product/ as root. I first opened the /u01/app/oracle/product/ in editor, since my previous experience was that this script has errors. The script was wrong... It is actually two scripts merged together. At line 63 we have: $ECHO "IMPORTANT NOTE: Please delete any log and trace files previously" $ECHO " created by the Oracle Enterprise Manager Intelligent" $ECHO " Agent. These files may be found in the directories" $ECHO " you use for storing other Net8 log and trace files." $ECHO " If such files exist, the OEM IA may not restart." #!/usr/bin/sh # # $Header # $Copyright # Then at line 102 we have RMF=/bin/rm -f which is obviously wrong since "/bin/rm -f" should be quoted. and finally, at line 156 we have: RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}` which should obviously be: RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'` I corrected the script and ran, but frankly, I am not sure I should have had. I opened the the xterm, logged as root and did: su - /u01/app/oracle/product/ It displayed: 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. Running Oracle8 script... \nThe following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/ ORACLE_SID= linux817 Enter the full pathname of the local bin directory: [/usr/local/bin]: I entered Enter. It told me: Entry will be added to the /etc/oratab file by Database Configuration Assistant when a database is created Finished running generic part of script. Now product-specific root actions will be performed. Then I clicked OK button in the small window, and the installation continued... It displayed the new window: Configuration Tools and was popping new windows for individual components to configure: Net8 Configuration Assistant: Welcome Selected Perform typical configuration and clicked [Next] Database Creation Progress window (just showed progress). v- Creating and starting Oracle instance v- Copying database files v- Initializing database v- Database creation complete Then it displayed the window: Database creation completed. Database Information: global database name: database system identifier (SID): linux817 SYS account password: change_on_install SYSTEM account password: manager I clicked OK button. Then it started the Apache web server and displayed: End of Installation clicked [Exit] (do not do Next Install, or you will waste your current install).

Starting Oracle

I did ps auwx | grep oracle > oracle_processes I am including the list of processes here. Then, it was time to test if the thing actually works. cd $ORACLE_HOME/rdbms/admin sqlplus It did not... Enter user-name: sys Enter password: ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No such file or directory So I tried to start it: svrmgrl connect internal startup quit But got: [oracle@localhost]$ svrmgrl Oracle Server Manager Release - Production Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved. Oracle8i Enterprise Edition Release - Production With the Partitioning option JServer Release - Production SVRMGR> connect internal Connected. SVRMGR> startup LRM-00109: could not open parameter file '/u01/app/oracle/product/' ORA-01078: failure in processing system parameters SVRMGR>quit Server Manager complete. [oracle@localhost]$ So I looked for files *.ora starting from the top directory of Oracle: cd /u01 find . -name '*.ora' -print I got many answers but one was interesting: ./app/oracle/product/ So I linked the initlinux817.ora to initlinux81701.ora cd /u01/app/oracle/product/ ln -s /u01/app/oracle/admin/jkl/pfile/initlinux817.ora initlinux81701.ora and started again: svrmgrl connect internal startup quit Now, I ran ps again to see processes running. They are here. It then barked: ORACLE instance started. Total System Global Area 72704160 bytes Fixed Size 73888 bytes Variable Size 55681024 bytes Database Buffers 16777216 bytes Redo Buffers 172032 bytes ORA-01102: cannot mount database in EXCLUSIVE mode I rebooted the machine. Then logged in again as oracle. Started x (startx) and typed: [oracle@localhost oracle]$ svrmgrl Oracle Server Manager Release - Production Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved. Oracle8i Enterprise Edition Release - Production With the Partitioning option JServer Release - Production SVRMGR> connect internal Connected. SVRMGR> startup ORACLE instance started. Total System Global Area 72704160 bytes Fixed Size 73888 bytes Variable Size 55681024 bytes Database Buffers 16777216 bytes Redo Buffers 172032 bytes ORA-01990: error opening password file '/u01/app/oracle/product/' SVRMGR> quit So again, I decided to look for the file cd /u01 find . -name 'orapw' -print But it did not find it. So I went to /u01/app/oracle/product/ and tried to find something like passwd file. There was the file orapwlinux817. So I made a link cd /u01/app/oracle/product/ ln -s orapwlinux817 orapw and then at SVRMGR> prompt I typed SVRMGR> shutdown ORA-01109: database not open Database dismounted. ORACLE instance shut down. SVRMGR> quit Server Manager complete. I logged out as oracle, and then logged in as oracle, to see is something is still running. Nothing was running after log out (beside, or course, the login shell). So I tried to start it again: svrmgrl connect internal startup quit No errors showed up, so I was more optimistic. Here is my conversation with oracle server manager [oracle@localhost oracle]$ svrmgrl Oracle Server Manager Release - Production Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved. Oracle8i Enterprise Edition Release - Production With the Partitioning option JServer Release - Production SVRMGR> connect internal Connected. SVRMGR> startup ORACLE instance started. Total System Global Area 72704160 bytes Fixed Size 73888 bytes Variable Size 55681024 bytes Database Buffers 16777216 bytes Redo Buffers 172032 bytes Database mounted. Database opened. SVRMGR> quit Server Manager complete. [oracle@localhost oracle]$ So I tried to log in: sqlplus It spew: Worked for me this time. Here is what we talked about: [oracle@localhost oracle]$ sqlplus SQL*Plus: Release - Production on Thu Feb 8 16:44:08 2001 (c) Copyright 2000 Oracle Corporation. All rights reserved. Enter user-name: sys Enter password: change_on_install Connected to: Oracle8i Enterprise Edition Release - Production With the Partitioning option JServer Release - Production SQL> password Changing password for SYS Old password: change_on_install New password: xxxxxxxx Retype new password: xxxxxxxx SQL> quit So I decided to shut it down. This is what I did: [oracle@localhost oracle]$ svrmgrl Oracle Server Manager Release - Production Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved. Oracle8i Enterprise Edition Release - Production With the Partitioning option JServer Release - Production SVRMGR> connect internal Connected. SVRMGR> shutdown Database closed. Database dismounted. ORACLE instance shut down. SVRMGR> quit Server Manager complete. [oracle@localhost oracle]$ I did another ps auwx | grep oracle > oracle_processes To see if it cleanly shut down. The output is here. It seems it did. here: What to do with Oracle once it is installed is another story.

Tunning Oracle

Checking permissions on directories and files

Logged in as user oracle and did the stuff suggested in the Oracle 8i Installation Guide (Part Number: A86017-02) on page 4-3 and 4-4. The permissions are mostly OK since the installer does a good job. But I am just documenting/checking what they should set to: ls -ld $ORACLE_HOME/bin chmod 751 $ORACLE_HOME/bin ls -ld $ORACLE_HOME/bin/oracle chmod 6751 $ORACLE_HOME/bin/oracle ls -ld $ORACLE_HOME/lib chmod 755 $ORACLE_HOME/lib ls -l $ORACLE_HOME/lib chmod 644 $ORACLE_HOME/lib/* ls -ld $ORACLE_HOME/rdbms/log chmod 751 $ORACLE_HOME/rdbms/log ls -ld $ORACLE_HOME/rdbms chmod 751 $ORACLE_HOME/rdbms find $ORACLE_HOME/rdbms -type f -exec chmod 644 {} \; ls -ld $ORACLE_HOME/sqlplus chmod 751 $ORACLE_HOME/sqlplus find $ORACLE_HOME/sqlplus -type f -exec chmod 644 {} \; ls -ld $ORACLE_HOME/network/trace chmod 777 $ORACLE_HOME/network/trace

Starting Oracle on bootup automatically

I became a root... File /etc/oratab lists all databases which are installed. In my case it only had: linux817:/u01/app/oracle/product/ i.e., that there is a $ORACLE_SID linux817, and that $ORACLE_HOME for it is /u01/app/oracle/product/, and N which means do not start it on boot up by dbstart script. But I want to start it on boot up, so I changed the line to: linux817:/u01/app/oracle/product/ I made a directory for oracle stdout/stderr logs /u01/app/oracle/log Then I created the file /etc/rc.d/init/dbora which . You can find it here Note that this script calls the dbstart and dbshut scripts provided in $ORACLE_HOME/bin. The scripts are called with "su - oracle", i.e., the .bashrc and .bash_profile scripts for user oracle are executed like during normal login. That is why oracle's components will inherit environment variables set in the login scripts. Then I tested if it works: cd /etc/rc.d/init.d chmod 755 dbora chkconfig --add dbora chkconfig --list dbora ./dbora start ps auwx | grep oracle ./dbora stop ps auwx | grep oracle and it pretended that it did.

Adding environment variables on log in to oracle account

After reading the Post Installation chapter (pages 4-*) in Oracle 8i Installation Guide I am quite confused what one should put in the CLASSPATH. They say to put stuff like $ORACLE_HOME/JRE/lib:$ORACLE_HOME/jlib:... The problem is that this is probably wrong, since you should put something like: $ORACLE_HOME/JRE/lib/rt.jar:$ORACLE_HOME/JRE/lib/i18n.jar... since these directories do not contain classes but jar files. The directory $ORACLE_HOME/jlib contains 16 jar files. Should I put all or some? This is not an easy question since, for example, the directory contains jars: jssl-1_1.jar and jssl-1_2.jar which are different versions of the same package*... They probably refer to JDK 1.1.X and 1.2.X, but who knows... I decided not to add jars which I do not know what they do. I can always change CLASSPATH later when I get ClassNotFound. I did not use the /usr/local/bin/oraenv script since it is not working correctly, and even if $ORACLE_HOME is correctly set, and ORAENV_ASK=NO it still asks for ORACLE_HOME. My final .bash_profile script is available here. For Net8 I added a line in the /etc/services: listener 1521/tcp #Net8 listener

Testing Oracle

Retrieving info from the test database wuth sqlplus

Oracle comes with the trial database, and a test user: scott (password: tiger). This is what I did to check if I can run anything: $ sqlplus scott/tiger SQL*Plus: Release - Production on Sat Mar 10 02:50:32 2001 (c) Copyright 2000 Oracle Corporation. All rights reserved. Connected to: Oracle8i Enterprise Edition Release - Production With the Partitioning option JServer Release - Production SQL> select ENAME from EMP where SAL < 2000; ENAME ---------- SMITH ALLEN WARD MARTIN TURNER ADAMS JAMES MILLER 8 rows selected. SQL> quit Disconnected from Oracle8i Enterprise Edition Release - Production With the Partitioning option JServer Release - Production $

Trying simple JDBC application with Oracle

I wrote a simple Java application, which retrieves the same information as above, but it uses the JDBC driver. I saved it as, and placed it in /tmp. I updated CLASSPATH and added the entry for Oracle JDBC driver and current directory. Then I compiled it and ran it: cd /tmp CLASSPATH=${CLASSPATH}:${ORACLE_HOME}/jdbc/lib/ export CLASSPATH javac ARG_DRIVER="oracle.jdbc.driver.OracleDriver" ARG_DB_URL="jdbc:oracle:oci8:@" ARG_USER="scott" ARG_PASSWORD="tiger" java JDBCTest $ARG_DRIVER $ARG_DB_URL $ARG_USER $ARG_PASSWORD Which produced: Arg[0]=oracle.jdbc.driver.OracleDriver Arg[1]=jdbc:oracle:oci8:@ Arg[2]=scott Arg[3]=tiger Connected to jdbc:oracle:oci8:@ as user scott Results of the query: select ENAME from EMP where SAL < 2000 SMITH ALLEN WARD MARTIN TURNER ADAMS JAMES MILLER Database connection closed At this point I received a CD-PACK of oracle. Rather then continue this log, I switched to the CD-PACK and reinstalled Oracle from the CD. Therefore continue the reading here. The WEB version and the CD version or the ORACLE seem to be practically identical, so I continued my adventures here.
Modified: Fri Jan 18 14:09:38 2002 GMT
Page accessed 44461 times since Sun Feb 18 19:57:35 2001 GMT