Difference between revisions of "Oracle"

From ArchWiki
Jump to: navigation, search
(Scripted)
(32 intermediate revisions by 14 users not shown)
Line 1: Line 1:
[[Category:Database_management_systems (English)]]
+
[[Category:Database management systems]]
{{i18n_links_start}}
+
{{out of date|Installation: Packages and AUR reference too old, Dutch version is up-to-date}}
{{i18n_entry|简体中文|Oracle (简体中文)}}
+
[[nl:Oracle]]
{{i18n_links_end}}
+
[[zh-CN:Oracle]]
==Introduction==
+
This document will help you install Oracle Database 11gR1 on Arch Linux.  If you only want to connect to Oracle databases running elsewhere, see the instructions for [[Oracle client|installing the Oracle client]].
----
+
  
This document will help you intall the Oracle Database 11gR1 on Arch Linux. By using the install method 2 you will be able to finalize the long installation process with only few steps.
+
By using the install method 2 you will be able to finalize the long installation process with only a few steps.
  
 
==Install method 1 - manual ==
 
==Install method 1 - manual ==
Line 15: Line 14:
  
 
===Installing Desktop Environment===
 
===Installing Desktop Environment===
 
+
# pacman -Syu
pacman -Syu
+
# pacman -S python
 
+
# pacman -U ftp://ftp.berlios.de/pub/aurbuild/aurbuild-1.8.4-1-any.pkg.tar.gz
pacman -S python
+
pacman -U ftp://ftp.berlios.de/pub/aurbuild/aurbuild-1.8.4-1-any.pkg.tar.gz
+
  
 
Install and test Xorg.
 
Install and test Xorg.
  pacman -S xorg
+
  # pacman -S xorg
  pacman -S hwd
+
  # pacman -S hwd
  
 
Since Xorg 7.4, xorg.conf isn't necessary anymore. This command is optional.
 
Since Xorg 7.4, xorg.conf isn't necessary anymore. This command is optional.
  hwd -x
+
  # hwd -x
  cp /etc/X11/xorg.conf.vesa /etc/X11/xorg.conf
+
  # cp /etc/X11/xorg.conf.vesa /etc/X11/xorg.conf
  
Check with startx (should get mouse movement with x cursor - ctrl-alt-backspace to exit)
+
Check with {{Ic|startx}} (Should get mouse movement with X cursor - Ctrl-Alt-Backspace to exit.)
  startx
+
  $ startx
  
Install desktop environment, gnome, kde or xfce. In this case xfce4 will be installed:
+
Install desktop environment, Gnome, KDE or Xfce. In this case Xfce4 will be installed:
  pacman -S xfce4
+
  # pacman -S xfce4
  pacman -S pcmanfm
+
  # pacman -S pcmanfm
  
 
Run xfce:
 
Run xfce:
  startxfce4  
+
  $ startxfce4  
  
 
====Required packages for Oracle database installation====
 
====Required packages for Oracle database installation====
  
 
Arch i686:
 
Arch i686:
base-devel
+
*base-devel
java-runtime(openjdk6 or jre jdk)
+
*java-runtime (openjdk6 or jre jdk)
ksh rpm gawk gdb libaio libelf sysstat unixodbc libstdc++5
+
*ksh, rpm, gawk, gdb, libaio, libelf, sysstat, unixodbc, libstdc++5
unzip sudo
+
*unzip, sudo
 
Arch x86_64:
 
Arch x86_64:
base-devel
+
*base-devel
java-runtime(openjdk6 or jre jdk)
+
*java-runtime (openjdk6 or jre jdk)
ksh rpm gawk gdb libaio libelf sysstat libstdc++5
+
*ksh, rpm, gawk, gdb, libaio, libelf, sysstat, libstdc++5
unzip sudo
+
*unzip, sudo
  
 
Install packages:
 
Install packages:
 
+
  # pacman -S unzip sudo java-runtime base-devel
  pacman -S unzip
+
pacman -S sudo
+
pacman -S java-runtime
+
pacman -S base-devel
+
  
 
Install ksh (problem with aurbuild -s ksh).
 
Install ksh (problem with aurbuild -s ksh).
Line 63: Line 56:
 
  cd ABS/ksh
 
  cd ABS/ksh
 
  chmod 777 -R /software
 
  chmod 777 -R /software
  wget --http-user "I accept www.opensource.org/licenses/cpl" --http-password "." http://www.research.att.com/~gsf/download/tgz/INIT.2008-11-04.tgz
+
  wget --http-user "I accept www.opensource.org/licenses/cpl" --http-password "." http://www.research.att.com/~gsf/download/tgz/INIT.2011-02-08.tgz
  wget --http-user "I accept www.opensource.org/licenses/cpl" --http-password "." http://www.research.att.com/~gsf/download/tgz/ast-ksh.2008-11-04.tgz
+
  wget --http-user "I accept www.opensource.org/licenses/cpl" --http-password "." http://www.research.att.com/~gsf/download/tgz/ast-ksh.2011-02-08.tgz
  wget http://aur.archlinux.org/packages/ksh/ksh/PKGBUILD
