Download the pdf version of the article here.
Introduction:
This is a series of articles which contains several important enhancements to Automatic Storage Management in Oracle 11gR2.
In this part1, we are going to prepare, install our 11gR2 ASM environment.
In this ASM inside story articles, we are going to use Oracle Linux 5 as the guest operating system, Oracle 11gR2 as database version.
Oracle VirtualBox is our virtualization software.
Oracle Linux Installation
Download and install Oracle Linux.
The following rpm packages must be installed in your system:
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11
Example:
For Automatic Memory Manager, make the shared memory file system big enough and add the “tmpfs” setting in the “/etc/fstab” file:
Add the following lines in the /etc/sysctl.conf file:
Run the following command to change the current kernel parameters:
Add the following lines to the “/etc/security/limits.conf” file:

Make sure the SELINUX=disabled in the “/etc/selinux/config” file.
System Users and Groups creation

Prepare Oracle binaries and software directories
![]()
Set environment variables for Oracle system user
Login as Oracle system user. Then, edit the file .bash_profile and add the following lines. After that, save the changes and run the command “source .bash_profile”:

Configure devices for ASM using file system files and loop devices
In this step we are going to:
1- Create a directory to hold the files to be used as ASM devices, as Oracle system user.
2- Create 4 files to be used as Asm devices, 1GB of size for each, as root system user.
3- Check the created files, as root system user.
4- Create the loop devices, as root system user.
5- Bind the loop devices to raw devices, as root system user.
6- Setup raw devices permissions and ownership, as root system user.
7- Edit the “/etc/rc.local” file and add the same commands mentioned before. why? Because after a reboot, the ownership and permisions will change back to root and “-rw-r–r–” files attributes.
[oracle@localhost orawiss]$ mkdir asmdisk [root@localhost orawiss]# dd if=/dev/zero of=/u01/app/oracle/product/11.2.0/orawiss/asmdisk/disk1 bs=1024k count=1000 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 23.5853 seconds, 44.5 MB/s [root@localhost orawiss]# dd if=/dev/zero of=/u01/app/oracle/product/11.2.0/orawiss/asmdisk/disk2 bs=1024k count=1000 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 22.9174 seconds, 45.8 MB/s [root@localhost orawiss]# dd if=/dev/zero of=/u01/app/oracle/product/11.2.0/orawiss/asmdisk/disk3 bs=1024k count=1000 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 32.2912 seconds, 32.5 MB/s [root@localhost orawiss]# dd if=/dev/zero of=/u01/app/oracle/product/11.2.0/orawiss/asmdisk/disk4 bs=1024k count=1000 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 36.1176 seconds, 29.0 MB/s [root@localhost orawiss]# /sbin/losetup /dev/loop1 /u01/app/oracle/product/11.2.0/orawiss/asmdisk/disk1 [root@localhost orawiss]# /sbin/losetup /dev/loop2 /u01/app/oracle/product/11.2.0/orawiss/asmdisk/disk2 [root@localhost orawiss]# /sbin/losetup /dev/loop3 /u01/app/oracle/product/11.2.0/orawiss/asmdisk/disk3 [root@localhost orawiss]# /sbin/losetup /dev/loop4 /u01/app/oracle/product/11.2.0/orawiss/asmdisk/disk4 [root@localhost orawiss]# raw /dev/raw/raw1 /dev/loop1 /dev/raw/raw1: bound to major 7, minor 1 [root@localhost orawiss]# raw /dev/raw/raw2 /dev/loop2 /dev/raw/raw2: bound to major 7, minor 2 [root@localhost orawiss]# raw /dev/raw/raw3 /dev/loop3 /dev/raw/raw3: bound to major 7, minor 3 [root@localhost orawiss]# raw /dev/raw/raw4 /dev/loop4 /dev/raw/raw4: bound to major 7, minor 4 [root@localhost orawiss]# cd /dev/raw [root@localhost raw]# ls -ltr total 0 crw------- 1 root root 162, 1 Feb 28 20:27 raw1 crw------- 1 root root 162, 2 Feb 28 20:27 raw2 crw------- 1 root root 162, 3 Feb 28 20:28 raw3 crw------- 1 root root 162, 4 Feb 28 20:28 raw4 [root@localhost raw]# ---change owner raw devices [root@localhost raw]# chown -R oracle:oinstall * [root@localhost raw]# chmod 660 * [root@localhost raw]# ls -ltr total 0 crw-rw---- 1 oracle oinstall 162, 1 Feb 28 20:27 raw1 crw-rw---- 1 oracle oinstall 162, 2 Feb 28 20:27 raw2 crw-rw---- 1 oracle oinstall 162, 3 Feb 28 20:28 raw3 crw-rw---- 1 oracle oinstall 162, 4 Feb 28 20:28 raw4 [root@wissem tmp]# chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/orawiss/* [root@localhost raw]# vi /etc/rc.local
Also add in the “/etc/rc.local” file “chown -R oracle:oinstall *” and “chmod 660 *” lines:

