How to install Oracle 11gR2 on Ubuntu 14.04?
Please provide me with the guidance to install oracle 11gr2 on Ubuntu 14.04.
1. Download Oracle Database Express Edition.
2. Instructions before installing Oracle database
-
Copy the downloaded file and paste it in home directory.
-
Unzip using the downloaded .zip file:
unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
-
Install required packages:
sudo apt-get install alien libaio1 unixodbc # still works in 22.04
-
Change directories to the Disk1 directory:
cd Disk1/
-
Convert .rpm package format to .deb package format (that is used by Ubuntu):
sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
-
Create the required chkconfig script:
sudo nano /sbin/chkconfig
The nano text editor is started and the commands are shown at the bottom of the screen. Now copy and paste the following into the file and save:
#!/bin/bash # Oracle 11gR2 XE installer chkconfig hack for Ubuntu file=/etc/init.d/oracle-xe if [[ ! `tail -n1 $file | grep INIT` ]]; then echo >> $file echo '### BEGIN INIT INFO' >> $file echo '# Provides: OracleXE' >> $file echo '# Required-Start: $remote_fs $syslog' >> $file echo '# Required-Stop: $remote_fs $syslog' >> $file echo '# Default-Start: 2 3 4 5' >> $file echo '# Default-Stop: 0 1 6' >> $file echo '# Short-Description: Oracle 11g Express Edition' >> $file echo '### END INIT INFO' >> $file fi update-rc.d oracle-xe defaults 80 01
-
Change the permission of the chkconfig file:
sudo chmod 755 /sbin/chkconfig
-
Set kernel parameters. Oracle 11gR2 XE requires additional kernel parameters which you need to set using the command:
sudo nano /etc/sysctl.d/60-oracle.conf
-
Copy the following into the file and save:
# Oracle 11g XE kernel parameters fs.file-max=6815744 net.ipv4.ip_local_port_range=9000 65000 kernel.sem=250 32000 100 128 kernel.shmmax=536870912
-
Verify the changes:
sudo cat /etc/sysctl.d/60-oracle.conf
-
You should see what you entered earlier. Now load the kernel parameters:
sudo service procps start # If this doesn't work try sudo systemctl start procps
-
Verify the new parameters are loaded:
sudo sysctl -q fs.file-max
You should see the file-max value that you entered earlier.
-
Set up
/dev/shm
mount point for Oracle. Create the following file:sudo nano /etc/rc2.d/S01shm_load
-
Copy the following into the file and save.
#!/bin/sh case "$1" in start) mkdir /var/lock/subsys 2>/dev/null touch /var/lock/subsys/listener rm /dev/shm 2>/dev/null mkdir /dev/shm 2>/dev/null *) echo error exit 1 ;; esac
-
Change the permissions of the file:
sudo chmod 755 /etc/rc2.d/S01shm_load
-
Run the following commands:
sudo ln -s /usr/bin/awk /bin/awk sudo mkdir /var/lock/subsys sudo touch /var/lock/subsys/listener sudo reboot
3. Install Oracle database
-
Install Oracle DBMS:
sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
-
Configure Oracle:
sudo /etc/init.d/oracle-xe configure
-
Setup environment variables by editing your .bashrc file:
nano ~/.bashrc
-
Add the following lines to the end of the file:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export ORACLE_SID=XE export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export ORACLE_BASE=/u01/app/oracle export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH
-
Load the changes by executing your profile:
. ~/.bashrc
-
Start Oracle 11gR2 XE:
sudo service oracle-xe start
-
Add user YOURUSERNAME to group dba using the command:
sudo usermod -a -G dba YOURUSERNAME
4. Using the Oracle XE command shell
-
Start the Oracle XE 11gR2 server:
sudo service oracle-xe start
-
Start command-line shell as the system admin:
sqlplus sys as sysdba
Enter the password that you gave while configuring Oracle earlier. You will now be placed in a SQL environment that only understands SQL commands.
-
Create a regular user account in Oracle using the SQL command:
create user USERNAME identified by PASSWORD;
Replace USERNAME and PASSWORD with the username and password of your choice. Please remember this username and password. If you had error executing the above with a message about resetlogs, then execute the following SQL command and try again:
alter database open resetlogs;
-
Grant privileges to the user account using the SQL command:
grant connect, resource to USERNAME;
Replace USERNAME and PASSWORD with the username and password of your choice. Please remember this username and password.
-
Exit the sys admin shell using the SQL command:
exit;
-
Start the command-line shell as a regular user using the command:
sqlplus
Now you can run SQL commands.
This worked fine, however I got the following error:
sudo /etc/init.d/oracle-xe start
[....] Starting oracle-xe (via systemctl): oracle-xe.serviceJob for oracle-xe.service failed because the control process exited with error code. See "systemctl status oracle-xe.service" and "journalctl -xe" for details.
failed!
Looking into it:
systemctl status oracle-xe.service
Jan 27 10:01:05 <myusername> su[29699]: No passwd entry for user 'oracle'
I resolved it by simply adding a user:
sudo adduser oracle
Hope this helps someone.