+
  wget https://aur.archlinux.org/packages/ks/ksh/PKGBUILD
  wget http://aur.archlinux.org/packages/ksh/ksh/ksh.install
+
  wget https://aur.archlinux.org/packages/ks/ksh/ksh.install
 
  makepkg -c --asroot
 
  makepkg -c --asroot
 
  makepkg -i --asroot
 
  makepkg -i --asroot
Line 81: Line 74:
  
 
Oracle database 32-bit requires unixodbc.
 
Oracle database 32-bit requires unixodbc.
  pacman -S unixodbc
+
  # pacman -S unixodbc
  
 
Optional lib32 packages on x86_64:  
 
Optional lib32 packages on x86_64:  
  pacman -S lib32-libstdc++5  
+
  # pacman -S lib32-libstdc++5  
  pacman -S lib32-glibc  
+
  # pacman -S lib32-glibc  
  pacman -S lib32-gcc-libs
+
  # pacman -S lib32-gcc-libs
  
 
Oracle database require 32-bit libaio and unixodbc on x86_64 but is not necessary under Arch linux.
 
Oracle database require 32-bit libaio and unixodbc on x86_64 but is not necessary under Arch linux.
  
 
Some prerequisite symbolic links for Oracle Universal Installer.
 
Some prerequisite symbolic links for Oracle Universal Installer.
  ln -s /usr/bin/rpm /bin/rpm
+
  # ln -s /usr/bin/rpm /bin/rpm
  ln -s /usr/bin/ksh /bin/ksh
+
  # ln -s /usr/bin/ksh /bin/ksh
  ln -s /bin/awk /usr/bin/awk
+
  # ln -s /bin/awk /usr/bin/awk
  ln -s /bin/tr /usr/bin/tr
+
  # ln -s /bin/tr /usr/bin/tr
  ln -s /usr/bin/basename /bin/basename
+
  # ln -s /usr/bin/basename /bin/basename
 
Arch x86_64:
 
Arch x86_64:
  ln -s /usr/lib /usr/lib64
+
  # ln -s /usr/lib /usr/lib64
  
 
====Configuration====
 
====Configuration====
  
 
Create users and group for Oracle database:
 
Create users and group for Oracle database:
  groupadd oinstall
+
  # groupadd oinstall
  groupadd dba
+
  # groupadd dba
  useradd -m -g oinstall -G dba oracle
+
  # useradd -m -g oinstall -G dba oracle
  
 
Set password for the user oracle:
 
Set password for the user oracle:
  passwd oracle
+
  # passwd oracle
  
Optional: Add oracle to the sshd_config file.
+
Optional: Add oracle to the {{ic|sshd_config}} file.
  pacman -S openssh
+
  # pacman -S openssh
Add this line to /etc/ssh/sshd_config
+
Add this line to {{ic|/etc/ssh/sshd_config}}:
 
  AllowUsers oracle
 
  AllowUsers oracle
  
Add oracle to /etc/sudoers. This will give oracle super user privilege.
+
Add oracle to {{ic|/etc/sudoers}}. This will give oracle super user privilege.
 
  oracle    ALL=(ALL) ALL
 
  oracle    ALL=(ALL) ALL
  
Add these lines to /etc/sysctl.conf ('''''Review Oracle documentation to adjust these settings''''').
+
Add these lines to {{ic|/etc/sysctl.conf}} ('''''Review Oracle documentation to adjust these settings''''').
 
  # oracle kernel settings
 
  # oracle kernel settings
 
  fs.file-max = 6553600
 
  fs.file-max = 6553600
Line 130: Line 123:
 
  net.core.wmem_max = 262144
 
  net.core.wmem_max = 262144
  
Add these lines to /etc/security/limits.conf ('''''Review Oracle documentation to adjust these settings''''')
+
Add these lines to {{ic|/etc/security/limits.conf}} ('''''Review Oracle documentation to adjust these settings''''')
 
  # oracle settings
 
  # oracle settings
 
  oracle          soft    nproc  2047
 
  oracle          soft    nproc  2047
Line 149: Line 142:
 
  chmod 777 /tmp
 
  chmod 777 /tmp
  
Create or update oracle bashrc /home/oracle/.bashrc. Here is an example of the oracle user settings.
+
Create or update oracle bashrc {{ic|/home/oracle/.bashrc}}. Here is an example of the oracle user settings.
 
  export ORACLE_BASE=/oracle
 
  export ORACLE_BASE=/oracle
 
  export ORACLE_HOME=/oracle/product/db
 
  export ORACLE_HOME=/oracle/product/db
Line 197: Line 190:
  
 
During the Graphical installation:
 