Note that to delete a loop device, you can use the following sintax: “losetup –d /dev/loopX”
Oracle binary files installation
This is my own method I use; I first install the Oracle binaries, install the grid infrastructure for standalone server and then use the dbca to install the Oracle database.
To install the Oracle binaries, you can follow the screen shots below.
[oracle@wissem database]$ ./runInstaller
Insert you Oracle metalink credentials:

Choose to install the Oracle software only:

Choose a single instance installation against Real Application Clusters installation method:

Select the Oracle software languages:
Confirm the Oracle base and software locations:

Choose your OSDBA and OSOPER groups:

Automatic verification of the configuration requirements:

Confirm the global settings resume:

Open a new terminal window, login as root and run the “*.root.sh” scripts. After that click on “ok”.

Now the Oracle binaries are installed. Let’s configure ASM when installing the Oracle grid infrastructure for standalone server.
Grid Infrastructure Installation for standalone server
To configure ASM, we are going to install the grid infrastructure for standalone server.
The following screen shots best describe the steps you need to perform.
[oracle@wissem grid]$ ./runInstaller
Choose to install Grid Infrastructure for standalone server option:
Select the software languages:
Select the ASM disk files we already created in the previous section:
Choose the sys password for SYSASM new privilege appeared with Oracle 11g version.
Choose the operating system groups for OSDBA, OSOPER and OSASM.
Confirm the Oracle base and the grid infrastructure software locations:
Configuration requirements verification status:
Confirm the Oracle grid infrastructure resume:
Installation progress:
Open a new terminal window, login as root and run the “root.sh” script. After that click on “ok”.
[root@wissem ~]# /u01/app/oracle/product/11.2.0/grid/root.sh Running Oracle 11g root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/11.2.0/grid Enter the full pathname of the local bin directory: [/usr/local/bin]: The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root.sh script. Now product-specific root actions will be performed. 2011-03-01 11:29:22: Checking for super user privileges 2011-03-01 11:29:22: User has super user privileges 2011-03-01 11:29:22: Parsing the host name Using configuration parameter file: /u01/app/oracle/product/11.2.0/grid/crs/install/crsconfig_params Creating trace directory /home/oracle/.bash_profile: line 1: racle: command not found LOCAL ADD MODE Creating OCR keys for user 'oracle', privgrp 'oinstall'.. Operation successful. CRS-4664: Node wissem successfully pinned. Adding daemon to inittab CRS-4123: Oracle High Availability Services has been started. ohasd is starting wissem 2011/03/01 11:33:09 /u01/app/oracle/product/11.2.0/grid/cdata/wissem/backup_20110301_113309.olr Successfully configured Oracle Grid Infrastructure for a Standalone Server Updating inventory properties for clusterware Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 1702 MB Passed The inventory pointer is located at /etc/oraInst.loc The inventory is located at /u01/app/oraInventory 'UpdateNodeList' was successful. [root@wissem ~]#
Installation progress:
The installation confirmation message:
Database installation
Using dbca, we are going to install the Oracle 11gR2 database.
The screen shots below best describe the installation steps.
[oracle@wissem database]$ dbca
Choose to create a database against a tempalte:

Choose your database template:

Insert your Global database name, SID identifier:

Choose to configure Enterprise manager, database control:

Insert and confirm the user accounts password:

Choose ASM for storage management type and +DATA for Oracle managed files database area:

In the recovery configuration screen click next:

Choose or not to add the sample schemas in your database:

Specify the global memory size and the database character Set:

Choose to create a database and generate a creation database script for future quick database installation:

Verify your database installation using ASM to manage the storage:

Nice reading ,
Scridb filter


























