############################################################################################# # # # How to Install a 9.2 Oracle Database on Raw Devices with RedHat Linux advanced Server 2.1 # # by thomas@guilleminot.org # # # ############################################################################################# Disclaimer : This is only an example ! You use it at your own risks... I. ASSUMPTION. -------------- RED HAT Linux Advanced Server 2.1 ORACLE SERVER 9.2.0 ORACLE_BASE=/oracle ORACLE_HOME=/oracle/oracle920 ORACLE_SID=RAWD LD_LIBRARY_PATH=$ORACLE_HOME/lib SHELL=/bin/bash Owner : oracle Group : dba For a very simple 9.2 Database you can do for example : |------------------------------------|-------------------|-------------|----------------|-----------------| | ORACLE FILE | FILE SIZE | PARTITION | RAW DEVICE | RAW DEVICE SIZE | |------------------------------------|-------------------|-------------|----------------|-----------------| | /oracle/oradata/RAWD/control01.ctl | 2Mb | /dev/sda5 | /dev/raw/raw5 | 10Mb | | /oracle/oradata/RAWD/redo01.log | 2Mb | /dev/sda6 | /dev/raw/raw6 | 10Mb | | /oracle/oradata/RAWD/redo02.log | 2Mb | /dev/sda7 | /dev/raw/raw7 | 10Mb | | /oracle/oradata/RAWD/system01.dbf | 300Mb | /dev/sda8 | /dev/raw/raw8 | 350Mb | | /oracle/oradata/RAWD/undo01.dbf | 30Mb | /dev/sda9 | /dev/raw/raw9 | 50Mb | | /oracle/oradata/RAWD/temp01.dbf | 30Mb | /dev/sda10 | /dev/raw/raw10 | 50Mb | | /oracle/oradata/RAWD/users01.dbf | 30Mb | /dev/sda11 | /dev/raw/raw11 | 50Mb | |------------------------------------|-------------------|-------------|----------------|-----------------| | TOTAL | 396Mb | 7 | 7 | 530Mb | |------------------------------------|-------------------|-------------|----------------|-----------------| WARNING : THIS EXAMPLE IS GIVEN FOR INFORMATION *ONLY* ! IT IS *NOT* ADVISABLE TO CREATE A DATABASE WITH ONLY 1 CONTROLFILE, 2 REDOLOGS... YOU *MUST* ADAPT IT TO YOUR REQUIREMENTS ! ############################################################################################################### II. OS PREPARATION. ------------------- 1. Directories + PasswordFile Creation (user Oracle). mkdir /oracle/admin mkdir /oracle/oradata mkdir /oracle/admin/RAWD mkdir /oracle/oradata/RAWD mkdir /oracle/admin/RAWD/bdump mkdir /oracle/admin/RAWD/cdump mkdir /oracle/admin/RAWD/create mkdir /oracle/admin/RAWD/pfile mkdir /oracle/admin/RAWD/udump echo Add this entry in the oratab: RAWD:/oracle/oracle920:Y /oracle/oracle920/bin/orapwd file=/oracle/oracle920/dbs/orapwRAWD password=oracle 2. Create your partitions with fdisk (or other software). See table above. 3. Insert into /etc/sysconfig/rawdevices like (root). /dev/raw/raw5 /dev/sda5 /dev/raw/raw6 /dev/sda6 /dev/raw/raw7 /dev/sda7 /dev/raw/raw8 /dev/sda8 /dev/raw/raw9 /dev/sda9 /dev/raw/raw10 /dev/sda10 /dev/raw/raw11 /dev/sda11 4. Verify that the same partitions are NOT referenced in /etc/fstab. 5. Reboot the system to bind the partitions to the raw devices. *OR* Bind them manually (root) : raw /dev/raw/raw5 /dev/sda5 raw /dev/raw/raw6 /dev/sda6 raw /dev/raw/raw7 /dev/sda7 raw /dev/raw/raw8 /dev/sda8 raw /dev/raw/raw9 /dev/sda9 raw /dev/raw/raw10 /dev/sda10 raw /dev/raw/raw11 /dev/sda11 6. Create the links from raw devices, give the permissions and change the owner (root). NB : This is optional but it allows you to use "normal" names for your datafiles. cd /oracle/oradata/RAWD/ ln -s /dev/raw/raw5 /oracle/oradata/RAWD/control01.ctl ln -s /dev/raw/raw6 /oracle/oradata/RAWD/redo01.log ln -s /dev/raw/raw7 /oracle/oradata/RAWD/redo02.log ln -s /dev/raw/raw8 /oracle/oradata/RAWD/system01.dbf ln -s /dev/raw/raw9 /oracle/oradata/RAWD/undo01.dbf ln -s /dev/raw/raw10 /oracle/oradata/RAWD/temp01.dbf ln -s /dev/raw/raw11 /oracle/oradata/RAWD/users01.dbf chmod 777 * chown oracle:dba * 7. Give the permissions and change the owner of raw devices (root). chmod 660 /dev/raw/raw5 chmod 660 /dev/raw/raw6 chmod 660 /dev/raw/raw7 chmod 660 /dev/raw/raw8 chmod 660 /dev/raw/raw9 chmod 660 /dev/raw/raw10 chmod 660 /dev/raw/raw11 chown oracle:dba /dev/raw/raw5 chown oracle:dba /dev/raw/raw6 chown oracle:dba /dev/raw/raw7 chown oracle:dba /dev/raw/raw8 chown oracle:dba /dev/raw/raw9 chown oracle:dba /dev/raw/raw10 chown oracle:dba /dev/raw/raw11 ############################################################################################################## III. DATABASE CREATION. ----------------------- 1. Copy a init.ora (model) to "/oracle/admin/RAWD/pfile/" and create the database (from oracle session). sqlplus /nolog connect SYS/change_on_install as SYSDBA set echo on spool /oracle/oracle920/assistants/dbca/logs/CreateDB.log startup nomount pfile="/oracle/admin/RAWD/pfile/init.ora"; CREATE DATABASE RAWD MAXINSTANCES 1 MAXLOGHISTORY 1 MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 DATAFILE '/oracle/oradata/RAWD/system01.dbf' SIZE 300M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/oracle/oradata/RAWD/temp01.dbf' SIZE 30M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED UNDO TABLESPACE "UNDOTBS1" DATAFILE '/oracle/oradata/RAWD/undo01.dbf' SIZE 30M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED CHARACTER SET WE8ISO8859P15 NATIONAL CHARACTER SET UTF8 LOGFILE GROUP 1 ('/oracle/oradata/RAWD/redo01.log') SIZE 2M, GROUP 2 ('/oracle/oradata/RAWD/redo02.log') SIZE 2M; spool off exit; 2. Create the USERS tablespace (from oracle session). sqlplus /nolog connect SYS/change_on_install as SYSDBA set echo on spool /oracle/oracle920/assistants/dbca/logs/CreateDBFiles.log CREATE TABLESPACE "USERS" LOGGING DATAFILE '/oracle/oradata/RAWD/users01.dbf' SIZE 30M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; spool off exit; 3. Run the mandatory and/or optional scripts (from oracle session). sqlplus /nolog connect SYS/change_on_install as SYSDBA set echo on spool /oracle/oracle920/assistants/dbca/logs/CreateDBCatalog.log @/oracle/oracle920/rdbms/admin/catalog.sql; @/oracle/oracle920/rdbms/admin/catexp7.sql; @/oracle/oracle920/rdbms/admin/catblock.sql; @/oracle/oracle920/rdbms/admin/catproc.sql; @/oracle/oracle920/rdbms/admin/catoctk.sql; @/oracle/oracle920/rdbms/admin/owminst.plb; connect SYSTEM/manager @/oracle/oracle920/sqlplus/admin/pupbld.sql; connect SYSTEM/manager set echo on spool /oracle/oracle920/assistants/dbca/logs/sqlPlusHelp.log @/oracle/oracle920/sqlplus/admin/help/hlpbld.sql helpus.sql; spool off spool off exit; 4. Launch utlrp.sql and create a spfile (from oracle session, and optional). sqlplus /nolog connect SYS/change_on_install as SYSDBA set echo on spool /oracle/oracle920/assistants/dbca/logs/postDBCreation.log @/oracle/oracle920/rdbms/admin/utlrp.sql; shutdown ; connect SYS/change_on_install as SYSDBA set echo on spool /oracle/oracle920/assistants/dbca/logs/postDBCreation.log create spfile='/oracle/oracle920/dbs/spfileRAWD.ora' FROM pfile='/oracle/admin/RAWD/pfile/init.ora'; startup ; exit; THAT'S ALL ! :o)