During the Graphical installation:
1 Click on "Next".  
+
# Click on "Next".  
2 Chose "Enterprise Edition" Installation Type and click on "Next"
+
# Choose "Enterprise Edition" Installation Type and click on "Next"
3 Oracle Base should be: /oracle. Don't change it, unless you know what you're doing.  
+
# Oracle Base should be: /oracle. Don't change it, unless you know what you're doing.  
3.1 Change the default "Name" to orarch or something else.  
+
## Change the default "Name" to orarch or something else.  
3.2 The predefined path in /etc/rc.d/oracledb is "db", ie: /oracle/product/db.  
+
## The predefined path in {{ic|/etc/rc.d/oracledb}} is "db", ie: /oracle/product/db. If you want to use a different path you'll have to change {{ic|/etc/rc.d/oracledb}}, so that the startup script can locate ORACLE_HOME directory.
If you want to use a different path you'll have to change /etc/rc.d/oracledb,  
+
## After changing the defaults, click on "Next".  
so that the startup script can locate ORACLE_HOME directory.
+
# Since Oracle database requires certain distro requirement, you'll have to manually check them and then click on "Next".
3.3 After changing the defaults, click on "Next".  
+
# Chose "Software Install Only" and click on "Next".
4 Since Oracle database requires certain distro requirement,  
+
# There is only one DBA group for oracle database. Click on "Next".
you'll have to manually check them and then click on "Next".
+
# Install "Summary" shows what's going to be installed. Click on "Install".
5 Chose "Software Install Only" and click on "Next".
+
# The installation will take some time, especially the "Linking" part. Be patient! If you get an error message ignore it by clicking on "Continue".
6 There is only one DBA group for oracle database. Click on "Next".
+
## At the end of the installation you'll have to open another terminal, and execute {{ic|/oracle/product/db/root.sh}} as root. '''Don't click on "OK" yet'''.
7 Install "Summary" shows what's going to be installed. Click on "Install".
+
## When running root.sh, you'll be offered to use /usr/local/bin as the full pathname. Press the "Enter" key here.
8 The installation will take some time, especially the "Linking" part.  
+
## Now you can click on "OK"
Be patient! If you get an error message ignore it by clicking on "Continue".
+
# Installation is finished, click on "Exit" and "Yes", you really want to exit.
8.1 At the end of the installation you'll have to open another terminal,  
+
and execute /oracle/product/db/root.sh as root. '''Don't klick on "OK" yet'''.
+
8.2 When running root.sh, you'll be offered to use /usr/local/bin as the full pathname.  
+
Press the "Enter" key here.
+
8.3 Now you can click on "OK"
+
9 Installation is finnished, click on "Exit" and "Yes", you really want to exit.
+
  
 
===Oracle Enterprise Manager installation (optional)===
 
===Oracle Enterprise Manager installation (optional)===
Line 239: Line 226:
  
 
==Install method 2 - AUR==
 
==Install method 2 - AUR==
----
 
  
 
===Installation===
 
===Installation===
----
+
 
 +
{{Note| This installation method creates a database automatically. The Oracle database will therefore be ready to be used after the installation.}}
  
 
'''Step 1.'''
 
'''Step 1.'''
Download the Arch linux package from AUR: http://aur.archlinux.org/packages.php?ID=23730
+
Download the Arch linux package from AUR: https://aur.archlinux.org/packages.php?ID=23730
 
Download the Oracle database 11gR1: http://www.oracle.com/technology/software/products/database/index.html
 
Download the Oracle database 11gR1: http://www.oracle.com/technology/software/products/database/index.html
  
Line 251: Line 238:
 
Extract the Arch linux package into a directory. Copy the Oracle database 11gR1 into that directory as well.
 
Extract the Arch linux package into a directory. Copy the Oracle database 11gR1 into that directory as well.
  
INFO: The default install configuration in ee.rsp.patch is:
+
INFO: The default install configuration in {{ic| ee.rsp.patch}} is:
 
  ORACLE_BASE="/home/oracle/app/oracle"
 
  ORACLE_BASE="/home/oracle/app/oracle"
 
  ORACLE_HOME="/home/oracle/app/oracle/product/11.1.0/orarch"
 
  ORACLE_HOME="/home/oracle/app/oracle/product/11.1.0/orarch"
Line 267: Line 254:
  
 
'''Step 3.'''
 
'''Step 3.'''
Install the package that makepkg has created by using pacman.  
+
Install the package that makepkg has created by using pacman. You may get an error stating "/bin/ksh already exists", just remove that file and pacman will continue.
  
 
Arch i686:
 
Arch i686:
Line 313: Line 300:
  
 
'''Step 6.'''
 
'''Step 6.'''
Change the administration password for SYS and SYSTEM. Login as the user oracle.
+
Login as the user oracle.
 +
su oracle
 +
 
 +
Create the file /home/oracle/.bashrc and add these lines to the .bashrc file:
 +
export ORACLE_SID=archlinux
 +
export ORACLE_HOME=/home/oracle/app/oracle/product/11.1.0/orarch
 +
export PATH=$PATH:$ORACLE_HOME/bin
 +
 
 +
'''Step 7.'''
 +