I took the decision to write a series of articles about ASM, because one person voted for this topic using “Polls” in the top right page of this website.
If you need me to write more articles about other topics, just use the “Polls” and vote.
Thanks you,
Wissem
Hi,
I was loocking for a guide like this.
I’ll try to follow it in an ORACLE VM virtual box, usinf Fedora al O.S.
My problem is related to raw devices. I’m not an expert on disk devices, nor raw. It is needed to use raw configuration? I got an error running this command:
raw /dev/raw/raw1 /dev/loop1
Cannot open master raw device ‘/dev/raw/rawctl’ (No existe el archivo o directorio)
I have no /dev/raw directory on my installation.
Is there any other way to define disks ?
Hello Maribel,
Fedora is not a supported OS, so things may or may not work as expected. If you are going to use a VM, why not install Oracle Enterprise Linux (free download from http://edelivery.oracle.com/linux) and then install 11gR2 ? OEL is a supported OS.
There is another method, NOT sure if it works for you… maybe using “fdisk” command to partition the disks under /dev/ (With root user)
Use the ASM librairies
* oracleasmlib-*.rpm
* oracleasm-support-*.rpm
* oracleasm-*.rpm
to configure and create the disks
Hope it helps
Wissem
Hi again Maribel,
I have also fedora (14) installed , and I have a directory /dev/raw
[root@wissem dev]# cd /dev/r
ram0 ram11 ram14 ram3 ram6 ram9 root
ram1 ram12 ram15 ram4 ram7 random rtc
ram10 ram13 ram2 ram5 ram8 raw/ rtc0
[root@wissem dev]# cd /dev/raw/
[root@wissem raw]# cat /etc/redhat-release
Fedora release 14 (Laughlin)
[root@wissem raw]#
Nice article can u provide more information about the serives in 11gR2 RAC
>Hello,
Thanks for your comment. For 11gR2 RAC i will try yes to write some articles, don’t know when exactly
Keep visiting this website..
Cheers,
Wissem
That’s my kind of documentation well done
Posted by Gino D’ Alfonso
Nice article!
Two comments:
1. Using VBox as virtualization software, I think is more easier to use vbox harddisks for storage, it requires less steps to configure storage.
2. As you use OEL as your O.S., I recommend you to use oracle asmlib to simplify asm disk management.
Regards!
Hello gaston,
, BUT, of course it’s more easier to use for storage configuration.
1- Sure
2- I am not really fun of ASM Lib because actually there is no clear strategy of the future of this package. According to Oracle metalink Doc ID 1089399.1, Oracle will no longer provide ASMLib packages for Red Hat kernels. As, most of my environments are in Red Hat, I am not 100% for ASM lib
Cheers,
Wissem
Nice doc Wissem.
Congratulations!
Thanks Enric
Thanks for your answers.
I’ll try to find why I have not /dev/raw directory , or I’ll try to install Oracle linux.
Kind regards,
Maribel.
Hello,
Is it possible to install the 11g RAC on a laptop with 4gb RAM and windows 7 64 bit OS by installing two virtual machines? If yes, Any doc will be helpful
Regards.
Ali.
Dear Ali,
On my 8GB of RAM laptop, I have installed RAC 11gR2 using VirtualBox. I have read some articles on the net saying that 6GB is the minimum recommended for 11gR2.
Maybe 10g RAC you can, using Kamran agayev articles.
Hope it helps,
Wissem
finally I’ve “found” /dev/raw.
This command was needed: /sbin/modprobe raw
I found it very simple, useful and informatic link. Thanks.
Very nice job. Might also want to take a look at using the ASM Role Separation which uses the “grid” Linux account to manage the Grid Infrastructure, as well as the traditional “oracle” account to manage the RDBMS.
Saw this recently from an Oracle Webinar:
Oracle’s Advisor Webcast, Advisor Webcast: ASM – Install Best Practices on Tuesday, 28. February 2012. ASM Role Separation
Of course you can
Hi,
There is a problem.
[root@localhost ~]# raw /dev/raw/raw1 /dev/loop1
bash: raw: command not found…
Please help
Thanks
Hi,
I’ve tried to install asm to fedora. In this step
raw /dev/raw/raw1 /dev/loop1
the bash mistake happened. “raw command not found” writed.
What is the reason for that can someone explain please?
Great job. I have installed 11gR2 Standalone + RHEL 5.6 + VM Vmware Player 3.1.2 and OK.
Regards,
Salam Brother,
Thanx for sharing, however, i would be interested in chaging the password for the grid user in 11gr2 on linux 5.4 4-node RAC.
Thanx in advance for your help.
Regards,
Dehbashee.