DBA Tips Archive for Oracle |
Install Oracle Database 11g R2 on Linux - (RHEL 6)
by Jeff Hunter, Sr. Database Administrator
This article is a comprehensive guide for installing Oracle Database 11g Release 2 (11.2.0.1) on the Red Hat Enterprise Linux 6 (RHEL6) operating environment. The example database created in this guide will use the local file system for all physical database file storage (data files, control files, online redo log files, fast recovery area).
Both 32-bit (x86) and 64-bit (x86_64) architectures are covered in this guide. Unless otherwise noted, the installation steps are the same for either. Having said that, one of the first decisions to make before continuing with this guide is which architecture you will be using. Both Oracle and Linux must be installed on the same operating system architecture. For example, 32-bit Oracle is only supported to run on 32-bit Linux OS and 64-bit Oracle is only supported to run on 64-bit Linux OS.
While this guide provides detailed instructions for successfully installing a complete Oracle Database 11g Release 2 system, it is by no means a substitute for the official Oracle documentation (see list below). In addition to this guide, users should also consult the following Oracle documents to gain a full understanding of alternative configuration options, installation, and administration with Oracle Database. Oracle's official documentation site is docs.oracle.com.
Release Notes 11g Release 2 (11.2) for Linux New Features Guide 11g Release 2 (11.2) Universal Installer and OPatch User's Guide 11g Release 2 (11.2) for Windows and UNIX Database Installation Guide 11g Release 2 (11.2) for Linux Database Quick Installation Guide 11g Release 2 (11.2) for Linux x86 Database Quick Installation Guide 11g Release 2 (11.2) for Linux x86-64 Database Administrator's Guide 11g Release 2 (11.2) Database Concepts 11g Release 2 (11.2) Database Examples Installation Guide 11g Release 2 (11.2)
By the time you finish this article, the following will be installed and configured.
Oracle Database 11g Release 2 (11.2) software installed on a local file system (namely /u01/app/oracle/product/11.2.0/dbhome_1).
Oracle Database 11g Examples (formerly Companion).
Default Oracle Net Listener running on the system.
A fully configured general-purpose Oracle 11g database that makes use of the local file system for physical database file storage (data files, control files, online redo log files, fast recovery area).
Optional instructions are included to put the new database into Archive Log Mode.
Oracle Enterprise Manager Database Control running and can be accessed using a Web browser.
The following is a list of items NOT covered in this article:
Installing the Oracle Database software on a system that has an existing Oracle software installation. The installation in this article describes installing Oracle Database 11g Release 2 (11.2) on a system with no previous Oracle installation.
Installing Oracle Grid Infrastructure for a Cluster and Oracle Real Application Clusters (RAC). For a complete discussion on installing Oracle RAC 11g Release 2 (11.2) and creating a clustered database, see my article Building an Inexpensive Oracle RAC 11g R2 on Linux - (RHEL 5.5).
Enabling Enterprise Manager e-mail notifications or automated backups.
This section describes the hardware and Oracle configuration parameters that will be used in this guide.
The machine used for this guide will consist of an AMD Athlon™ 64 X2 Dual Core Processor 3800+ running CentOS Release 6.2 (x86_64). The server has 4GB of memory and contains four (4) internal hard disks that will be configured using Logical Volume Manager (LVM). Four LVM Volume Groups will be created along with separate logical volumes used to store the Linux operating system, swap, Oracle Database Software, database files, and the fast recovery area.
| Machine Name | IP Address | Processor | Operation Environment | Memory |
|---|---|---|---|---|
| testnode1.idevelopment.info | 192.168.1.106 | 1 x AMD Athlon™ 64 X2 Dual Core Processor 3800+ | CentOS Release 6.2 - (64-bit) | 4GB |
| Hard Drive | Partition | Size - (MB) | Type | Usage | Mount Point |
|---|---|---|---|---|---|
/dev/sda |
/dev/sda1 | 500 | ext4 | Boot Volume | /boot |
| /dev/sda2 | 36,363 | Physical Volume (LVM) | LVM | vg_testnode1 |
|
/dev/sdb |
/dev/sdb1 | 36,863 | Physical Volume (LVM) | LVM | vg_orasoftware |
/dev/sdc |
/dev/sdc1 | 36,863 | Physical Volume (LVM) | LVM | vg_oradata |
/dev/sdd |
/dev/sdd1 | 36,863 | Physical Volume (LVM) | LVM | vg_orafra |
| LVM Volume Group | Logical Volume | Size - (MB) | Type | Usage | Mount Point |
|---|---|---|---|---|---|
vg_testnode1 |
lv_root | 30,248 | ext4 | Linux OS | / |
| lv_swap | 6,112 | swap | Swap | ||
vg_orasoftware |
lv_orasoftware | 36,860 | ext4 | Oracle Database Software | /u01 |
vg_oradata |
lv_oradata | 36,860 | ext4 | Database Files | /u02 |
vg_orafra |
lv_orafra | 36,860 | ext4 | Fast Recovery Area | /u03 |
The following is an introduction to some of the configuration parameters and directory paths that will be used for installing the Oracle Database Software and creating a fully functional Oracle 11g database.
| O/S User | Primary Group | Supplementary Groups | Home Directory |
|---|---|---|---|
| oracle (501) | oinstall (501) | dba (502), oper (503) | /home/oracle |
| Software Component | Version |
|---|---|
| Oracle Database | Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64 |
| Software Component | Oracle SID | Global Database Name |
|---|---|---|
| Oracle Database | testdb1 | testdb1.idevelopment.info |
| Description | Directory |
|---|---|
| Oracle Base directory | /u01/app/oracle |
| Oracle Home directory for Oracle Database | /u01/app/oracle/product/11.2.0/dbhome_1 |
| Oracle Data directory | /u02/app/oracle/oradata |
| Data files for db_name1 database | /u02/app/oracle/oradata/db_name1 |
| Sub-tree for Recovery files | /u03/app/oracle/fast_recovery_area |
| Recovery files for db_name1 database | /u03/app/oracle/fast_recovery_area/db_name1 |
This guide adheres to the latest Optimal Flexible Architecture (OFA) standard for Oracle Database 11g Release 2 (11.2) for Linux.
This section provides a summary of the steps used to install the Linux operating system. This guide is designed to work with CentOS 6, Oracle Linux 6, or Red Hat Enterprise Linux 6 and follows Oracle's suggestion of performing a "Basic Server" installation type to ensure all expected Linux OS packages are present for a successful Oracle Database installation.
Although I have used Red Hat Fedora in the past, I wanted to switch to a Linux environment that would guarantee all of the functionality contained with Oracle. This is where CentOS comes in. The CentOS project takes the Red Hat Enterprise Linux source RPMs and compiles them into a free clone of the Red Hat Enterprise Server product. This provides a free and stable version of the Red Hat Enterprise Linux (AS/ES) operating environment that I can use for Oracle testing and development. I have moved away from Fedora as I need a stable environment that is not only free, but as close to the actual Oracle supported operating system as possible. While CentOS is not the only project performing the same functionality, I tend to stick with it as it is stable and reacts fast with regards to updates by Red Hat.
Use the links below to download CentOS 6.2 for either x86 or x86_64 depending on your hardware architecture.
If you are downloading the above ISO files to a MS Windows machine, there are many options for burning these images (ISO files) to a DVD. You may already be familiar with and have the proper software to burn images to DVD. If you are not familiar with this process and do not have the required software to burn images to DVD, here are just three of the many software packages that can be used.
After downloading and burning the CentOS images (ISO files) to a DVD, insert CentOS Disk #1 into the server, power it on, and answer the installation screen prompts as noted below.
| Screen Name | Response | Screen Shot | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Boot Screen | The first screen is the CentOS 6.2 boot screen. Select the option Install or upgrade an existing system. | ![]() |
||||||||
| Media Test | When asked to test the CD media, tab over to [Skip] and hit [Enter]. If there were any errors, the media burning software would have warned us. After several seconds, the installer should then detect the video card, monitor, and mouse. The installer then goes into GUI mode. | ![]() |
||||||||
| Welcome to CentOS | At the welcome screen, click [Next] to continue. | ![]() |
||||||||
| Language Selection | Select the appropriate language for your configuration and click [Next] to continue. | ![]() |
||||||||
| Keyboard Selection | Select the appropriate keyboard for your configuration and click [Next] to continue. | ![]() |
||||||||
| Storage Options | This example will use local internal disks for the OS installation and therefore only requires the "Basic Storage Devices" option. Select the appropriate storage option for your configuration and click [Next] to continue. | ![]() |
||||||||
| Storage Device Warning | The installer will display a warning dialog which indicates that the storage device may contain important data or that the device may need to be re-initialized. Select the option to discard any data or to re-initialize the device. | ![]() |
||||||||
| Host Name | Enter a fully qualified host name for this computer, then click the [Configure Network] button. | ![]() |
||||||||
| Select Connection |
The installer should have successfully detected the installed
network device(s) and listed them as connections.
Highlight the relevant connection and click the [Edit] button. |
![]() |
||||||||
| Manually Configure IP Address |
Check the "Connect automatically" check-box.
It is not recommended to use DHCP for an Oracle Database server so this guide will use the traditional method of manually assigning a static IP address. The settings you make here will, of course, depend on your network configuration. To manually configure an IP address, click on the "IPv4 Settings" tab, set the method to "Manual", click the [Add] button and enter the appropriate network details. After verifying the network configuration, click the [Apply] and [Close] buttons to return to the host name screen, then click the [Next] button. |
![]() |
||||||||
| Time Zone | Select the appropriate time zone for your environment and click [Next] to continue. | ![]() |
||||||||
| Set Root Password | Select a root password and click [Next] to continue. | ![]() |
||||||||
| Partition Type | Select the appropriate partition type for your configuration. In order to modify the default partitioning layout, check the "Review and modify partitioning layout" option. Click [Next] to continue. | ![]() |
||||||||
| Select System Drive(s) (optional) |
If the machine is configured with multiple storage devices, select which
device (or devices) to include as system drives. Any selected devices will be used
as system drives and will be formatted by the installer and included as the
target for the OS install.
After selecting which devices will be system drives, indicate which of them will have the bootloader installed. In this guide, only one of the devices will be used for the system drive. |
![]() |
||||||||
| Disk Partitioning |
The installer will present a default partitioning scheme for the
current disk sizes. Modify any volumes as required. The settings you
make here will, of course, depend on your storage configuration.
Click here for a preview of the disk configuration used for this guide. Ensure enough swap space is allocated as required by Oracle (which is a multiple of the available RAM). The following is Oracle's minimum requirement for swap space:
Once you are satisfied with the disk layout, click [Next] to continue, then the [Format] and [Write changes to disk] buttons on the following warning dialogs. |
![]() |
||||||||
| Boot Loader | In almost all cases, the installer will choose the correct boot loader options. Accept the boot loader settings by clicking the [Next] button to continue. | ![]() |
||||||||
| Installation Type | Choose the "Basic Server" installation, check the "Customize now" option, and then click [Next] to continue. | ![]() |
||||||||
| Package Group Selection |
By default, CentOS installs most of the software required
for a typical server. There are, however, several other packages (RPMs)
that are required to successfully install the Oracle database software.
By choosing the "Customize now" option in the previous screen,
the installer brings up the "Package Group Selection" screen which
allows you to select the required package groups and individual packages
within the details section (Optional packages).
Choose the following package groups to prepare the machine for an Oracle database install as well as setting up a typical gnome desktop. Note that alternative installations may require more packages to be loaded in addition to the ones listed below. * Optional packageApplications > Emacs * Applications > Internet Browser * Base System > Base Base System > Client management tools Base System > Compatibility libraries Base System > Console internet tools * Base System > Console internet tools > ftp * Base System > Hardware monitoring utilities Base System > Large Systems Performance Base System > Network file system client Base System > Performance Tools Base System > Perl Support Base System > iSCSI Storage Client * Desktops > Desktop Desktops > Desktop Platform Desktops > Fonts Desktops > General Purpose Desktop Desktops > Graphical Administration Tools Desktops > Input Methods Desktops > X Window System Development > Additional Development Development > Development Tools Servers > Server Platform Servers > System administration tools After selecting the appropriate package groups, click [Next] to continue. |
![]() |
||||||||
| Installation Process | The CentOS install process will start immediately. Wait for the installation to complete. | ![]() |
||||||||
| Reboot System | After all of the packages and bootloader have been installed, the installer will eject the DVD from the drive. Take out the DVD and click [Reboot] to reboot the system and complete the installation. | ![]() |
||||||||
| Post Installation Wizard Welcome Screen |
When the system boots into CentOS Linux for the first time, it will prompt you with another welcome screen for the "Post Installation Wizard". The post installation wizard allows you to make final OS configuration settings. On the "Welcome screen", click [Forward] to continue. | ![]() |
||||||||
| License Agreement | Accept the license agreement and click [Forward] to continue. | ![]() |
||||||||
| Create User |
Create any additional (non-oracle) operating system user accounts if desired and click [Forward] to
continue.
If you chose not to define any additional operating system user accounts, click [Yes] to acknowledge the warning dialog. |
![]() |
||||||||
| Date and Time | Adjust the date and time settings if necessary and click [Forward] to continue. | ![]() |
||||||||
| Kdump | Accept the default setting on the Kdump screen and click [Forward] to continue. | ![]() |
||||||||
| Reboot System | Enabling Kdump requires the machine to be rebooted in order to reallocate memory accordingly. Click [Yes] on the warning dialog to reboot the system. | ![]() |
||||||||
| Login Screen | After the machine boots, you are presented with the login screen. Log in to the system by clicking on a user in the login screen or choose "Other..." to log in as root. | ![]() |
||||||||
| User Desktop | After successfully logging in to the system, you are ready to start using the desktop. | ![]() |
Use the following steps to disable the firewall.
Open the "Firewall Configuration" dialog (System > Administration > Firewall).
Click the [Close] button on the startup dialog and type in the "root" password if requested.
On the resulting dialog, click the [Disable] button, followed by the [Apply] button on the toolbar.
Click the [Yes] button on the confirmation dialog.
Quit the "Firewall Configuration" dialog.
Disable SELinux by editing the "/etc/selinux/config" file, making sure the SELINUX flag is set as follows.
|
Once the change is complete, restart the server.
|
After installing the Linux OS, the next step is to verify and install all packages required for Oracle Database 11g Release 2. The Oracle Universal Installer (OUI) performs checks on the machine during installation to verify that it meets the appropriate operating system package requirements. To ensure that these checks complete successfully, verify the software requirements documented in this section before starting the Oracle install.
Although many of the required packages for Oracle were installed during the Linux installation, several will be missing either because they were considered optional within the package group or simply didn't exist in any package group.
The packages listed in this section (or later versions) are required for Oracle database 11g Release 2 running on the Red Hat Enterprise Linux 6, Oracle Linux 6, or CentOS 6 platform.
While it is possible to query each individual package to determine which ones are missing and need to be installed, an easier method is to run the rpm -Uvh PackageName command from the DVD. For packages that already exist and are up to date, the RPM command will simply ignore the install and print a warning message to the console that the package is already installed.
binutils-2.20.51.0.2 compat-libcap1-1.10 compat-libcap1-1.10 (32-bit) compat-libstdc++-33-3.2.3 compat-libstdc++-33-3.2.3 (32 bit) elfutils-libelf-0.148 elfutils-libelf-devel-0.148 gcc-4.4.4 gcc-c++-4.4.4 glibc-2.12-1 glibc-2.12-1 (32 bit) glibc-common-2.12 glibc-devel-2.12 glibc-devel-2.12 (32 bit) glibc-headers-2.12 ksh-20100621 libaio-0.3.107 libaio-0.3.107 (32 bit) libaio-devel-0.3.107 libaio-devel-0.3.107 (32 bit) libgcc-4.4.4 libgcc-4.4.4 (32 bit) libstdc++-4.4.4 libstdc++-4.4.4 (32 bit) libstdc++-devel-4.4.4 libstdc++-devel-4.4.4 (32 bit) make-3.81 numactl-devel-2.0.3 sysstat-9.0.4 unixODBC-2.2.14 unixODBC-2.2.14 (32 bit) unixODBC-devel-2.2.14
Each of the packages listed above can be found on the CentOS 6 for x86_64 DVDs.
|
binutils-2.20.51.0.2 compat-libcap1-1.10 compat-libstdc++-33-3.2.3 elfutils-libelf-0.148 elfutils-libelf-devel-0.148 elfutils-libelf-devel-static-0.148 gcc-4.4.4 gcc-c++-4.4.4 glibc-2.12-1 glibc-common-2.12 glibc-devel-2.12 glibc-headers-2.12 kernel-headers-2.6.32 ksh-20100621 libaio-0.3.107 libaio-devel-0.3.107 libgcc-4.4.4 libgomp-4.4.4 libstdc++-4.4.4 libstdc++-devel-4.4.4 make-3.81 numactl-devel-2.0.3 sysstat-9.0.4 unixODBC-2.2.14 unixODBC-devel-2.2.14
Each of the packages listed above can be found on the CentOS 6 for x86 DVDs.
|
This section provides instructions on how to create the operating system user and groups that will be used to install and manage the Oracle Database 11g Release 2 software. In addition to the Oracle software owner, another OS user (jhunter) will be configured with the appropriate DBA related OS groups to manage the Oracle database.
The following OS groups will be created.
| Description | OS Group Name | OS Group ID | OS Users Assigned to this Group | Oracle Privilege | Oracle Group Name |
|---|---|---|---|---|---|
| Oracle Inventory and Software Owner | oinstall | 501 | oracle | ||
| Database Administrator | dba | 502 | oracle, jhunter | SYSDBA | OSDBA |
| Database Operator | oper | 503 | oracle, jhunter | SYSOPER | OSOPER |
Oracle Inventory Group (typically oinstall)
This group must be created the first time you install Oracle software on the system. Members of the OINSTALL group are considered the "owners" of the Oracle software and are granted privileges to write to the Oracle central inventory (oraInventory). When you install Oracle software on a Linux system for the first time, OUI creates the /etc/oraInst.loc file. This file identifies the name of the Oracle Inventory group (by default, oinstall), and the path of the Oracle Central Inventory directory.
Ensure that this group is available as a primary group for all planned Oracle software installation owners. For the purpose of this guide, the oracle installation owner will be configured with oinstall as its primary group.
Database Administrator (OSDBA, typically dba)
Members of the OSDBA group can use SQL to connect to an Oracle instance as SYSDBA using operating system authentication. Members of this group can perform critical database administration tasks, such as creating the database and instance startup and shutdown. The default name for this group is dba. The SYSDBA system privilege allows access to a database instance even when the database is not open. Control of this privilege is totally outside of the database itself.
The oracle installation owner should be a member of the OSDBA group (configured as a secondary group) along with any other DBA user accounts (i.e. jhunter) needing access to an Oracle instance as SYSDBA using operating system authentication.
The SYSDBA system privilege should not be confused with the database role DBA. The DBA role does not include the SYSDBA or SYSOPER system privileges.
Database Operator (OSOPER, typically oper)
Members of the OSOPER group can use SQL to connect to an Oracle instance as SYSOPER using operating system authentication. Members of this optional group have a limited set of database administrative privileges such as managing and running backups. The default name for this group is oper. The SYSOPER system privilege allows access to a database instance even when the database is not open. Control of this privilege is totally outside of the database itself. To use this group, choose the Advanced installation type to install the Oracle database software.
Create the recommended OS groups and user for the Oracle Database software owner.
|
Create a new password for the oracle account.
|
Optionally, configure any other OS users with the appropriate DBA related OS groups to manage the Oracle database. Remember to use the append option (-a) to the usermod command so that the user will not be removed from groups not listed.
|
Log in to machine as the oracle user account and create the following login script (.bash_profile). Values marked in red should be customized for your environment.
|
|
Before installing the software, complete the following procedure to verify that the user nobody exists on the system.
To determine if the user exists, enter the following command.
|
If this command displays information about the nobody user, then you do not have to create that user.
If the user nobody does not exist, then enter the following command to create it.
|
The next step is to configure an Oracle base path compliant with an Optimal Flexible Architecture (OFA) structure and correct permissions. The Oracle base path will be used to store the Oracle Database software.
|
Create the directory that will be used to store the Oracle data files.
|
Create the directory that will be used to store the Oracle recovery files.
|
At the end of this section, you should have the following user, groups, and directory path configuration.
An Oracle central inventory group, or oraInventory group (oinstall), whose members include oracle. Members of this group have the central inventory group as their primary group and are granted permissions to write to the oraInventory directory.
A separate OSDBA group (dba), whose members include oracle, and who are granted the SYSDBA privilege to administer the Oracle Database.
A separate OSOPER group (oper), whose members include oracle, and who are granted limited Oracle database administrator privileges.
An Oracle Database software owner (oracle), with the oraInventory group as its primary group, and with the OSDBA (dba) and OSOPER (oper) group as its secondary group.
OFA-compliant mount points /u01, /u02, and /u03 that will be used for the Oracle software installation, data files, and recovery files.
During installation, OUI creates the Oracle Inventory directory in the path /u01/app/oraInventory. This path remains owned by oracle:oinstall, to enable other Oracle software owners to write to the central inventory.
An Oracle base /u01/app/oracle owned by oracle:oinstall with 775 permissions.
OFA-compliant data directory /u02/app/oracle/oradata owned by oracle:oinstall with 775 permissions.
OFA-compliant recovery files directory /u03/app/oracle/fast_recovery_area owned by oracle:oinstall with 775 permissions.
To improve the performance of the software on Linux systems, you must increase the following resource limits for the Oracle software owner (oracle).
| Resource Shell Limit | Item in limits.conf | Soft Limit | Hard Limit |
|---|---|---|---|
| Open file descriptors | nofile | at least 1024 | at least 65536 |
| Number of processes available to a single user | nproc | at least 2047 | at least 16384 |
| Size of the stack segment of the process | stack | at least 10240 KB | at least 10240 KB, and at most 32768 KB |
Use the following to check resource limits.
Log in as an Oracle installation owner.
Check the soft and hard limits for the file descriptor setting. Ensure that the result is in the recommended range. For example:
|
Check the soft and hard limits for the number of processes available to a user. Ensure that the result is in the recommended range. For example:
|
Check the soft limit for the stack setting. Ensure that the result is in the recommended range. For example:
|
If necessary, update the resource limits in the /etc/security/limits.conf configuration file for the Oracle installation owner by adding the following lines.
|
Add the following line to the /etc/pam.d/login file, if it does not already exist.
|
Depending on your shell environment, make the following changes to the default shell startup file in order to change ulimit settings for the Oracle installation owner.
For the Bourne, Bash, or Korn shell, add the following lines to the /etc/profile file.
|
For the C shell (csh or tcsh), add the following lines to the /etc/csh.login file.
|
This section focuses on preparing the Linux operating system for the Oracle Database 11g Release 2 installation. This includes verifying enough memory and swap space, setting shared memory and semaphores, setting the maximum number of file handles, setting the IP local port range, and how to activate all kernel parameters for the system.
The kernel parameters discussed in this section will need to persist through machine reboots. Although there are several methods used to set these parameters, I will be making all changes permanent through reboots by placing all values in the /etc/sysctl.conf file. Instructions for setting all OS kernel parameters required by Oracle in a startup script will be discussed later in this section.
The kernel parameters presented in this section are only recommended values as documented by Oracle. For production database systems, Oracle recommends that you tune these values to optimize the performance of the system.
Verify that the kernel parameters described in this section are set to values greater than or equal to the recommended values. Also note that when setting the four semaphore values that all four values need to be entered on one line.
Oracle Database 11g Release 2 for Linux requires the kernel parameter settings shown below. The values given are minimums, so if your system uses a larger value, do not change it.
|
Add or amend the following lines in the /etc/sysctl.conf file.
|
Placing the kernel parameters in the /etc/sysctl.conf startup file persists the required kernel parameters through reboots. Linux allows modification of these kernel parameters to the current system while it is up and running, so there's no need to reboot the system after making kernel parameter changes. To activate the new kernel parameter values for the currently running system, run the following as root.
|
Verify the new kernel parameter values by running the following.
|
The minimum required RAM for Oracle Database 11g Release 2 running on the Linux platform is 1 GB (although 2 GB or more of RAM is highly recommended).
Use the following command to check the amount of installed RAM on the system.
|
If the size of the installed RAM is less than the required size, then you must install more memory before continuing.
The following table describes the relationship between installed RAM and the configured swap space recommendation.
| Available RAM | Swap Space Required |
|---|---|
| Between 1 GB and 2 GB | 1.5 times the size of RAM |
| Between 2 GB and 16 GB | Equal to the size of RAM |
| More than 16 GB | 16 GB |
Use the following command to determine the size of the configured swap space.
|
If necessary, additional swap space can be configured by creating a temporary swap file and adding it to the current swap. This way you do not have to use a raw device or even more drastic, rebuild your system.
As root, make a file that will act as additional swap space, let's say about 500MB.
|
Next, change the file permissions.
|
Finally, format the "partition" as swap and add it to the swap space:
|
To determine the available RAM and swap space, enter the following command.
|
Starting with Oracle Database 11g, the Automatic Memory Management feature requires more shared memory (/dev/shm) and file descriptors. The shared memory should be sized to be at least the greater of MEMORY_MAX_TARGET and MEMORY_TARGET for each Oracle instance on the computer.
To determine the amount of shared memory available, enter the following command.
|
During the Linux OS install, we already configured the IP address and host name for the database node. This sections contains additional network configuration steps that will prepare the machine to run the Oracle database.
Note that the Oracle database server should have a static IP address configured for the public network (eth0 for this guide). Do not use DHCP naming for the public IP address; you need a static IP address.
Ensure that the node name (testnode1) is not included for the loopback address in the /etc/hosts file. If the machine name is listed in the in the loopback address entry as below:
|
it will need to be removed as shown below:
|
The /etc/hosts file must contain a fully qualified name for the server.
|
For example.
|
During the Linux OS install, I indicated to disable the firewall. By default the option to configure a firewall is selected by the installer. This has burned me several times so I like to do a double-check that the firewall option is not configured and to ensure udp ICMP filtering is turned off.
Check to ensure that the firewall option is turned off. If the firewall option is stopped (like it is in my example below) you do not have to proceed with the following steps.
|
If the firewall option is operating, you will need to first manually disable UDP ICMP rejections.
|
Then, turn UDP ICMP rejections off for all subsequent server reboots (which should always be turned off).
|
Download and extract the required Oracle software packages from the Oracle Technology Network (OTN), Oracle Software Delivery Cloud (eDelivery), or My Oracle Support (MOS) website depending on your support status.
Oracle Database 11g Release 2 base release (11.2.0.1) is available through the Oracle Software Delivery Cloud (eDelivery) or OTN. If you do not currently have an account with Oracle OTN or eDelivery, you will need to create one. This is a free account. Oracle offers a development and testing license free of charge. No support, however, is provided and the license does not permit production use. A full description of the license agreement is available on OTN.
Oracle Database 11g Release 2 (11.2.0.2) and (11.2.0.3) are only available through My Oracle Support (MOS) and are listed as patch sets in this section.
Access to MOS requires an Oracle Single Sign On (SSO) account (which is the same account used for OTN) and a valid Customer Support Identifier (or CSI). MOS requires a paid software license and support contract and is the only place to download critical updates and patch sets. Starting with the release of the 11.2.0.2 patch set for Oracle Database 11g Release 2, Oracle Database patch sets are full installations of the Oracle Database software (you do not need to download and install 11.2.0.1 first).
Log in as the Oracle software owner (oracle) and download the Oracle Database and Oracle Examples (optional) software to an install directory. For example /home/oracle/software/oracle.
| Oracle Software Component | Release | Location | Associated Zip File(s) |
|---|---|---|---|
| Oracle Database 11g Release 2 | 11.2.0.1 | OTN / eDelivery / MOS | linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip |
| Oracle Database 11g Release 2 Examples | 11.2.0.1 | OTN / eDelivery / MOS | linux.x64_11gR2_examples.zip |
|
| Oracle Software Component | Release | MOS Patch Set | Associated Zip File(s) |
|---|---|---|---|
| Oracle Database 11g Release 2 | 11.2.0.2 | 10098816 | p10098816_112020_Linux-x86-64_1of7.zip p10098816_112020_Linux-x86-64_2of7.zip |
| Oracle Database 11g Release 2 Examples | 11.2.0.2 | 10098816 | p10098816_112020_Linux-x86-64_6of7.zip |
|
| Oracle Software Component | Release | MOS Patch Set | Associated Zip File(s) |
|---|---|---|---|
| Oracle Database 11g Release 2 | 11.2.0.3 | 10404530 | p10404530_112030_Linux-x86-64_1of7.zip p10404530_112030_Linux-x86-64_2of7.zip |
| Oracle Database 11g Release 2 Examples | 11.2.0.3 | 10404530 | p10404530_112030_Linux-x86-64_6of7.zip |
|
You should now have a single directory called database and the optional examples directory containing the Oracle installation files.
For the purpose of this example, we will forgo the "Create Database" option when installing the Oracle Database software. The database will be created later in this guide using the Database Configuration Assistant (DBCA) after all installs have been completed.
Log into the node as the Oracle software owner (oracle). If you are using X emulation then set the DISPLAY environmental variable accordingly.
|
Start the Oracle Universal Installer (OUI) by issuing the following command in the database install directory.
|
At any time during installation, if you have a question about what you are being asked to do, click the Help button on the OUI page.
The prerequisites checks will fail for the following version-dependent reasons. As mentioned at the beginning of this guide, RHEL6 and OL6 are not certified or supported for use with any Oracle Database version at the time of this writing.
11.2.0.1: The installer shows multiple "missing package" failures because it does not recognize several of the newer version packages that were installed. These "missing package" failures can be ignored as the packages are present. The failure for the "pdksh" package can be ignored because it is no longer part of RHEL6 and we installed the "ksh" package in its place.
11.2.0.2: The installer should only show a single "missing package" failure for the "pdksh" package. The failure for the "pdksh" package can be ignored because it is no longer part of RHEL6 and we installed the "ksh" package in its place.
11.2.0.3: The installer shows no failures and continues normally.
Now that the Oracle Database 11g Release 2 software is installed, you have the option to install the Oracle Database 11g Release 2 Examples.
Start the Oracle Universal Installer (OUI) by issuing the following command in the examples install directory as the Oracle software owner (oracle).
|
At any time during installation, if you have a question about what you are being asked to do, click the Help button on the OUI page.
The prerequisites checks will fail for the following version-dependent reasons. As mentioned at the beginning of this guide, RHEL6 and OL6 are not certified or supported for use with any Oracle Database version at the time of this writing.
11.2.0.1: The installer shows multiple "missing package" failures because it does not recognize several of the newer version packages that were installed. These "missing package" failures can be ignored as the packages are present. The failure for the "pdksh" package can be ignored because it is no longer part of RHEL6 and we installed the "ksh" package in its place.
11.2.0.2: The installer should only show a single "missing package" failure for the "pdksh" package. The failure for the "pdksh" package can be ignored because it is no longer part of RHEL6 and we installed the "ksh" package in its place.
11.2.0.3: The installer shows no failures and continues normally.
The Database Configuration Assistant (DBCA) requires the Oracle TNS Listener process to be configured and running on the machine before it can create the database.
As the Oracle software owner (oracle), start the Network Configuration Assistant (NETCA) and run through the process of creating a new TNS listener process and to also configure the node for local access.
|
At any time during the network configuration, if you have a question about what you are being asked to do, click the Help button on the configuration screen.
The Oracle TNS listener process should now be running.
|
Use the Oracle Database Configuration Assistant (DBCA) to create the database.
Before executing the DBCA, make certain that the $ORACLE_HOME and $PATH are set appropriately for the $ORACLE_BASE/product/11.2.0/dbhome_1 environment. Setting environment variables in the login script for the oracle user account was covered in the section "Create Login Script for the oracle User Account".
You should also verify that the Oracle TNS listener service is running before attempting to start the database creation process.
To start the database creation process, run the following as the Oracle software owner (oracle).
|
When the DBCA has completed, you will have a fully functional Oracle Database 11g Release 2 database running.
Verify that the TNS listener is running (lsnrctl status) then log in to the new instance to verify database connectivity and perform a few queries.
|
If you configured Oracle Enterprise Manager (Database Control), it can be used to view the database configuration and current status of the database.
The URL for this example is: https://testnode1.idevelopment.info:1158/em/
|
This section offers several optional tasks that can be performed on your new Oracle 11g environment in order to enhance availability as well as database management.
Run the utlrp.sql script to recompile all invalid PL/SQL packages now instead of when the packages are accessed for the first time. This step is optional but recommended.
|
Whether a single instance or clustered database, Oracle tracks and logs all changes to database blocks in online redolog files. An Oracle instance will use its group of online redologs in a circular manner. Once an online redolog fills, Oracle moves to the next one. If the database is in "Archive Log Mode", Oracle will make a copy of the online redo log before it gets reused. A thread (an Oracle instance) must contain at least two online redologs (or online redolog groups).
As already mentioned, Oracle writes to its online redolog files in a circular manner. When the current online redolog fills, Oracle will switch to the next one. To facilitate media recovery, Oracle allows the DBA to put the database into "Archive Log Mode" which makes a copy of the online redolog after it fills (and before it gets reused). This is a process known as archiving.
The Database Configuration Assistant (DBCA) allows users to configure a new database to be in archive log mode within the Recovery Configuration section; however most DBA's opt to bypass this option during initial database creation. In cases like this where the database is in no archive log mode, it is a simple task to put the database into archive log mode. Note however that this will require a short database outage.
Log in to the database as a user with SYSDBA privileges and shut down the instance.
|
After shutting down the instance, mount the database.
|
Enable archiving.
|
Open the database.
|
Verify Archive Log Mode is enabled.
|
DBA's rely on Oracle's data dictionary views and dynamic performance views in order to support and better manage their databases. Although these views provide a simple and easy mechanism to query critical information regarding the database, it helps to have a collection of accurate and readily available SQL scripts to query these views.
In this section you will download and install a collection of Oracle DBA scripts that can be used to manage many aspects of your database including space management, performance, backups, security, and session management. The DBA Scripts Archive for Oracle can be downloaded using the following link http://www.idevelopment.info/data/Oracle/DBA_scripts/dba_scripts_archive_Oracle.zip. As the Oracle software owner (oracle), download the dba_scripts_archive_Oracle.zip archive to the $ORACLE_BASE directory. For the purpose of this example, the dba_scripts_archive_Oracle.zip archive will be copied to /u01/app/oracle. Next, unzip the archive file to the $ORACLE_BASE directory.
For example:
|
The final step is to verify (or set) the appropriate environment variable for the current UNIX shell to ensure the Oracle SQL scripts can be run from within SQL*Plus while in any directory. For UNIX, verify the following environment variable is set and included in your login shell script:
|
Now that the DBA Scripts Archive for Oracle has been unzipped and the UNIX environment variable ($ORACLE_PATH) has been set to the appropriate directory, you should now be able to run any of the SQL scripts in the $ORACLE_BASE/dba_scripts/sql while logged into SQL*Plus from any directory. For example, to query tablespace information while logged into the Oracle database as a DBA user:
|
To obtain a list of all available Oracle DBA scripts while logged into SQL*Plus, run the help.sql script.
|
Starting with Oracle Database 11g Release 2, the dbstart and dbshut scripts that were used to automate database startup and shutdown in previous Oracle versions are deprecated. Oracle now recommends to configure Oracle Database with the Oracle Restart feature to automatically restart the database, the listener, Oracle Automatic Storage Management (Oracle ASM), and other Oracle components after a hardware or software failure or when the database host computer restarts.
When using Oracle Restart, you can use Service Control Utility (SRVCTL), a command-line interface, to manage Oracle processes (database instance, listener, ASM instance). With SRVCTL, you can manage the Oracle Restart configuration, see the status of processes managed by Oracle Restart, and start or stop processes such as the Oracle Database. SRVCTL has been enhanced to support single instance databases with Oracle Restart on standalone servers and on clusters with Oracle Clusterware.
Oracle Restart is a component of Oracle Grid Infrastructure for a Standalone Server which is a separate install from the Oracle Database software. Installing Oracle Grid Infrastructure for a Standalone Server is required in order to use Oracle Restart and must be installed in a separate home (known as Grid home) from the database Oracle home. Using the latest Optimal Flexible Architecture (OFA), Oracle Grid Infrastructure for a Standalone Server would be installed as the Oracle software owner (oracle) and the Oracle home directory would be /u01/app/oracle/product/11.2.0/grid. Note that you can install Oracle Grid Infrastructure for a Standalone Server first and the database later or vice-versa. If Oracle Grid Infrastructure for a Standalone Server is installed first, then components like the database and TNS listener get automatically added to the Oracle Restart configuration. In the case where the database is configured first and Grid later, the components will need to be manually added to the Oracle Restart configuration.
Although the Oracle grid infrastructure for a Standalone Server install is fairly straightforward, I opted to forgo discussing how to use Oracle Restart to automatically start/stop the Oracle instance in this guide. I provide a separate guide on configuring Oracle Restart on a standalone server. Although now deprecated, automatic database startup and shutdown using the su command method is still available in Oracle Database 11g Release 2.
This section contains the recommended method defined by Oracle for automating database startup and shutdown of Oracle Database 10g and Oracle Database 11g Release 1 (11.1) instances on Linux. The method described in this section is referred to as the "su" command method. This method can be used with any RHEL or RHEL clone distribution, including Oracle Linux, up to and including RHEL 6.
Edit the /etc/oratab file and set the restart flag (the last field) to "Y" for the instance you want to automatically startup and shutdown. For the purpose of this example, the only instance defined in the /etc/oratab file is testdb1:
|
Next, create a text file named /etc/init.d/dbora as the root user, containing the following.
|
Use the chmod command to set the privileges to 750.
|
Associate the dbora service with the appropriate run levels and set it to auto-start using the following command.
|
The relevant instances should now startup/shutdown automatically at system startup/shutdown.
The /etc/init.d/dbora script defined in this section uses the "su -" command to run the Oracle scripts dbstart and dbshut.
|
Starting with Oracle Database 10g, Oracle switched from recommending the "su" command to the "rsh" command of which I completely disagree with. When using the rsh method, the /etc/init.d/dbora script would be defined as follows.
|
Note that this method relies on the presence of an RSH server, which requires additional packages and configuration. The RSH server does not get installed by default on many Linux distributions (and for good reason!).
Given the RSH server (and other r* packages) do not get installed by default, the DBA would need to locate and install them before this method could be used:
|
I completely disagree with the recommendation to use rsh and prefer to stick with using the su command method. Furthermore, using the rsh method can be problematic when attempting to use it under Fedora Core 5 and Fedora Core 6 where rsh is deprecated.
This final section contains several miscellaneous options that may be of use to newcomers of Oracle 11g.
During the database creation section, we asked for DBCA to create the Enterprise Manager Database Console application. The DBCA will automatically start the OEM Database Console application. To check for the process, type the following:
|
If you receive something similar to the above output, then OEM Database Console is running. If you need to manually start this application, login as the Oracle software owner (oracle) and type the following:
|
The OEM DB Console application may take several minutes to start.
Once the DB Console application is up and running, point your web browser to https://<Database_Server>:1158/em as in the following:
|
Login:
User Name: SYSTEM Password: <The password you chose during installation> Connect As: Normal
In some cases, you may have more than one database running on your single database server. It is even possible to be using two different databases running on different releases of the Oracle Database software. (i.e. Oracle 8.1.7, Oracle 9.2.0, 10.2.0, and 11.1.0). For example, you may have two database ora1020 (using Oracle release 10.2.0) and testdb1 (using Oracle release 11.2.0). Whatever the case may be, you need an efficient method to modify your environment variables to switch between these two databases. This requires you update environment variables like ORACLE_HOME, ORACLE_SID, PATH, LD_LIBRARY_PATH, etc. Although this can be done manually at the command line, it can get old real quick. Instead you can use a single command line script to switch between all database environments declared in your /etc/oratab file.
If you have been following along with this article, the required scripts for switching your Oracle database environment are already included (in /usr/local/bin). From the command prompt, simply run the following:
|
Notice that in the above example, we didn't just run the oraenv script, but rather, we sourced it by using a dot followed by a space and then the script name oraenv. When sourcing the oraenv script, it will prompt you for the ORACLE_SID, (defined in your /etc/oratab file), you want to switch to. In the above example, if an entry exists for testdb1, then all Oracle related environment variables would be set to access this database.
Jeffrey Hunter is an Oracle Certified Professional, Java Development Certified Professional, Author, and an Oracle ACE. Jeff currently works as a Senior Database Administrator for The DBA Zone, Inc. located in Pittsburgh, Pennsylvania. His work includes advanced performance tuning, Java and PL/SQL programming, developing high availability solutions, capacity planning, database security, and physical / logical database design in a UNIX, Linux, and Windows server environment. Jeff's other interests include mathematical encryption theory, programming language processors (compilers and interpreters) in Java and C, LDAP, writing web-based database administration tools, and of course Linux. He has been a Sr. Database Administrator and Software Engineer for over 18 years and maintains his own website site at: http://www.iDevelopment.info. Jeff graduated from Stanislaus State University in Turlock, California, with a Bachelor's degree in Computer Science.
Copyright (c) 1998-2013 Jeffrey M. Hunter. All rights reserved.
All articles, scripts and material located at the Internet address of http://www.idevelopment.info is the copyright of Jeffrey M. Hunter and is protected under copyright laws of the United States. This document may not be hosted on any other site without my express, prior, written permission. Application to host any of the material elsewhere can be made by contacting me at jhunter@idevelopment.info.
I have made every effort and taken great care in making sure that the material included on my web site is technically accurate, but I disclaim any and all responsibility for any loss, damage or destruction of data or any other property which may arise from relying on it. I will in no case be liable for any monetary damages arising from such loss, damage or destruction.
Last modified on
Tuesday, 26-Jun-2012 12:59:11 EDT
Page Count: 1002