If you haven't altered the {{ic| ee.rsp.patch}} file, you need to '''change the administration password for SYS and SYSTEM'''.
 +
 
 +
{{Note| If the database isn't mounted or opened. Login as the user oracle and try this first:}}
 
  su oracle
 
  su oracle
  
 +
sqlplus '/as sysdba'
 +
 +
SQL> startup mount;
 +
SQL> alter database open;
 +
 +
Changing the password for the '''SYSTEM''' user:
 
  sqlplus '/as sysdba'
 
  sqlplus '/as sysdba'
  
 
  SQL> show user
 
  SQL> show user
 
 
  USER is "SYS"
 
  USER is "SYS"
  
  passw system
+
  SQL> passw system
+
 
  Changing password for system
 
  Changing password for system
 
  New password:
 
  New password:
Line 331: Line 333:
 
  SQL> quit
 
  SQL> quit
  
Change password using orapwd. Here is an example:
+
Changing the password for the '''SYS''' user:
  orapwd file=orapwSID password=xxxxx entries=5
+
  sqlplus system/secretpassword
  
If the password file already exists:
+
SQL> show user;
  orapwd file=orapwSID password=xxxxx entries=5 force=Y
+
  USER is "SYSTEM"
  
Orapwd options in Oracle 11g:  
+
SQL> passw sys
  $ orapwd file= password= entries= force= ignorecase= nosysdba=
+
Changing password for sys
 +
New password:  
 +
  Retype new password:
 +
Password changed
  
    file - name of password file),
+
SQL> quit
    password - password for SYS ,
+
    entries - maximum number of distinct DBA and OPERs,
+
    force - whether to overwrite existing file (optional),
+
    ignorecase - passwords are case-insensitive (optional),
+
    nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only).
+
  
 
==Post Installation==
 
==Post Installation==
----
 
  
 
===Creating Initial Database===
 
===Creating Initial Database===
Line 366: Line 365:
 
During the graphical installation:
 
During the graphical installation:
  
1 Click on "Next".
+
# Click on "Next".
2 Check "Create a Database" and click on "Next".
+
# Check "Create a Database" and click on "Next".
3 Check "General Purpose or Transaction Processing" and click on "Next".
+
# Check "General Purpose or Transaction Processing" and click on "Next".
4 Chose a database name and SID. Example: Global Database Name: archlinux,  
+
# Chose a database name and SID. Example: Global Database Name: {{Ic|archlinux}}, SID: {{Ic|archlinux}}. And then click on "Next".
SID: archlinux. And then click on "Next".
+
# Uncheck "Configure Enterprise Manager", leave it empty and click on "Next".
5 Uncheck "Configure Enterprise Manager", leave it empty and click on "Next".
+
# Check "Use the Same Administrative Password for All Accounts", set password and click on "Next".  
6 Check "Use the Same Administrative Password for All Accounts",
+
# Check "File System" and click on "Next".
set password and click on "Next".  
+
# Check "Use Database File Locations from Template" and click on "Next".
7 Check "File System" and click on "Next".
+
# Uncheck "Specify Flash Recovery Area" and click on "Next".
8 Check "Use Database File Locations from Template" and click on "Next".
+
# No need for "Sample Schemas", click on "Next".
9 Uncheck "Specify Flash Recovery Area" and click on "Next".
+
# If you do not know what you're doing, check "Typical" and click on "Next"
10 No need for "Sample Schemas", click on "Next".
+
# Check "Keep the enhanced 11g default security settings" and click on "Next".
11 If you don't know what you're doing, check "Typical" and click on "Next"
+
# Uncheck "Enable automatic maintenance tasks" if you wish to do it by yourself and click on "Next".
12 Check "Keep the enhanced 11g default security settings" and click on "Next".
+
# View your filesystem layout and click on "Next".
13 Uncheck "Enable automatic maintenance tasks" if you wish to do it by
+
# "Create Database" is checked by default. Click on "Finish" to create database.
yourself and click on "Next".
+
# Summary of following operations to be performed, click on "OK".
14 View your filesystem layout and click on "Next".
+
# When database creation is complete, click on "Exit".
15 "Create Database" is checked by default. Click on "Finish" to create database.
+
16 Summary of following operations to be performed, click on "OK".
+
17 When database creation is complete, click on "Exit".
+
  
 
====Scripted====
 
====Scripted====
 
 
This section walks you through doing a scripted initial database creation.
 
This section walks you through doing a scripted initial database creation.
  
'''''The scripts assume they are the first database to be installed on this system.  If this is not the case review the xdb-create.sh script and comment out the portions which deal with the *.ora files.'''''
+
{{Note | The scripts assume they are the first database to be installed on this system.  If this is not the case review the xdb-create.sh script and comment out the portions which deal with the *.ora files.}}
  
 
Download the following tar file with a set of scripted database installation scripts.
 
Download the following tar file with a set of scripted database installation scripts.
Line 429: Line 424:
  
 
====Testing Database====
 
====Testing Database====
----
 
  
 
Login as the user oracle and run export ORACLE_SID="yourSID" etc., ie:
 
Login as the user oracle and run export ORACLE_SID="yourSID" etc., ie:
Line 468: Line 462:
  
 
===Starting oracle during the boot===
 
===Starting oracle during the boot===
----
 
  
 
If you want to start with your oracle SID, replace ":N" with ":Y" in /etc/oratab:
 
If you want to start with your oracle SID, replace ":N" with ":Y" in /etc/oratab:
Line 511: Line 504:
  
 
===Setting Permissions for Normal Users===
 
===Setting Permissions for Normal Users===
----
 
  
 
Since there is only one user(oracle) that has access to the oracle database, you need to add your normal user to the group "dba". In this case "joe" is the normal user:
 
Since there is only one user(oracle) that has access to the oracle database, you need to add your normal user to the group "dba". In this case "joe" is the normal user:
Line 561: Line 553:
  
 
Update system
 
Update system
pacman -Sy pacman
 
 
  pacman -Syu
 
  pacman -Syu
 
  pacman -S python
 
  pacman -S python
Line 582: Line 573:
  
 
==Troubleshooting==
 
==Troubleshooting==
----
 
  
 
Known issue: The Oracle Universal Installer(ie, in silent mode) seems create errors when installing on other paths than "../app/oracle/..".
 
Known issue: The Oracle Universal Installer(ie, in silent mode) seems create errors when installing on other paths than "../app/oracle/..".
  
 
==More Resources==
 
==More Resources==
----
 
  
 
Most of the steps are based on this oracle installation guide for ubuntu users. This guide includes step by step graphical examples:
 
Most of the steps are based on this oracle installation guide for ubuntu users. This guide includes step by step graphical examples:
 
http://www.pythian.com/blogs/1355/installing-oracle-11gr1-on-ubuntu-810-intrepid-ibex
 
http://www.pythian.com/blogs/1355/installing-oracle-11gr1-on-ubuntu-810-intrepid-ibex

Revision as of 13:14, 13 June 2012

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: Installation: Packages and AUR reference too old, Dutch version is up-to-date (Discuss in Talk:Oracle#)

This document will help you install Oracle Database 11gR1 on Arch Linux. If you only want to connect to Oracle databases running elsewhere, see the instructions for installing the Oracle client.

By using the install method 2 you will be able to finalize the long installation process with only a few steps.

Install method 1 - manual

This section will guide you through installing Oracle onto a fresh installation of archlinux. This is a general approach that has been tested with kernel 2.6.28.ARCH x86_64 and Oracle 11g R1 64-bit. This should in principle work with other versions of Oracle.

Pre Installation

Installing Desktop Environment

# pacman -Syu
# pacman -S python
# pacman -U ftp://ftp.berlios.de/pub/aurbuild/aurbuild-1.8.4-1-any.pkg.tar.gz

Install and test Xorg.

# pacman -S xorg
# pacman -S hwd

Since Xorg 7.4, xorg.conf isn't necessary anymore. This command is optional.

# hwd -x
# cp /etc/X11/xorg.conf.vesa /etc/X11/xorg.conf

Check with startx (Should get mouse movement with X cursor - Ctrl-Alt-Backspace to exit.)

$ startx

Install desktop environment, Gnome, KDE or Xfce. In this case Xfce4 will be installed:

# pacman -S xfce4
# pacman -S pcmanfm

Run xfce:

$ startxfce4 

Required packages for Oracle database installation

Arch i686:

  • base-devel
  • java-runtime (openjdk6 or jre jdk)
  • ksh, rpm, gawk, gdb, libaio, libelf, sysstat, unixodbc, libstdc++5
  • unzip, sudo

Arch x86_64:

  • base-devel
  • java-runtime (openjdk6 or jre jdk)
  • ksh, rpm, gawk, gdb, libaio, libelf, sysstat, libstdc++5
  • unzip, sudo

Install packages:

# pacman -S unzip sudo java-runtime base-devel

Install ksh (problem with aurbuild -s ksh).

mkdir -p ABS/ksh
cd ABS/ksh
chmod 777 -R /software
wget --http-user "I accept www.opensource.org/licenses/cpl" --http-password "." http://www.research.att.com/~gsf/download/tgz/INIT.2011-02-08.tgz
wget --http-user "I accept www.opensource.org/licenses/cpl" --http-password "." http://www.research.att.com/~gsf/download/tgz/ast-ksh.2011-02-08.tgz
wget https://aur.archlinux.org/packages/ks/ksh/PKGBUILD
wget https://aur.archlinux.org/packages/ks/ksh/ksh.install
makepkg -c --asroot
makepkg -i --asroot
pacman -S icu
aurbuild -s beecrypt
aurbuild -s rpm
pacman -S gawk
pacman -S gdb
aurbuild -s libaio
pacman -S libelf
pacman -S sysstat
pacman -S libstdc++5

Oracle database 32-bit requires unixodbc.

# pacman -S unixodbc

Optional lib32 packages on x86_64:

# pacman -S lib32-libstdc++5 
# pacman -S lib32-glibc 
# pacman -S lib32-gcc-libs

Oracle database require 32-bit libaio and unixodbc on x86_64 but is not necessary under Arch linux.

Some prerequisite symbolic links for Oracle Universal Installer.

# ln -s /usr/bin/rpm /bin/rpm
# ln -s /usr/bin/ksh /bin/ksh
# ln -s /bin/awk /usr/bin/awk
# ln -s /bin/tr /usr/bin/tr
# ln -s /usr/bin/basename /bin/basename

Arch x86_64:

# ln -s /usr/lib /usr/lib64

Configuration

Create users and group for Oracle database:

# groupadd oinstall
# groupadd dba
# useradd -m -g oinstall -G dba oracle

Set password for the user oracle:

# passwd oracle

Optional: Add oracle to the sshd_config file.

# pacman -S openssh

Add this line to /etc/ssh/sshd_config:

AllowUsers oracle

Add oracle to /etc/sudoers. This will give oracle super user privilege.

oracle    ALL=(ALL) ALL

Add these lines to /etc/sysctl.conf (Review Oracle documentation to adjust these settings).

# oracle kernel settings
fs.file-max = 6553600
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144

Add these lines to /etc/security/limits.conf (Review Oracle documentation to adjust these settings)

# oracle settings
oracle           soft    nproc   2047
oracle           hard    nproc   16384
oracle           soft    nofile  1024
oracle           hard    nofile  65536

Optional: You may reboot now if you want the changes to take effect.

Create some directories for Oracle database. You can chose the directory path. Here is an example.

mkdir -p /oracle
mkdir -p /oracle/inventory
mkdir -p /oracle/recovery
mkdir -p /oracle/product/db

Set permissions for the directories.

chown -R oracle:dba /oracle
chmod 777 /tmp

Create or update oracle bashrc /home/oracle/.bashrc. Here is an example of the oracle user settings.

export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/product/db
export ORACLE_SID=xdb
export ORACLE_INVENTORY=/oracle/inventory
export ORACLE_BASE ORACLE_SID ORACLE_HOME
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export EDITOR=nano
export VISUAL=nano

Graphical Installation

Installing Oracle database software

Download the Oracle database from here: http://www.oracle.com/technology/software/products/database/index.html

Unzip the Oracle database.

Arch i686:

unzip linux_11gR1_database_1013.zip -d /media

Arch x86_64:

unzip linux.x64_11gR1_database_1013.zip -d /media

Optional: Arch x86_64 (only required if the installer will not launch automatically ... at the time of this writing there was an issue with the packaged unzip in the 64-bit Oracle installer):

cd /media/database/install
mv unzip unzipx
ln -s /usr/bin/unzip 

Change the permissions for the extracted Oracle database.

chmod -R 777 /media/database
chown -R oracle:oinstall /media/database

Enter the directory where you extracted the Oracle database.

In oder to run oracle installation script you need to export the X display as a normal user:

DISPLAY=:0.0; export DISPLAY; xhost +

Login as the user oracle and export the X display:

su oracle
DISPLAY=:0.0; export DISPLAY

Enter the database directory and run the Oracle Universal Installer as the user oracle.

cd /media/database
./runInstaller -ignoreSysPrereqs

During the Graphical installation:

  1. Click on "Next".
  2. Choose "Enterprise Edition" Installation Type and click on "Next"
  3. Oracle Base should be: /oracle. Don't change it, unless you know what you're doing.
    1. Change the default "Name" to orarch or something else.
    2. The predefined path in /etc/rc.d/oracledb is "db", ie: /oracle/product/db. If you want to use a different path you'll have to change /etc/rc.d/oracledb, so that the startup script can locate ORACLE_HOME directory.
    3. After changing the defaults, click on "Next".
  4. Since Oracle database requires certain distro requirement, you'll have to manually check them and then click on "Next".
  5. Chose "Software Install Only" and click on "Next".
  6. There is only one DBA group for oracle database. Click on "Next".
  7. Install "Summary" shows what's going to be installed. Click on "Install".
  8. The installation will take some time, especially the "Linking" part. Be patient! If you get an error message ignore it by clicking on "Continue".
    1. At the end of the installation you'll have to open another terminal, and execute /oracle/product/db/root.sh as root. Don't click on "OK" yet.
    2. When running root.sh, you'll be offered to use /usr/local/bin as the full pathname. Press the "Enter" key here.
    3. Now you can click on "OK"
  9. Installation is finished, click on "Exit" and "Yes", you really want to exit.

Oracle Enterprise Manager installation (optional)

This section describes how to install the web based OEM available in 10g+.

Depending on your settings the OUI may have already installed this.

Login or su to oracle, then run the following commands (answering the prompts approriately). This may take a while.

cd ${ORACLE_HOME}/bin
./emca -repos create
./emca -config dbcontrol db

Test this out by navigating to the enterprise manager (adjust the servername (localhost) apporpriately).

https://localhost:1158/em/console

You can control OEM with the following commands.

emctl status dbconsole
emctl stop dbconsole
emctl start dbconsole

Install method 2 - AUR

Installation

Note: This installation method creates a database automatically. The Oracle database will therefore be ready to be used after the installation.

Step 1. Download the Arch linux package from AUR: https://aur.archlinux.org/packages.php?ID=23730 Download the Oracle database 11gR1: http://www.oracle.com/technology/software/products/database/index.html

Step 2. Extract the Arch linux package into a directory. Copy the Oracle database 11gR1 into that directory as well.

INFO: The default install configuration in ee.rsp.patch is:

ORACLE_BASE="/home/oracle/app/oracle"
ORACLE_HOME="/home/oracle/app/oracle/product/11.1.0/orarch"
ORACLE_HOME_NAME="orarch"
s_globalDBName="archlinux"
s_dbSid="archlinux"
s_superAdminSamePasswd="orarchdbadmin"
s_superAdminSamePasswdAgain="orarchdbadmin"

Optional: You can either change the default password now or later after the installation. If you change the ee.rsp.patch file, you need to update the md5sums in the PKGBUILD file. To obtain the md5sum, run (makepkg -g) or:

md5sum ee.rsp.patch 

Create the Oracle database package by using makepkg:

makepkg -s

Step 3. Install the package that makepkg has created by using pacman. You may get an error stating "/bin/ksh already exists", just remove that file and pacman will continue.

Arch i686:

pacman -U oracle-11gR1-1-i686.pkg.tar.gz 

Arch x86_64:

pacman -U oracle-11gR1-1-x86_64.pkg.tar.gz 

Pacman will now install the Oracle database by executing Oracle's own installation script(./runInstaller -silent -ignoreSysPrereqs).

The installation will take som time, please be patient. Do not exit terminal during database installation, especially when the installation script is executing configuration assistants:

.... 
Starting to execute configuration assistants
Configuration assistant "Oracle Net Configuration Assistant" succeeded 
...

The installation script ends something like this:

The following configuration scripts need to be executed as the "root" user.
#!/bin/sh
#Root script to run
/home/oracle/oraInventory/orainstRoot.sh
/home/oracle/app/oracle/product/11.1.0/orarch/root.sh
To execute the configuration scripts:
   1. Open a terminal window
   2. Log in as "root"
   3. Run the scripts
   
The installation of Oracle Database 11g was successful.
Please check '/home/oracle/oraInventory/logs/silentInstall2009-03-03_07-24-10PM.log'
for more details.

Step 4. Run these scripts as root:

[ahc@archlinux ~]$ su
Password: 
cd /home/oracle/oraInventory
./orainstRoot.sh
cd /home/oracle/app/oracle/product/11.1.0/orarch
./root.sh

Step 5. The default user for the Oracle database is "oracle". Since the password is not set for the user oracle, you need to run passwd as root:

passwd oracle

Step 6. Login as the user oracle.

su oracle

Create the file /home/oracle/.bashrc and add these lines to the .bashrc file:

export ORACLE_SID=archlinux
export ORACLE_HOME=/home/oracle/app/oracle/product/11.1.0/orarch
export PATH=$PATH:$ORACLE_HOME/bin

Step 7. If you haven't altered the ee.rsp.patch file, you need to change the administration password for SYS and SYSTEM.

Note: If the database isn't mounted or opened. Login as the user oracle and try this first:
su oracle
sqlplus '/as sysdba'
SQL> startup mount;
SQL> alter database open; 

Changing the password for the SYSTEM user:

sqlplus '/as sysdba'
SQL> show user
USER is "SYS"
SQL> passw system
Changing password for system
New password:
Retype new password:
Password changed
SQL> quit

Changing the password for the SYS user:

sqlplus system/secretpassword
SQL> show user;
USER is "SYSTEM"
SQL> passw sys
Changing password for sys
New password: 
Retype new password: 
Password changed
SQL> quit

Post Installation

Creating Initial Database

Graphical

You have only installed the Oracle database software. Now you need to create a database. Login as the user oracle:

su oracle

Export the ORACLE_HOME binary directory:

export ORACLE_HOME=/oracle/product/db
export PATH=$PATH:$ORACLE_HOME/bin

Run database installation script:

dbca

During the graphical installation:

  1. Click on "Next".
  2. Check "Create a Database" and click on "Next".
  3. Check "General Purpose or Transaction Processing" and click on "Next".
  4. Chose a database name and SID. Example: Global Database Name: archlinux, SID: archlinux. And then click on "Next".
  5. Uncheck "Configure Enterprise Manager", leave it empty and click on "Next".
  6. Check "Use the Same Administrative Password for All Accounts", set password and click on "Next".
  7. Check "File System" and click on "Next".
  8. Check "Use Database File Locations from Template" and click on "Next".
  9. Uncheck "Specify Flash Recovery Area" and click on "Next".
  10. No need for "Sample Schemas", click on "Next".
  11. If you do not know what you're doing, check "Typical" and click on "Next"
  12. Check "Keep the enhanced 11g default security settings" and click on "Next".
  13. Uncheck "Enable automatic maintenance tasks" if you wish to do it by yourself and click on "Next".
  14. View your filesystem layout and click on "Next".
  15. "Create Database" is checked by default. Click on "Finish" to create database.
  16. Summary of following operations to be performed, click on "OK".
  17. When database creation is complete, click on "Exit".

Scripted

This section walks you through doing a scripted initial database creation.

Note: The scripts assume they are the first database to be installed on this system. If this is not the case review the xdb-create.sh script and comment out the portions which deal with the *.ora files.

Download the following tar file with a set of scripted database installation scripts.

wget http://sites.google.com/site/mbasil77/Home/instanceCreateXdb.tgz

Extract the directory

tar xzf instanceCreateXdb.tgz

Move into instanceCreateXdb directory

cd instanceCreateXdb

File list

  • CreateDB.sql
  • CreateDBCatalog.sql
  • initxdb.dbs.ora
  • initxdb.ora
  • listener.ora
  • postDBCreation.sql
  • sqlnet.ora
  • sysObjects.sql
  • tnsnames.ora
  • xdb-create.sh
  • xdb-create.sql
  • xdb-secfix.sh

Script notes

  • the files assume a database sid of xdb
  • the files assume an oracle base of /oracle/product/db
  • review all memory and storage parameters against Oracle documentation

Setup filesystem (as root)

./xdb-create.sh

Install database from script (this will take a long time)

su oracle
sqlplus / as sysdba @/oracle/admin/xdb/scripts/xdb-create.sql

Testing Database

Login as the user oracle and run export ORACLE_SID="yourSID" etc., ie:

export ORACLE_SID=xdb
export ORACLE_HOME=/oracle/product/db
export PATH=$PATH:$ORACLE_HOME/bin

Running oraenv should confirm the exported configuration:

oraenv
ORACLE_SID = [xdb] ? 
The Oracle base for ORACLE_HOME=/oracle/product/db 
is /oracle


Check if the database is shutting down or starting:

sqlplus '/as sysdba'
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;

ORACLE instance started.

Total System Global Area  385003520 bytes
Fixed Size		    1300100 bytes
Variable Size		  234883452 bytes
Database Buffers	  142606336 bytes
Redo Buffers		    6213632 bytes
Database mounted.
Database opened.

Type "quit" when you want to leave SQL prompt:

SQL> quit

Starting oracle during the boot

If you want to start with your oracle SID, replace ":N" with ":Y" in /etc/oratab:

<your sid>:<oracle home>:N
<your sid>:<oracle home>:Y

Example from Scripted database creation (/etc/oratab):

xdb:/oracle/product/db:Y

To start the oracle database daemon during boot, add "oracledb" in your /etc/rc.conf:

DAEMONS=(oracledb syslog-ng dbus !network netfs crond ntpd alsa hal wicd fam)

Note: If the daemon doesn't start, please check that the ORACLE_HOME path matches your current oracle directory in /etc/rc.d/oracledb:

export ORACLE_HOME=/oracle/product/db
[oracle@archlinux orarch]$ pwd
/oracle/product/db

Test starting the daemon as root:

/etc/rc.d/oracledb start
Starting Oracle: 
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 27-FEB-2009 23:14:45
...
The command completed successfully
Processing Database instance "archlinux": log file 
/oracle/product/db/startup.log
OK

Now you'll login to your oracle database each time you reboot:

su oracle
export ORACLE_SID=xdb
oraenv
sqlplus '/as sysdba'

Install Method 2:

su oracle
export ORACLE_SID=archlinux
oraenv
sqlplus '/as sysdba'

Setting Permissions for Normal Users

Since there is only one user(oracle) that has access to the oracle database, you need to add your normal user to the group "dba". In this case "joe" is the normal user:

gpasswd -a joe dba

The group changes will take effect after you logout and login again. The user oracle has the permissions to access the oracle home directory, ie /home/oracle:

drwx------ 6 oracle dba 4096 2009-02-27 23:27 oracle

You need to grant the group "dba" permission to execute the binary files in the oracle home directory:

chmod -R g+x /home/oracle

Now you'll be able to run the oracle database as the normal user.

Transfer existing Oracle installation

Moving or transferring Oracle can be quite useful in the following conditions:

  • replacing hardware
  • setting up several dev machines
  • running lean system (no desktop manager, java, etc)

The installation of Oracle requires several packages. However, just running an Oracle database is much simpler and has far fewer requirements, as shown below.

In principle transferring Oracle should work across distros. Transferring from RHEL/Centos 5.2 to ARCH 2009.02 has been tested successfully.

To prep Oracle for a move shutdown database services

dbstop ${ORACLE_HOME}
lsnrctl stop

Optional: stop OEM if it is running

emctl stop dbconsole

If you are running other Oracle daemons stop them as well

This section assumes the following conditions about the existing Oracle installation:

  • oracle root is /oracle
  • oracle data is at /oracle/oradata/<sid>

Tar up entire Oracle installation and data.

cd /
tar czf oracle.tgz /oracle

Using ssh and sftp or your method of choice transfer oracle.tgz to the root (/) of the target system.

Login to target system as root and unpack the tar

cd /
tar xzf oracle.tgz
chmod 755 -R /oracle
chown -R oracle:dba /oracle

Update system

pacman -Syu
pacman -S python
pacman -U ftp://ftp.berlios.de/pub/aurbuild/aurbuild-1.8.4-1-any.pkg.tar.gz
pacman -S unzip
pacman -S sudo

Install required package run Oracle database and required daemons.

aurbuild -s libaio
pacman -S sysstat

Configure server for oracle

Oracle#Configuration

Setup OEM (optional)

Oracle#Oracle_Enterprise_Manager_installation_.28optional.29

Execute appropriate/desired post installation steps

Oracle#Post_Installation

Troubleshooting

Known issue: The Oracle Universal Installer(ie, in silent mode) seems create errors when installing on other paths than "../app/oracle/..".

More Resources

Most of the steps are based on this oracle installation guide for ubuntu users. This guide includes step by step graphical examples: http://www.pythian.com/blogs/1355/installing-oracle-11gr1-on-ubuntu-810-intrepid-ibex