text:
Do-It-Yourself/Home staging

Home staging is the act of grooming or preparing a home to make it more attractive to potential buyers, thereby raising the value of the home. People have always "staged" their homes before selling them to command better prices, but in the 1990s, staging became a profession for those skilled in the art of preparing homes for sale, creating light, neutral environments with as much space as possible.

Some tips
Below are some tips on how to stage your home before a potential buyer inspects it. Imagine seeing your own home for the first time. What does it look like? How does it smell? What is impressive? Can it be enhanced or more visible? What is less impressive?

Completion
Mend everything broken, paint over ugly marks, or put up new wallpaper. Little things that bug you are also likely to irritate a potential buyer. You can smooth out textured ceilings by using special paint available from DIY stores.

Cleaning
Everything should be tidy and clean. No clutter! Remove personal items, such as photographs and Post-it notes. The bathroom and kitchen must give a fresh impression. If you utilize a commercial janitorial service to clean the windows, floors, and house, you'll get a better deal and faster service.

Kitchen
Remove everything from kitchen counters and clean them thoroughly. They should be shiny and totally empty. Keep everything off the counters for all showings unless its aesthetically useful. Put away coffee makers and toasters after breakfast if you're showing the house that day. You want to minimize clutter in order to maximize the spacious feeling. Buyers want space and spacious counters. The same principle applies to kitchen cabinets. Buyers will look in the cabinets if they are at all interested in your home. They are looking for space in there, too. Remove everything from the cabinets that you can do without while your home is listed. Pack these items away. Clean the cabinets and organize them.

Bathroom
Do not leave your personal grooming items out on the counter or on shelves. Curling irons, makeup, shaving supplies, etc. must be put out of sight. There are two reasons for this:
 * 1) to reduce clutter and create space
 * 2) to minimize the appearance of any personal items throughout the home. You want buyers to be able to imagine themselves living there, and it really helps to have a clean slate

Buy a new shower curtain and towels unless yours are fairly new already.

Furniture
If possible, remove furniture and all other household goods that might contribute to a cluttered appearance. This gives a more spacious impression. Don't stack these things in the attic, basement, or garage since that still portrays clutter and distracts potential buyers. Hire a moving company to remove your furniture or do it yourself. Store it at rental storage facility.

Plants
Fresh plants give a fresh impression. But keep the importance of space in mind. Don't overdo it.

Lights
A well-lit home gives a fresher impression than does a dark one. Pull up the blinds and pull the curtains aside to showcase the clean windows and let the sun in. Some well placed lamps may brighten up the room.

But lighting doesn't have to mean electrical lighting. Effective use of natural light can instantly make a room feel warmer and more inviting. Light or shimmering fabrics work well to help amplify natural light as do mirrors and light or bright artwork.

Mirrors are also very effective in making smaller spaces seem larger. By placing a large mirror on one wall or by placing two similarly sized mirrors on opposite walls, existing light will be bounced around the room opening up the space and the room feel instantly larger.

Using light in these ways can make your efforts pay off by making your existing space seem much larger and brighter.

Outdoors
Mow the lawn and sweep the terrace (or balcony).

title: Do-It-Yourself/Home staging


text:
User talk:217.123.218.59

Andjam 13:30, 5 January 2006 (UTC)

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: User talk:217.123.218.59


text:
User:Swapnil durgade/Oracle9i RAC on Fedora Core 1

Oracle 9i RAC On Fedora Core 1

Author: Swapnil Durgade

Date: 05-Jan-2006

 Contents

 1 What you need

 2 Check Packages

 3 Gcc

 4 Create empty files on node1

 5 Bind rawdevices on both nodes

 6 create nbd service for node1

 7 create nbd service for node2

 8 Create test scripts on both nodes

 9 Oracle Preinstallation

 9.1 Shared Memory, oracle username and password, redhat-release, oracle home and Other Parameters on both nodes

 9.2 DataFile

 9.3 Oracle Environment

 9.4 Setup RSH

 9.5 Configure /etc/hosts

 9.6 Test Network Settings

 10 Oracle Installation

 10.1 On Both Nodes Login as root in GUI and apply patch p3006854_9204_LINUX.zip

 10.2 On Node1 Install Oracle Cluster Manager software

 10.3 On Both Nodes, Install Version 10.1.0.2 of the Oracle Universal Installer

 10.4 On Both Nodes, Run the 10.1.0.2 Oracle Universal Installer to patch the Oracle Cluster Manager (ORACM) to 9.2.0.5

 10.5 On Node1 Modify the ORACM configuration files to utilize the hangcheck-timer

 10.6 On Node2 Create log directory and Modify the ORACM configuration files to utilize the hangcheck-timer

 10.7 On Both Nodes Modify Oracle Cluster Manager Startup Script

 10.8 On Both Nodes Start the ORACM (Oracle Cluster Manager)

 10.9 On Both Nodes Install 9.2.0.4 RAC Database

 10.10 On Both Nodes Patch the RAC Installation to 9.2.0.5

 10.11 On Both Nodes Create srvConfig.loc

 10.12 On Both Nodes Start The GSD (Global Service Daemon)

 10.13 On Both Nodes Create Listener Using command netca

 10.14 On Both Nodes, make sure all raw devices are working

 10.15 Only From Node1 Create a RAC Database using command dbca (Oracle Database Configuration Assistant)

 10.16 Administering Real Application Clusters Instances

 11 Reference

 1. What you need

 1. Oracle9i Release 2 (9.2.0.4) [total 3 CDs] from http://www.oracle.com/technology/software/products/oracle9i/index.html

 2. Patch p3006854_9204_LINUX.zip from metalink.oracle.com or from http://www.idevelopment.info/data/Oracle/DBA_tips/Linux/FedoraCore2_RPMS/p3006854_9204_LINUX.zip

 3. 9.2.0.5 Patch Set from metalink.oracle.com

 4. Fedora Core 1 Three CDs

 5. nbd-server and nbd-client (Download from http://www.badongo.com/file.php?file=9iRAC__2006-01-05_9iRACSupportFiles.tar.gz

 6. hangecheck-timer.o The attached hangecheck-timer.o will NOT work with SMPS kernels. (Download from http://www.badongo.com/file.php?file=9iRAC__2006-01-05_9iRACSupportFiles.tar.gz

 7. 2 machines with around 60GB harddisk 512MB RAM for linux (Faster is better)

 8. optionally 1 windows machine with putty will help a lot (http://www.google.co.in/search?hl=en&q=download+putty&meta=)

 You can remotely login to the linux boxes and copy paste commands on putty console.

 2. On Both Nodes Check Packages

 Install Fedora Core 1 all packages

rpm -q libpng gnome-libs compat-libstdc++ compat-libstdc++-devel compat-db compat-gcc compat-gcc-c++ openmotif21 pdksh sysstat

 If above mentioned packages are not found, install them

rpm -Uvh gnome-libs-1.4.1.2.90-40.i386.rpm compat-libstdc++-7.3-2.96.126.i386.rpm compat-libstdc++-devel-7.3-2.96.126.i386.rpm compat-db-4.1.25-2.1.i386.rpm compat-gcc-7.3-2.96.126.i386.rpm compat-gcc-c++-7.3-2.96.126.i386.rpm openmotif21-2.1.30-9.i386.rpm pdksh-5.2.14-24.i386.rpm sysstat-5.0.1-2.i386.rpm libpng10-1.0.13-13.i386.rpm tcl-devel-8.4.5-7.i386.rpm tcl-8.4.5-7.i386.rpm

 Remove iptables and kerberose rlogin

rpm -e iptables redhat-config-securitylevel-tui iptables-devel iptables-ipv6 redhat-config-securitylevel  firstboot krb5-workstation

mkdir /software

 download 9iRACSupportFiles.tar.gz into /software from http://www.badongo.com/file.php?file=9iRAC__2006-01-05_9iRACSupportFiles.tar.gz

cd /software

tar – zxvf 9iRACSupportFiles.tar.gz

cd 9iRACSupportFiles

cp nbd* /bin

cp hangcheck-timer.o /

 3. On Both Nodes Gcc

mv /usr/bin/gcc /usr/bin/gcc323

mv /usr/bin/g++ /usr/bin/g++323

ln -s /usr/bin/gcc296 /usr/bin/gcc

ln -s /usr/bin/g++296 /usr/bin/g++

 4. On Node1 Create empty files

mkdir /nbd

cd /nbd

dd if=/dev/zero of=/nbd/system_raw bs=1M count=2048

dd if=/dev/zero of=/nbd/users_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/temp_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/undo_1_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/undo_2_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/indx_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/tools_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/controlfile_1_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/controlfile_2_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/redo1_1_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/redo1_2_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/redo2_1_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/redo2_2_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/spfile_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/srvctl_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/nm_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/drsys_1_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/CMQuorumFile bs=1M count=2048

dd if=/dev/zero of=/nbd/srvm bs=1M count=2048

chmod 777 *

chmod 777 /dev/nb*

chmod 777 /dev/raw*

chmod 777 /dev/raw/raw*

 5. On Both Nodes Bind rawdevices

 Add following lines to /etc/sysconfig/rawdevices

/dev/raw/raw1 /dev/nb1

/dev/raw/raw2 /dev/nb2

/dev/raw/raw3 /dev/nb3

/dev/raw/raw4 /dev/nb4

/dev/raw/raw5 /dev/nb5

/dev/raw/raw6 /dev/nb6

/dev/raw/raw7 /dev/nb7

/dev/raw/raw8 /dev/nb8

/dev/raw/raw9 /dev/nb9

/dev/raw/raw10 /dev/nb10

/dev/raw/raw11 /dev/nb11

/dev/raw/raw12 /dev/nb12

/dev/raw/raw13 /dev/nb13

/dev/raw/raw14 /dev/nb14

/dev/raw/raw15 /dev/nb15

/dev/raw/raw16 /dev/nb16

/dev/raw/raw17 /dev/nb17

/dev/raw/raw18 /dev/nb18

/dev/raw/raw19 /dev/nb19

 And make rawdevices to start on boot

chkconfig rawdevices on

service rawdevices start

 6. On Node1 create nbd service

 create file /etc/init.d/nbd with following content

#!/bin/bash

#

# chkconfig: 2345 98 15

# description: nbd client

# source function library

. /etc/init.d/functions

export PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:

#

start

{

echo -n "Configuring kernel modules nbd, softdog, hangcheck-timer: "

daemon modprobe nbd; modprobe softdog soft_margin=60 soft_noboot=1; rmmod hangcheck-timer; insmod /hangcheck-timer.o hangcheck_tick=30  hangcheck_margin=180;

echo ""

#

echo -n "Setting Up Kernel Parameters: "

daemon sysctl -p

echo ""

#

sleep 1

#Check if nbd-server is already running

if [ `ps ax | grep nbd-server | wc -l` -gt 1 ]

then

echo -n "nbd server is already running: "

echo_failure

echo ""

else

echo -n $"Starting nbd server: "

daemon nbd-server 4101 /nbd/system_raw; nbd-server 4102 /nbd/users_raw; nbd-server 4102  /nbd/users_raw; nbd-server 4103 /nbd/temp_raw ; nbd-server 4104  /nbd/undo_1_raw ; nbd-server 4105 /nbd/undo_2_raw ; nbd-server 4106  /nbd/indx_raw ; nbd-server 4107 /nbd/tools_raw ; nbd-server 4108  /nbd/controlfile_1_raw ; nbd-server 4109 /nbd/controlfile_2_raw ; nbd-server 4110 /nbd/redo1_1_raw ; nbd-server 4111 /nbd/redo1_2_raw ; nbd-server 4112 /nbd/redo2_1_raw ; nbd-server 4113  /nbd/redo2_2_raw ; nbd-server 4114 /nbd/spfile_raw ; nbd-server 4115  /nbd/srvctl_raw ; nbd-server 4116 /nbd/nm_raw ; nbd-server 4117  /nbd/drsys_1_raw ; nbd-server 4118 /nbd/CMQuorumFile ; nbd-server 4119  /nbd/srvm

echo ""

fi

#

sleep 5

#Check if nbd-client is already running

if [ `ps ax | grep nbd-client | wc -l` -gt 1 ]

<p class=MsoNormal>then

echo -n "nbd client is already running: "

echo_failure

echo ""

else

echo -n $"Starting nbd client: "

daemon nbd-client node1 4101 /dev/nb1; nbd-client node1 4102 /dev/nb2; nbd-client node1 4103 /dev/nb3; nbd-client node1 4104 /dev/nb4; nbd-client node1 4105 /dev/nb5; nbd-client node1 4106 /dev/nb6; nbd-client node1 4107 /dev/nb7; nbd-client node1 4108 /dev/nb8; nbd-client node1 4109 /dev/nb9; nbd-client node1 4110 /dev/nb10; nbd-client node1 4111 /dev/nb11; nbd-client node1 4112 /dev/nb12; nbd-client node1 4113 /dev/nb13; nbd-client node1 4114 /dev/nb14; nbd-client node1 4115 /dev/nb15; nbd-client node1 4116 /dev/nb16; nbd-client node1 4117 /dev/nb17; nbd-client node1 4118 /dev/nb18; nbd-client node1 4119 /dev/nb19

echo ""

fi

#

}

stop

{

#

echo -n $"Shutting down nbd client: "

killproc nbd-client

echo ""

#

echo -n $"Shutting down nbd server: "

killproc nbd-server

echo ""

#

}

#

status

{

#

if [ `ps ax | grep nbd-server | wc -l` -le 1 ]

then

echo "nbd server is stopped "

else

echo -n "nbd server is running"

echo_success

echo ""

echo "nbd-server process count: " `ps ax | grep nbd-server | wc -l`

fi

#

if [ `ps ax | grep nbd-client | wc -l` -le 1 ]

then

echo "nbd client is stopped "

else

echo -n "nbd client is running"

echo_success

echo ""

echo "nbd-clients process count: " `ps ax | grep nbd-client | wc -l`

fi

#

}

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status;;

restart)

stop

start

;;

*)

echo $"Usage: $0 {start|stop|restart|status}"

exit 1

;;

esac

 Add service to startup and start it

chmod 755 /etc/init.d/nbd

chkconfig nbd --add

chkconfig nbd on

service nbd start

 7. On node2 create nbd service

 create file /etc/init.d/nbd with following content

#!/bin/bash

#

# chkconfig: 2345 98 15

# description: nbd client service used in Oracle Cluster Installation

# source function library

. /etc/init.d/functions

export PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:

start

{

echo -n "Configuring kernel modules nbd, softdog, hangcheck-timer: "

daemon modprobe nbd; modprobe softdog soft_margin=60 soft_noboot=1; rmmod hangcheck-timer; insmod /hangcheck-timer.o hangcheck_tick=30  hangcheck_margin=180;

echo ""

echo -n "Setting Up Kernel Parameters: "

daemon sysctl -p

echo ""

sleep 1

#Check if nbd-client is already running

if [ `ps ax | grep nbd-client | wc -l` -gt 1 ]

then

echo -n "nbd client is already running: "

echo_failure

echo ""

else

echo -n $"Starting nbd client: "

daemon nbd-client node1 4101 /dev/nb1; nbd-client node1 4102 /dev/nb2; nbd-client node1 4103 /dev/nb3; nbd-client node1 4104 /dev/nb4; nbd-client node1 4105 /dev/nb5; nbd-client node1 4106 /dev/nb6; nbd-client node1 4107 /dev/nb7; nbd-client node1 4108 /dev/nb8; nbd-client node1 4109 /dev/nb9; nbd-client node1 4110 /dev/nb10; nbd-client node1 4111 /dev/nb11; nbd-client node1 4112 /dev/nb12; nbd-client node1 4113 /dev/nb13; nbd-client node1 4114 /dev/nb14; nbd-client node1 4115 /dev/nb15; nbd-client node1 4116 /dev/nb16; nbd-client node1 4117 /dev/nb17; nbd-client node1 4118 /dev/nb18; nbd-client node1 4119 /dev/nb19

echo ""

fi

}

#

stop

{

echo -n $"Shutting down nbd client: "

killproc nbd-client

echo ""

}

#

status

{

 if [ `ps ax | grep nbd-client | wc -l` -le 1 ]

then

echo "nbd client is stopped "

else

echo -n "nbd client is running"

echo_success

echo ""

echo "nbd-clients process count: " `ps ax | grep nbd-client | wc -l`

fi

}

#

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status;;

restart)

stop

start

;;

*)

echo $"Usage: $0 {start|stop|restart|status}"

exit 1

;;

esac

 Add service to startup and start it

chmod 755 /etc/init.d/nbd

chkconfig nbd --add

chkconfig nbd on

service nbd start

 7. On Both Nodes Create test scripts

 Create /bin/rawtest with following content

alias ls=ls --color=tty

cd /orac/

for F in `ls -w 1` ; do echo "File $F"; dd if=$F of=/dev/null count=10; done

 Create /bin/rlinks with following content

ln -s /dev/raw/raw1 /orac/system_raw

ln -s /dev/raw/raw2 /orac/users_raw

ln -s /dev/raw/raw3 /orac/temp_raw

ln -s /dev/raw/raw4 /orac/undo_1_raw

ln -s /dev/raw/raw5 /orac/undo_2_raw

ln -s /dev/raw/raw6 /orac/indx_raw

ln -s /dev/raw/raw7 /orac/tools_raw

ln -s /dev/raw/raw8 /orac/controlfile_1_raw

ln -s /dev/raw/raw9 /orac/controlfile_2_raw

ln -s /dev/raw/raw10 /orac/redo1_1_raw

ln -s /dev/raw/raw11 /orac/redo1_2_raw

ln -s /dev/raw/raw12 /orac/redo2_1_raw

ln -s /dev/raw/raw13 /orac/redo2_2_raw

ln -s /dev/raw/raw14 /orac/spfile_raw

ln -s /dev/raw/raw15 /orac/srvctl_raw

ln -s /dev/raw/raw16 /orac/nm_raw

ln -s /dev/raw/raw17 /orac/drsys_1_raw

ln -s /dev/raw/raw18 /orac/CMQuorumFile

ln -s /dev/raw/raw19 /orac/srvm

chown oracle:dba /orac/*

 Make scripts executable

chmod 755 /bin/rawtest

chmod 755 /bin/rlinks

 9 Oracle Preinstallation

 9.1 On both nodes setup Shared Memory, oracle username and password, redhat-release, oracle home and Other Parameters

 Login as root and run following commands

echo "kernel.shmmax = 2147483648" >> /etc/sysctl.conf

echo "kernel.shmmni = 128" >> /etc/sysctl.conf

echo "kernel.shmall = 2097152" >> /etc/sysctl.conf

echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf

echo "fs.file-max = 65536" >> /etc/sysctl.conf

echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf

sysctl -p

echo "oracle soft nofile 65536" >> /etc/security/limits.conf

echo "oracle hard nofile 65536" >> /etc/security/limits.conf

echo "oracle soft nproc 16384" >> /etc/security/limits.conf

echo "oracle hard nproc 16384" >> /etc/security/limits.conf

groupadd oinstall

groupadd dba

groupadd oper

groupadd apache

useradd -g dba -G oinstall oracle  ;

useradd -g dba -G oinstall apache

usermod oracle -G root

chmod -R 775 /dev

mkdir /orac

chmod 777 /dev/nb*

chmod 777 /dev/raw*

chmod 777 /dev/raw/*

chown oracle:dba /dev/nb*

chown oracle:dba /dev/raw*

chown oracle:dba /dev/raw/*

chown -R oracle:dba /orac

cp /etc/redhat-release /etc/redhat-release.bak

echo redhat-3 > /etc/redhat-release

mkdir -p /u01/app/oracle/product/9.2.0.1.0

chown -R oracle:dba /u01

mkdir /var/opt/oracle

touch /var/opt/oracle/srvConfig.loc

chown -R oracle:dba /var/opt/oracle

chmod -R 775 /u01

passwd oracle; passwd apache

 Type password for oracle and apache user

 9.2 Only On Node1 DataFile

 Login as root and run following command

cat > /orac/datafiles.conf <<EOF

system=/orac/system_raw

users=/orac/users_raw

temp=/orac/temp_raw

undotbs1=/orac/undo_1_raw

undotbs2=/orac/undo_2_raw

indx=/orac/indx_raw

tools=/orac/tools_raw

control1=/orac/controlfile_1_raw

control2=/orac/controlfile_2_raw

redo1_1=/orac/redo1_1_raw

redo1_2=/orac/redo1_2_raw

redo2_1=/orac/redo2_1_raw

redo2_2=/orac/redo2_2_raw

spfile=/orac/spfile_raw

srvconfig_loc=/orac/srvctl_raw

EOF

 9.3 On Both Nodes Setup Oracle Environment

 Add following lines to oracle's .bash_profile on both nodes and make sure that oracle_sid should be unique

 Example  on node1 “ORACLE_SID= test1 ; export ORACLE_SID” and on node2 “ORACLE_SID= test2 ; export ORACLE_SID”

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/9.2.0.1.0; export ORACLE_HOME

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=$ORACLE_HOME/bin:$PATH; export PATH

ORACLE_OWNER=oracle; export ORACLE_OWNER

ORACLE_SID= test1 ; export ORACLE_SID

LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL

THREADS_FLAG=native; export THREADS_FLAG

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

DBCA_RAW_CONFIG=/orac/datafiles.conf

 9.4 On Both Nodes Setup RSH

 Check if rsh-server is installed with command

rpm –q rsh-server

 If it is not there, install it from cd with command

rpm -ivh rsh-server-0.17-19.i386.rpm

chkconfig rsh on

chkconfig rlogin on

chkconfig xinetd on

service xinetd restart

touch /etc/hosts.equiv

chmod 600 /etc/hosts.equiv

chown root.root /etc/hosts.equiv

echo "+node1 oracle" >> /etc/hosts.equiv

echo "+node2 oracle" >> /etc/hosts.equiv

 9.5 On Both Nodes Configure /etc/hosts

 Give unique static IP addresses to both node1 and node2. Edit /etc/hosts of both the node and add there IP addresses in /etc/hosts

 e.g.

127.0.0.1 localhost localhost.localdomain

10.1.1.1 node1

10.1.1.2 node2

 9.6 Test Network Settings

 From node1 try to ping node1 (i.e. ping itself) and make sure that it is pinging to correct IP and NOT 127.0.0.1

 From node1 try to ping to node2 and make sure it is pining to correct ipaddress of node2

 From node2 try to ping node2 (i.e. ping itself) and make sure that it is pinging to correct IP and NOT 127.0.0.1

 From node2 try to ping to node1 and make sure it is pining to correct ipaddress of node1

 on node1, run command hostname and make sure it returns node1 and not localhost or localhost.localdomain

 if you are getting someting else, change HOSTNAME=node1 in /etc/sysconfig/network and reboot system

 on node2, run command hostname and make sure it returns node2 and not localhost or localhost.localdomain

 if you are getting someting else, change HOSTNAME=node2 in /etc/sysconfig/network and reboot system

 on node1 login as root and run 2 commands su - oracle followed by rsh node2 and you should be able to login to node2 without any password

 on node2 login as root and run 2 commands su - oracle followed by rsh node1 and you should be able to login to node1 without any password

 10 Oracle Installation

 10.1 On Both Nodes Login as root in GUI and apply patch p3006854_9204_LINUX.zip

 go to directory where patch is downloaded

unzip p3006854_9204_LINUX.zip

cd 3006854/

sh rhel3_pre_install.sh

 10.2 On Node1 Install Oracle Cluster Manager software

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, <st1:place w:st="on"><st1:PlaceType w:st="on">mount</st1:PlaceType> <st1:PlaceName w:st="on">cdrom</st1:PlaceName></st1:place> and start installation

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

mount /mnt/cdrom

cd /mnt/cdrom/Disk1

./runInstaller

 At the "Welcome Screen", click Next.

 If the "Inventory Location" screen appears, enter the inventory location then click OK.

 If the "Unix Group Name" screen appears, enter the unix group name dba then click Next.

 At this point you may be prompted to run /tmp/orainstRoot.sh on both nodes. Run this (on both nodes if prompted) and click Continue.

 At the "File Locations Screen", verify the destination listed is your ORACLE_HOME directory. Also enter a name ORACLE_HOME.

 At the "Available Products Screen", Check "Oracle Cluster Manager". Click Next.

 At the public node information screen, enter the public node names node1 and node2. Click Next.

 At the private node information screen, enter the interconnect node names node1 and node2. Click Next.

 Enter the full name of the file or raw device /orac/CMQuorumFileQuorum. Click Next.

 Press Install at the summary screen.

 You will now briefly get a progress window followed by the end of installation screen. Click Exit and confirm by clicking Yes.

 10.3 On Both Nodes, Install Version 10.1.0.2 of the Oracle Universal Installer

 From root user login, Create a directory /software/9205

 Download the 9.2.0.5 patchset from MetaLink - Patches: Enter 3501955 in the Patch Number field.

 move the patch p3501955_9205_LINUX.zip in /software/9205

 Unzip it and change permission to 777 of /software/9205 so that oracle user can use it.

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, got to /software/9205/Disk1 and start installation

 To do this, in root user GUI terminal run following commands,

xhost +

mkdir -p /software/9205

mv /path/to/p3501955_9205_LINUX.zip /software/9205

cd /software/9205

unzip p3501955_9205_LINUX.zip

cpio -idmv < 9205_lnx32_release.cpio

chmod -R 777 /software

su - oracle

cd /software/9205/Disk1

./runInstaller

 At the "Welcome Screen", click Next.

 At the "File Locations Screen", Change the $ORACLE_HOME name from the dropdown list to ORACLE_HOME. Click Next.

 On the "Available Products Screen", Check "Oracle Universal Installer 10.1.0.2". Click Next.

 Press Install at the summary screen.

 You will now briefly get a progress window followed by the end of installation screen. Click Exit and confirm by clicking Yes.

 Remember to install the 10.1.0.2 Installer on ALL cluster nodes.

 Note that you may need to change the 9.2 $ORACLE_HOME name to "ORACLE_HOME ", on the "File Locations Screen" for other nodes.

 It will ask if you want to specify a non-empty directory, say "Yes".

 10.4 On Both Nodes, Run the 10.1.0.2 Oracle Universal Installer to patch the Oracle Cluster Manager (ORACM) to 9.2.0.5

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, got to /software/9205/Disk1 and start installation

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

cd /software/9205/Disk1

./runInstaller

 At the &quot;Welcome Screen", click Next.

 At the "File Locations Screen", make sure the source location is to the products.xml file in the 9.2.0.5 patchset location under /software/9205/Disk1.

 Also verify the destination listed is your ORACLE_HOME directory. Change the $ORACLE_HOME name from the dropdown list to "ORACLE_HOME". Click Next.

 At the "Available Products Screen", Check "Oracle9iR2 Cluster Manager 9.2.0.5.0". Click Next.

 At the public node information screen, enter the public node names node1 and node2.click Next.

 At the private node information screen, enter the interconnect node names node1 and node2. Click Next.

 Click Install at the summary screen.

 You will now briefly get a progress window followed by the end of installation screen. Click Exit and confirm by clicking Yes.

 10.5 On Node1 Modify the ORACM configuration files to utilize the hangcheck-timer

 Login as "root" in GUI, open terminal, run 'xhost +', su to oracle, cd to directory $ORACLE_HOME/oracm/admin/

 Edit file cmcfg.ora

 Make sure the contents of cmcfg.ora are as follows

ClusterName=Oracle Cluster Manager, version 9i

MissCount=250

PrivateNodeNames=node1 node2

PublicNodeNames=node1 node2

ServicePort=9998

CmDiskFile=/orac/CMQuorumFile

KernelModuleName=hangcheck-timer

HostName=node1

 10.6 On Node2 Create log directory and Modify the ORACM configuration files to utilize the hangcheck-timer

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, cd to directory $ORACLE_HOME/oracm/

 Create directory log under $ORACLE_HOME/oracm

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

mkdir $ORACLE_HOME/oracm/log

 cd to directory $ORACLE_HOME/oracm/admin

 edit file cmcfg.ora

 Make sure the contents of cmcfg.ora are as follows

ClusterName=Oracle Cluster Manager, version 9i

MissCount=250

PrivateNodeNames=node1 node2

PublicNodeNames=node1 node2

ServicePort=9998

CmDiskFile=/orac/CMQuorumFile

KernelModuleName=hangcheck-timer

HostName=node2

 10.7 On Both Nodes Modify Oracle Cluster Manager Startup Script

 Login as root, su - oracle and edit file $ORACLE_HOME/oracm/bin/ocmstart.sh Add following line in the beginning of this file i.e. on line 1

/bin/rm /u01/app/oracle/product/9.2.0.1.0/oracm/log/*

 10.8 On Both Nodes Start the ORACM (Oracle Cluster Manager)

 On Both Nodes Verify that raw devices are accessible with command rawtest, if you get any error, restart nbd service on node1 first then on node2.

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, run command rawtest

 Make sure that you don't get any error like "Input/output error"

 cd to directory $ORACLE_HOME/oracm/bin, su to root, ./ocmstart.sh

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

rawtest color:navy'>Make sure that you don't get any error like "Input/output error"
 * 1) <span style='font-size:10.0pt;font-family:Verdana;

cd $ORACLE_HOME/oracm/bin

su root

./ocmstart.sh

 Verify that ORACM is running with the following command

ps -ef | grep oracm

 Make sure you see many oracm process. If not see error in $ORACLE_HOME/oracm/log/cm.log

 Also verify that the ORACM version is the same on each node

 #cd $ORACLE_HOME/oracm/log

 #head -1 cm.log

 oracm, version[ 9.2.0.2.0.49 ] started {Fri May 14 09:22:28 2004 }

 10.9 On Both Nodes Install 9.2.0.4 RAC Database

 Note: Due to bug 3547724, temporarily create a symbolic link /oradata directory pointing to an oradata directory with space available as root prior to running the RAC install:

 # mkdir -p /u04/oradata

 # chmod 777 /u04/oradata

 # ln -s /u04/oradata /oradata

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, <st1:place w:st="on"><st1:PlaceType w:st="on">mount</st1:PlaceType> <st1:PlaceName w:st="on">cdrom</st1:PlaceName></st1:place> , go to /mnt/cdrom and start installation

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

mount /mnt/cdrom

cd /mnt/cdrom/Disk1

./runInstaller

 At the "Welcome Screen", click Next.

 At the "Cluster Node Selection Screen", make sure that all RAC nodes are selected.

 At the "File Locations Screen", verify the destination listed is your ORACLE_HOME directory and that the source directory is pointing to the products.jar from the 9.2.0.4 cd or staging location.

 At the "Available Products Screen", check "Oracle 9i Database 9.2.0.4". Click Next.

 At the "Installation Types Screen", check "Enterprise Edition", click Next.

 At the "Database Configuration Screen", check "Software Only". Click Next.

 At the "Shared Configuration File Name Screen", enter the path of the CFS or NFS srvm raw device /orac/srvm. Click Next.

 Click Install at the summary screen. Note that some of the items installed will say "9.2.0.1" for the version, this is normal because only some items needed to be patched up to 9.2.0.4.

 You will now get a progress window, run root.sh when prompted.

 You will then see the end of installation screen. Click Exit and confirm by clicking Yes.

 Note: You can now remove the /oradata symbolic link:

 # rm /oradata

 10.10 On Both Nodes Patch the RAC Installation to 9.2.0.5

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, got to /software/9205/Disk1 and start installation

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

cd /software/9205/Disk1

./runInstaller

 At the "Welcome Screen", click Next.

 View the "Cluster Node Selection Screen", click Next.

 At the "File Locations Screen", make sure the source location is to the products.xml file in the 9.2.0.5 patchset location under Disk1/stage.

 Verify the destination listed is your ORACLE_HOME directory. Change the $ORACLE_HOME name from the dropdown list to the 9.2 $ORACLE_HOME name. Click Next.

 At the "Available Products Screen", Check "Oracle9iR2 PatchSets 9.2.0.5.0". Click Next.

 Click Install at the summary screen.

 You will now get a progress window, run root.sh when prompted.

 You will then see the end of installation screen. Click Exit and confirm by clicking Yes.

 10.11 On Both Nodes Create srvConfig.loc

 login as root and run following commands

mkdir -p /var/opt/oracle

echo "srvconfig_loc=/orac/srvm" > /var/opt/oracle/srvConfig.loc

chown -R oracle:dba /var/opt/oracle

chmod -R 755 /var/opt/oracle

 10.12 On Both Nodes Start The GSD (Global Service Daemon)

 Login as root and run commands

su - oracle

gsdctl start

 You should see "Successfully started GSD on local node"

 Then check the status with command

gsdctl stat

 You should see "GSD is running on the local node"

 If the GSD does not stay up, try running 'srvconfig -init -f ' from the OS prompt.

 10.13 On Both Nodes Create Listener Using command netca

 login as "root" in GUI, open terminal, and run following commands

xhost +

su - oracle

netca

 Slect "Cluster Configuration". Click Next

 Click "Select all nodes". Click Next

 Click "Listener configuration".Click Next

 Click "Add".Click Next

 Lister name:LISTENER. Click Next

 Selected Protocols: TCP. Click Next

 Click "Use the standard port number of 1521". Click Next

 Click on "No". Click Next

 Click Next

 Click "Finish"

 10.14 On Both Nodes, make sure all raw devices are working

 On Both Nodes Verify that raw devices are accessible with command rawtest, if you get any error, restart nbd service on node1 first then on node2.

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, run command rawtest

 Make sure that you don't get any error like "Input/output error"

 10.15 Only From Node1 Create a RAC Database using command dbca (Oracle Database Configuration Assistant)

 login as "root" in GUI, open terminal, and run following commands

xhost +

su - oracle

dbca

 Choose Oracle Cluster Database option and select Next.

 The Operations page is displayed. Choose the option Create a Database and click Next.

 The Node Selection page appears. Select the nodes that you want to configure as part of the RAC database and click Next.

 The Database Templates page is displayed. The templates other than New Database include datafiles. Choose New Database and then click Next. Note: The Show Details button provides information on the database template selected.

 DBCA now displays the Database Identification page. Enter the Global Database Name and Oracle System Identifier (SID) as test.

 The Database Options page is displayed. Select the options you wish to configure and then choose Next. Note: If you did not choose New Database from the Database Template page, you will not see this screen.

 Select the connection options desired from the Database Connection Options page. Click Next.

 DBCA now displays the Initialization Parameters page. This page comprises a number of Tab fields. Modify the Memory settings if desired and then select the File Locations tab to update information on the Initialization Parameters filename and location. The option Create persistent initialization parameter file is selected by default. Enter raw device name /orac/spfile_raw for the location of the server parameter file (spfile) must be entered. The button File Location Variables… displays variable information. The button All Initialization Parameters… displays the Initialization Parameters dialog box. This box presents values for all initialization parameters and indicates whether they are to be included in the spfile to be created through the check box, included (Y/N). Instance specific parameters have an instance value in the instance column. Complete entries in the All Initialization Parameters page and select Close. Note: There are a few exceptions to what can be altered via this screen. Ensure all entries in the Initialization Parameters page are complete and select Next.

 DBCA now displays the Database Storage Window. This page allows you to enter file names for each tablespace in your database.

 The Database Creation Options page is displayed. Ensure that the option Create Database is checked and click Finish.

 The DBCA Summary window is displayed. Review this information and then click OK. Once you click the OK button and the summary screen is closed, it may take a few moments for the DBCA progress bar to start. DBCA then begins to create the database according to the values specified.

 During the database creation process, you may see the following error:

ORA-29807: specified operator does not exist

 This is a known issue (bug 2925665). You can click on the "Ignore" button to continue. Once DBCA has completed database creation, remember to run the 'prvtxml.plb' script from $ORACLE_HOME/rdbms/admin independently, as the user SYS. It is also advised to run the 'utlrp.sql' script to ensure that there are no invalid objects in the database at this time.

 A new database now exists. It can be accessed via Oracle SQL*PLUS or other applications designed to work with an Oracle RAC database.

 Login as root su – oracle and run following command to check if both instances of oracle are running or not

$srvctl status database -d test

 10.16 Administering Real Application Clusters Instances

 Oracle Corporation recommends that you use SRVCTL to administer your Real Application Clusters database environment. SRVCTL manages configuration information that is used by several Oracle tools. For example, Oracle Enterprise Manager and the Intelligent Agent use the configuration information that SRVCTL generates to discover and monitor nodes in your cluster. Before using SRVCTL, ensure that your Global Services Daemon (GSD) is running after you configure your database. To use SRVCTL, you must have already created the configuration information for the database that you want to administer. You must have done this either by using the Oracle Database Configuration Assistant (DBCA), or by using the srvctl add command as described below.

 To display the configuration details for, example, database test, on nodes node1 and node2 with instances node1 and node2 run:-

 Login as root

 Su to oracle with command su - oracle

 $ srvctl config

 test

 $ srvctl config -p test -n node1

 node1 test1 /u01/app/oracle/product/9.2.0.1.0

 $ srvctl status database -d test

 Instance test1 is running on node node1

 Instance test2 is running on node node2

 Examples of starting and stopping RAC follow:-

 $ srvctl start database -d test

 $ srvctl stop database -d test

 $ srvctl stop instance -d test -i node2

 $ srvctl start instance -d test -i node2

 For further information on srvctl and gsdctl see the Oracle9i Real Application Clusters Administration manual.

 11. Reference

 1. Metalink Document ID: 184821.1

 2. http://www.oracle-base.com/Articles/9i/Oracle9iInstallationOnFedora1.php

 3. http://www.puschitz.com/InstallingOracle9iRAC.shtml

 -Swapnil Durgade

 Email: swapnil_durgade@yahoo.com

 Date: 05-Jan-2006


text:
User:Swapnil durgade/Oracle9iRAC On Fedora Core1

Oracle 9i RAC On Fedora Core 1

Author: Swapnil Durgade

Date: 05-Jan-2006

 Contents

 1 What you need

 2 Check Packages

 3 Gcc

 4 Create empty files on node1

 5 Bind rawdevices on both nodes

 6 create nbd service for node1

 7 create nbd service for node2

 8 Create test scripts on both nodes

 9 Oracle Preinstallation

 9.1 Shared Memory, oracle username and password, redhat-release, oracle home and Other Parameters on both nodes

 9.2 DataFile

 9.3 Oracle Environment

 9.4 Setup RSH

 9.5 Configure /etc/hosts

 9.6 Test Network Settings

 10 Oracle Installation

 10.1 On Both Nodes Login as root in GUI and apply patch p3006854_9204_LINUX.zip

 10.2 On Node1 Install Oracle Cluster Manager software

 10.3 On Both Nodes, Install Version 10.1.0.2 of the Oracle Universal Installer

 10.4 On Both Nodes, Run the 10.1.0.2 Oracle Universal Installer to patch the Oracle Cluster Manager (ORACM) to 9.2.0.5

 10.5 On Node1 Modify the ORACM configuration files to utilize the hangcheck-timer

 10.6 On Node2 Create log directory and Modify the ORACM configuration files to utilize the hangcheck-timer

 10.7 On Both Nodes Modify Oracle Cluster Manager Startup Script

 10.8 On Both Nodes Start the ORACM (Oracle Cluster Manager)

 10.9 On Both Nodes Install 9.2.0.4 RAC Database

 10.10 On Both Nodes Patch the RAC Installation to 9.2.0.5

 10.11 On Both Nodes Create srvConfig.loc

 10.12 On Both Nodes Start The GSD (Global Service Daemon)

 10.13 On Both Nodes Create Listener Using command netca

 10.14 On Both Nodes, make sure all raw devices are working

 10.15 Only From Node1 Create a RAC Database using command dbca (Oracle Database Configuration Assistant)

 10.16 Administering Real Application Clusters Instances

 11 Reference

 1. What you need

 1. Oracle9i Release 2 (9.2.0.4) [total 3 CDs] from http://www.oracle.com/technology/software/products/oracle9i/index.html

 2. Patch p3006854_9204_LINUX.zip from metalink.oracle.com or from http://www.idevelopment.info/data/Oracle/DBA_tips/Linux/FedoraCore2_RPMS/p3006854_9204_LINUX.zip

 3. 9.2.0.5 Patch Set from metalink.oracle.com

 4. Fedora Core 1 Three CDs

 5. nbd-server and nbd-client (Download from http://www.badongo.com/file.php?file=9iRAC__2006-01-05_9iRACSupportFiles.tar.gz

 6. hangecheck-timer.o The attached hangecheck-timer.o will NOT work with SMPS kernels. (Download from http://www.badongo.com/file.php?file=9iRAC__2006-01-05_9iRACSupportFiles.tar.gz

 7. 2 machines with around 60GB harddisk 512MB RAM for linux (Faster is better)

 8. optionally 1 windows machine with putty will help a lot (http://www.google.co.in/search?hl=en&q=download+putty&meta=)

 You can remotely login to the linux boxes and copy paste commands on putty console.

 2. On Both Nodes Check Packages

 Install Fedora Core 1 all packages

rpm -q libpng gnome-libs compat-libstdc++ compat-libstdc++-devel compat-db compat-gcc compat-gcc-c++ openmotif21 pdksh sysstat

 If above mentioned packages are not found, install them

rpm -Uvh gnome-libs-1.4.1.2.90-40.i386.rpm compat-libstdc++-7.3-2.96.126.i386.rpm compat-libstdc++-devel-7.3-2.96.126.i386.rpm compat-db-4.1.25-2.1.i386.rpm compat-gcc-7.3-2.96.126.i386.rpm compat-gcc-c++-7.3-2.96.126.i386.rpm openmotif21-2.1.30-9.i386.rpm pdksh-5.2.14-24.i386.rpm sysstat-5.0.1-2.i386.rpm libpng10-1.0.13-13.i386.rpm tcl-devel-8.4.5-7.i386.rpm tcl-8.4.5-7.i386.rpm

 Remove iptables and kerberose rlogin

rpm -e iptables redhat-config-securitylevel-tui iptables-devel iptables-ipv6 redhat-config-securitylevel  firstboot krb5-workstation

mkdir /software

 download 9iRACSupportFiles.tar.gz into /software from http://www.badongo.com/file.php?file=9iRAC__2006-01-05_9iRACSupportFiles.tar.gz

cd /software

tar – zxvf 9iRACSupportFiles.tar.gz

cd 9iRACSupportFiles

cp nbd* /bin

cp hangcheck-timer.o /

 3. On Both Nodes Gcc

mv /usr/bin/gcc /usr/bin/gcc323

mv /usr/bin/g++ /usr/bin/g++323

ln -s /usr/bin/gcc296 /usr/bin/gcc

ln -s /usr/bin/g++296 /usr/bin/g++

 4. On Node1 Create empty files

mkdir /nbd

cd /nbd

dd if=/dev/zero of=/nbd/system_raw bs=1M count=2048

dd if=/dev/zero of=/nbd/users_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/temp_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/undo_1_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/undo_2_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/indx_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/tools_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/controlfile_1_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/controlfile_2_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/redo1_1_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/redo1_2_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/redo2_1_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/redo2_2_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/spfile_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/srvctl_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/nm_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/drsys_1_raw bs=1M count=1024

dd if=/dev/zero of=/nbd/CMQuorumFile bs=1M count=2048

dd if=/dev/zero of=/nbd/srvm bs=1M count=2048

chmod 777 *

chmod 777 /dev/nb*

chmod 777 /dev/raw*

chmod 777 /dev/raw/raw*

 5. On Both Nodes Bind rawdevices

 Add following lines to /etc/sysconfig/rawdevices

/dev/raw/raw1 /dev/nb1

/dev/raw/raw2 /dev/nb2

/dev/raw/raw3 /dev/nb3

/dev/raw/raw4 /dev/nb4

/dev/raw/raw5 /dev/nb5

/dev/raw/raw6 /dev/nb6

/dev/raw/raw7 /dev/nb7

/dev/raw/raw8 /dev/nb8

/dev/raw/raw9 /dev/nb9

/dev/raw/raw10 /dev/nb10

/dev/raw/raw11 /dev/nb11

/dev/raw/raw12 /dev/nb12

/dev/raw/raw13 /dev/nb13

/dev/raw/raw14 /dev/nb14

/dev/raw/raw15 /dev/nb15

/dev/raw/raw16 /dev/nb16

/dev/raw/raw17 /dev/nb17

/dev/raw/raw18 /dev/nb18

/dev/raw/raw19 /dev/nb19

 And make rawdevices to start on boot

chkconfig rawdevices on

service rawdevices start

 6. On Node1 create nbd service

 create file /etc/init.d/nbd with following content

#!/bin/bash

#

# chkconfig: 2345 98 15

# description: nbd client

# source function library

. /etc/init.d/functions

export PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:

#

start

{

echo -n "Configuring kernel modules nbd, softdog, hangcheck-timer: "

daemon modprobe nbd; modprobe softdog soft_margin=60 soft_noboot=1; rmmod hangcheck-timer; insmod /hangcheck-timer.o hangcheck_tick=30  hangcheck_margin=180;

echo ""

#

echo -n "Setting Up Kernel Parameters: "

daemon sysctl -p

echo ""

#

sleep 1

#Check if nbd-server is already running

if [ `ps ax | grep nbd-server | wc -l` -gt 1 ]

then

echo -n "nbd server is already running: "

echo_failure

echo ""

else

echo -n $"Starting nbd server: "

daemon nbd-server 4101 /nbd/system_raw; nbd-server 4102 /nbd/users_raw; nbd-server 4102  /nbd/users_raw; nbd-server 4103 /nbd/temp_raw ; nbd-server 4104  /nbd/undo_1_raw ; nbd-server 4105 /nbd/undo_2_raw ; nbd-server 4106  /nbd/indx_raw ; nbd-server 4107 /nbd/tools_raw ; nbd-server 4108  /nbd/controlfile_1_raw ; nbd-server 4109 /nbd/controlfile_2_raw ; nbd-server 4110 /nbd/redo1_1_raw ; nbd-server 4111 /nbd/redo1_2_raw ; nbd-server 4112 /nbd/redo2_1_raw ; nbd-server 4113  /nbd/redo2_2_raw ; nbd-server 4114 /nbd/spfile_raw ; nbd-server 4115  /nbd/srvctl_raw ; nbd-server 4116 /nbd/nm_raw ; nbd-server 4117  /nbd/drsys_1_raw ; nbd-server 4118 /nbd/CMQuorumFile ; nbd-server 4119  /nbd/srvm

echo ""

fi

#

sleep 5

#Check if nbd-client is already running

if [ `ps ax | grep nbd-client | wc -l` -gt 1 ]

<p class=MsoNormal>then

echo -n "nbd client is already running: "

echo_failure

echo ""

else

echo -n $"Starting nbd client: "

daemon nbd-client node1 4101 /dev/nb1; nbd-client node1 4102 /dev/nb2; nbd-client node1 4103 /dev/nb3; nbd-client node1 4104 /dev/nb4; nbd-client node1 4105 /dev/nb5; nbd-client node1 4106 /dev/nb6; nbd-client node1 4107 /dev/nb7; nbd-client node1 4108 /dev/nb8; nbd-client node1 4109 /dev/nb9; nbd-client node1 4110 /dev/nb10; nbd-client node1 4111 /dev/nb11; nbd-client node1 4112 /dev/nb12; nbd-client node1 4113 /dev/nb13; nbd-client node1 4114 /dev/nb14; nbd-client node1 4115 /dev/nb15; nbd-client node1 4116 /dev/nb16; nbd-client node1 4117 /dev/nb17; nbd-client node1 4118 /dev/nb18; nbd-client node1 4119 /dev/nb19

echo ""

fi

#

}

stop

{

#

echo -n $"Shutting down nbd client: "

killproc nbd-client

echo ""

#

echo -n $"Shutting down nbd server: "

killproc nbd-server

echo ""

#

}

#

status

{

#

if [ `ps ax | grep nbd-server | wc -l` -le 1 ]

then

echo "nbd server is stopped "

else

echo -n "nbd server is running"

echo_success

echo ""

echo "nbd-server process count: " `ps ax | grep nbd-server | wc -l`

fi

#

if [ `ps ax | grep nbd-client | wc -l` -le 1 ]

then

echo "nbd client is stopped "

else

echo -n "nbd client is running"

echo_success

echo ""

echo "nbd-clients process count: " `ps ax | grep nbd-client | wc -l`

fi

#

}

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status;;

restart)

stop

start

;;

*)

echo $"Usage: $0 {start|stop|restart|status}"

exit 1

;;

esac

 Add service to startup and start it

chmod 755 /etc/init.d/nbd

chkconfig nbd --add

chkconfig nbd on

service nbd start

 7. On node2 create nbd service

 create file /etc/init.d/nbd with following content

#!/bin/bash

#

# chkconfig: 2345 98 15

# description: nbd client service used in Oracle Cluster Installation

# source function library

. /etc/init.d/functions

export PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:

start

{

echo -n "Configuring kernel modules nbd, softdog, hangcheck-timer: "

daemon modprobe nbd; modprobe softdog soft_margin=60 soft_noboot=1; rmmod hangcheck-timer; insmod /hangcheck-timer.o hangcheck_tick=30  hangcheck_margin=180;

echo ""

echo -n "Setting Up Kernel Parameters: "

daemon sysctl -p

echo ""

sleep 1

#Check if nbd-client is already running

if [ `ps ax | grep nbd-client | wc -l` -gt 1 ]

then

echo -n "nbd client is already running: "

echo_failure

echo ""

else

echo -n $"Starting nbd client: "

daemon nbd-client node1 4101 /dev/nb1; nbd-client node1 4102 /dev/nb2; nbd-client node1 4103 /dev/nb3; nbd-client node1 4104 /dev/nb4; nbd-client node1 4105 /dev/nb5; nbd-client node1 4106 /dev/nb6; nbd-client node1 4107 /dev/nb7; nbd-client node1 4108 /dev/nb8; nbd-client node1 4109 /dev/nb9; nbd-client node1 4110 /dev/nb10; nbd-client node1 4111 /dev/nb11; nbd-client node1 4112 /dev/nb12; nbd-client node1 4113 /dev/nb13; nbd-client node1 4114 /dev/nb14; nbd-client node1 4115 /dev/nb15; nbd-client node1 4116 /dev/nb16; nbd-client node1 4117 /dev/nb17; nbd-client node1 4118 /dev/nb18; nbd-client node1 4119 /dev/nb19

echo ""

fi

}

#

stop

{

echo -n $"Shutting down nbd client: "

killproc nbd-client

echo ""

}

#

status

{

 if [ `ps ax | grep nbd-client | wc -l` -le 1 ]

then

echo "nbd client is stopped "

else

echo -n "nbd client is running"

echo_success

echo ""

echo "nbd-clients process count: " `ps ax | grep nbd-client | wc -l`

fi

}

#

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status;;

restart)

stop

start

;;

*)

echo $"Usage: $0 {start|stop|restart|status}"

exit 1

;;

esac

 Add service to startup and start it

chmod 755 /etc/init.d/nbd

chkconfig nbd --add

chkconfig nbd on

service nbd start

 7. On Both Nodes Create test scripts

 Create /bin/rawtest with following content

alias ls=ls --color=tty

cd /orac/

for F in `ls -w 1` ; do echo "File $F"; dd if=$F of=/dev/null count=10; done

 Create /bin/rlinks with following content

ln -s /dev/raw/raw1 /orac/system_raw

ln -s /dev/raw/raw2 /orac/users_raw

ln -s /dev/raw/raw3 /orac/temp_raw

ln -s /dev/raw/raw4 /orac/undo_1_raw

ln -s /dev/raw/raw5 /orac/undo_2_raw

ln -s /dev/raw/raw6 /orac/indx_raw

ln -s /dev/raw/raw7 /orac/tools_raw

ln -s /dev/raw/raw8 /orac/controlfile_1_raw

ln -s /dev/raw/raw9 /orac/controlfile_2_raw

ln -s /dev/raw/raw10 /orac/redo1_1_raw

ln -s /dev/raw/raw11 /orac/redo1_2_raw

ln -s /dev/raw/raw12 /orac/redo2_1_raw

ln -s /dev/raw/raw13 /orac/redo2_2_raw

ln -s /dev/raw/raw14 /orac/spfile_raw

ln -s /dev/raw/raw15 /orac/srvctl_raw

ln -s /dev/raw/raw16 /orac/nm_raw

ln -s /dev/raw/raw17 /orac/drsys_1_raw

ln -s /dev/raw/raw18 /orac/CMQuorumFile

ln -s /dev/raw/raw19 /orac/srvm

chown oracle:dba /orac/*

 Make scripts executable

chmod 755 /bin/rawtest

chmod 755 /bin/rlinks

 9 Oracle Preinstallation

 9.1 On both nodes setup Shared Memory, oracle username and password, redhat-release, oracle home and Other Parameters

 Login as root and run following commands

echo "kernel.shmmax = 2147483648" >> /etc/sysctl.conf

echo "kernel.shmmni = 128" >> /etc/sysctl.conf

echo "kernel.shmall = 2097152" >> /etc/sysctl.conf

echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf

echo "fs.file-max = 65536" >> /etc/sysctl.conf

echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf

sysctl -p

echo "oracle soft nofile 65536" >> /etc/security/limits.conf

echo "oracle hard nofile 65536" >> /etc/security/limits.conf

echo "oracle soft nproc 16384" >> /etc/security/limits.conf

echo "oracle hard nproc 16384" >> /etc/security/limits.conf

groupadd oinstall

groupadd dba

groupadd oper

groupadd apache

useradd -g dba -G oinstall oracle  ;

useradd -g dba -G oinstall apache

usermod oracle -G root

chmod -R 775 /dev

mkdir /orac

chmod 777 /dev/nb*

chmod 777 /dev/raw*

chmod 777 /dev/raw/*

chown oracle:dba /dev/nb*

chown oracle:dba /dev/raw*

chown oracle:dba /dev/raw/*

chown -R oracle:dba /orac

cp /etc/redhat-release /etc/redhat-release.bak

echo redhat-3 > /etc/redhat-release

mkdir -p /u01/app/oracle/product/9.2.0.1.0

chown -R oracle:dba /u01

mkdir /var/opt/oracle

touch /var/opt/oracle/srvConfig.loc

chown -R oracle:dba /var/opt/oracle

chmod -R 775 /u01

passwd oracle; passwd apache

 Type password for oracle and apache user

 9.2 Only On Node1 DataFile

 Login as root and run following command

cat > /orac/datafiles.conf <<EOF

system=/orac/system_raw

users=/orac/users_raw

temp=/orac/temp_raw

undotbs1=/orac/undo_1_raw

undotbs2=/orac/undo_2_raw

indx=/orac/indx_raw

tools=/orac/tools_raw

control1=/orac/controlfile_1_raw

control2=/orac/controlfile_2_raw

redo1_1=/orac/redo1_1_raw

redo1_2=/orac/redo1_2_raw

redo2_1=/orac/redo2_1_raw

redo2_2=/orac/redo2_2_raw

spfile=/orac/spfile_raw

srvconfig_loc=/orac/srvctl_raw

EOF

 9.3 On Both Nodes Setup Oracle Environment

 Add following lines to oracle's .bash_profile on both nodes and make sure that oracle_sid should be unique

 Example  on node1 “ORACLE_SID= test1 ; export ORACLE_SID” and on node2 “ORACLE_SID= test2 ; export ORACLE_SID”

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/9.2.0.1.0; export ORACLE_HOME

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=$ORACLE_HOME/bin:$PATH; export PATH

ORACLE_OWNER=oracle; export ORACLE_OWNER

ORACLE_SID= test1 ; export ORACLE_SID

LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL

THREADS_FLAG=native; export THREADS_FLAG

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

DBCA_RAW_CONFIG=/orac/datafiles.conf

 9.4 On Both Nodes Setup RSH

 Check if rsh-server is installed with command

rpm –q rsh-server

 If it is not there, install it from cd with command

rpm -ivh rsh-server-0.17-19.i386.rpm

chkconfig rsh on

chkconfig rlogin on

chkconfig xinetd on

service xinetd restart

touch /etc/hosts.equiv

chmod 600 /etc/hosts.equiv

chown root.root /etc/hosts.equiv

echo "+node1 oracle" >> /etc/hosts.equiv

echo "+node2 oracle" >> /etc/hosts.equiv

 9.5 On Both Nodes Configure /etc/hosts

 Give unique static IP addresses to both node1 and node2. Edit /etc/hosts of both the node and add there IP addresses in /etc/hosts

 e.g.

127.0.0.1 localhost localhost.localdomain

10.1.1.1 node1

10.1.1.2 node2

 9.6 Test Network Settings

 From node1 try to ping node1 (i.e. ping itself) and make sure that it is pinging to correct IP and NOT 127.0.0.1

 From node1 try to ping to node2 and make sure it is pining to correct ipaddress of node2

 From node2 try to ping node2 (i.e. ping itself) and make sure that it is pinging to correct IP and NOT 127.0.0.1

 From node2 try to ping to node1 and make sure it is pining to correct ipaddress of node1

 on node1, run command hostname and make sure it returns node1 and not localhost or localhost.localdomain

 if you are getting someting else, change HOSTNAME=node1 in /etc/sysconfig/network and reboot system

 on node2, run command hostname and make sure it returns node2 and not localhost or localhost.localdomain

 if you are getting someting else, change HOSTNAME=node2 in /etc/sysconfig/network and reboot system

 on node1 login as root and run 2 commands su - oracle followed by rsh node2 and you should be able to login to node2 without any password

 on node2 login as root and run 2 commands su - oracle followed by rsh node1 and you should be able to login to node1 without any password

 10 Oracle Installation

 10.1 On Both Nodes Login as root in GUI and apply patch p3006854_9204_LINUX.zip

 go to directory where patch is downloaded

unzip p3006854_9204_LINUX.zip

cd 3006854/

sh rhel3_pre_install.sh

 10.2 On Node1 Install Oracle Cluster Manager software

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, <st1:place w:st="on"><st1:PlaceType w:st="on">mount</st1:PlaceType> <st1:PlaceName w:st="on">cdrom</st1:PlaceName></st1:place> and start installation

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

mount /mnt/cdrom

cd /mnt/cdrom/Disk1

./runInstaller

 At the "Welcome Screen", click Next.

 If the "Inventory Location" screen appears, enter the inventory location then click OK.

 If the "Unix Group Name" screen appears, enter the unix group name dba then click Next.

 At this point you may be prompted to run /tmp/orainstRoot.sh on both nodes. Run this (on both nodes if prompted) and click Continue.

 At the "File Locations Screen", verify the destination listed is your ORACLE_HOME directory. Also enter a name ORACLE_HOME.

 At the "Available Products Screen", Check "Oracle Cluster Manager". Click Next.

 At the public node information screen, enter the public node names node1 and node2. Click Next.

 At the private node information screen, enter the interconnect node names node1 and node2. Click Next.

 Enter the full name of the file or raw device /orac/CMQuorumFileQuorum. Click Next.

 Press Install at the summary screen.

 You will now briefly get a progress window followed by the end of installation screen. Click Exit and confirm by clicking Yes.

 10.3 On Both Nodes, Install Version 10.1.0.2 of the Oracle Universal Installer

 From root user login, Create a directory /software/9205

 Download the 9.2.0.5 patchset from MetaLink - Patches: Enter 3501955 in the Patch Number field.

 move the patch p3501955_9205_LINUX.zip in /software/9205

 Unzip it and change permission to 777 of /software/9205 so that oracle user can use it.

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, got to /software/9205/Disk1 and start installation

 To do this, in root user GUI terminal run following commands,

xhost +

mkdir -p /software/9205

mv /path/to/p3501955_9205_LINUX.zip /software/9205

cd /software/9205

unzip p3501955_9205_LINUX.zip

cpio -idmv < 9205_lnx32_release.cpio

chmod -R 777 /software

su - oracle

cd /software/9205/Disk1

./runInstaller

 At the "Welcome Screen", click Next.

 At the "File Locations Screen", Change the $ORACLE_HOME name from the dropdown list to ORACLE_HOME. Click Next.

 On the "Available Products Screen", Check "Oracle Universal Installer 10.1.0.2". Click Next.

 Press Install at the summary screen.

 You will now briefly get a progress window followed by the end of installation screen. Click Exit and confirm by clicking Yes.

 Remember to install the 10.1.0.2 Installer on ALL cluster nodes.

 Note that you may need to change the 9.2 $ORACLE_HOME name to "ORACLE_HOME ", on the "File Locations Screen" for other nodes.

 It will ask if you want to specify a non-empty directory, say "Yes".

 10.4 On Both Nodes, Run the 10.1.0.2 Oracle Universal Installer to patch the Oracle Cluster Manager (ORACM) to 9.2.0.5

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, got to /software/9205/Disk1 and start installation

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

cd /software/9205/Disk1

./runInstaller

 At the &quot;Welcome Screen", click Next.

 At the "File Locations Screen", make sure the source location is to the products.xml file in the 9.2.0.5 patchset location under /software/9205/Disk1.

 Also verify the destination listed is your ORACLE_HOME directory. Change the $ORACLE_HOME name from the dropdown list to "ORACLE_HOME". Click Next.

 At the "Available Products Screen", Check "Oracle9iR2 Cluster Manager 9.2.0.5.0". Click Next.

 At the public node information screen, enter the public node names node1 and node2.click Next.

 At the private node information screen, enter the interconnect node names node1 and node2. Click Next.

 Click Install at the summary screen.

 You will now briefly get a progress window followed by the end of installation screen. Click Exit and confirm by clicking Yes.

 10.5 On Node1 Modify the ORACM configuration files to utilize the hangcheck-timer

 Login as "root" in GUI, open terminal, run 'xhost +', su to oracle, cd to directory $ORACLE_HOME/oracm/admin/

 Edit file cmcfg.ora

 Make sure the contents of cmcfg.ora are as follows

ClusterName=Oracle Cluster Manager, version 9i

MissCount=250

PrivateNodeNames=node1 node2

PublicNodeNames=node1 node2

ServicePort=9998

CmDiskFile=/orac/CMQuorumFile

KernelModuleName=hangcheck-timer

HostName=node1

 10.6 On Node2 Create log directory and Modify the ORACM configuration files to utilize the hangcheck-timer

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, cd to directory $ORACLE_HOME/oracm/

 Create directory log under $ORACLE_HOME/oracm

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

mkdir $ORACLE_HOME/oracm/log

 cd to directory $ORACLE_HOME/oracm/admin

 edit file cmcfg.ora

 Make sure the contents of cmcfg.ora are as follows

ClusterName=Oracle Cluster Manager, version 9i

MissCount=250

PrivateNodeNames=node1 node2

PublicNodeNames=node1 node2

ServicePort=9998

CmDiskFile=/orac/CMQuorumFile

KernelModuleName=hangcheck-timer

HostName=node2

 10.7 On Both Nodes Modify Oracle Cluster Manager Startup Script

 Login as root, su - oracle and edit file $ORACLE_HOME/oracm/bin/ocmstart.sh Add following line in the beginning of this file i.e. on line 1

/bin/rm /u01/app/oracle/product/9.2.0.1.0/oracm/log/*

 10.8 On Both Nodes Start the ORACM (Oracle Cluster Manager)

 On Both Nodes Verify that raw devices are accessible with command rawtest, if you get any error, restart nbd service on node1 first then on node2.

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, run command rawtest

 Make sure that you don't get any error like "Input/output error"

 cd to directory $ORACLE_HOME/oracm/bin, su to root, ./ocmstart.sh

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

 rawtest
 * 1) Make sure that you don't get any error like "Input/output error"

cd $ORACLE_HOME/oracm/bin

su root

./ocmstart.sh

 Verify that ORACM is running with the following command

ps -ef | grep oracm

 Make sure you see many oracm process. If not see error in $ORACLE_HOME/oracm/log/cm.log

 Also verify that the ORACM version is the same on each node

 #cd $ORACLE_HOME/oracm/log

 #head -1 cm.log

 oracm, version[ 9.2.0.2.0.49 ] started {Fri May 14 09:22:28 2004 }

 10.9 On Both Nodes Install 9.2.0.4 RAC Database

 Note: Due to bug 3547724, temporarily create a symbolic link /oradata directory pointing to an oradata directory with space available as root prior to running the RAC install:

 # mkdir -p /u04/oradata

 # chmod 777 /u04/oradata

 # ln -s /u04/oradata /oradata

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, <st1:place w:st="on"><st1:PlaceType w:st="on">mount</st1:PlaceType> <st1:PlaceName w:st="on">cdrom</st1:PlaceName></st1:place> , go to /mnt/cdrom and start installation

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

mount /mnt/cdrom

cd /mnt/cdrom/Disk1

./runInstaller

 At the "Welcome Screen", click Next.

 At the "Cluster Node Selection Screen", make sure that all RAC nodes are selected.

 At the "File Locations Screen", verify the destination listed is your ORACLE_HOME directory and that the source directory is pointing to the products.jar from the 9.2.0.4 cd or staging location.

 At the "Available Products Screen", check "Oracle 9i Database 9.2.0.4". Click Next.

 At the "Installation Types Screen", check "Enterprise Edition", click Next.

 At the "Database Configuration Screen", check "Software Only". Click Next.

 At the "Shared Configuration File Name Screen", enter the path of the CFS or NFS srvm raw device /orac/srvm. Click Next.

 Click Install at the summary screen. Note that some of the items installed will say "9.2.0.1" for the version, this is normal because only some items needed to be patched up to 9.2.0.4.

 You will now get a progress window, run root.sh when prompted.

 You will then see the end of installation screen. Click Exit and confirm by clicking Yes.

 Note: You can now remove the /oradata symbolic link:

 # rm /oradata

 10.10 On Both Nodes Patch the RAC Installation to 9.2.0.5

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, got to /software/9205/Disk1 and start installation

 To do this, in root user GUI terminal run following commands,

xhost +

su - oracle

cd /software/9205/Disk1

./runInstaller

 At the "Welcome Screen", click Next.

 View the "Cluster Node Selection Screen", click Next.

 At the "File Locations Screen", make sure the source location is to the products.xml file in the 9.2.0.5 patchset location under Disk1/stage.

 Verify the destination listed is your ORACLE_HOME directory. Change the $ORACLE_HOME name from the dropdown list to the 9.2 $ORACLE_HOME name. Click Next.

 At the "Available Products Screen", Check "Oracle9iR2 PatchSets 9.2.0.5.0". Click Next.

 Click Install at the summary screen.

 You will now get a progress window, run root.sh when prompted.

 You will then see the end of installation screen. Click Exit and confirm by clicking Yes.

 10.11 On Both Nodes Create srvConfig.loc

 login as root and run following commands

mkdir -p /var/opt/oracle

echo "srvconfig_loc=/orac/srvm" > /var/opt/oracle/srvConfig.loc

chown -R oracle:dba /var/opt/oracle

chmod -R 755 /var/opt/oracle

 10.12 On Both Nodes Start The GSD (Global Service Daemon)

 Login as root and run commands

su - oracle

gsdctl start

 You should see "Successfully started GSD on local node"

 Then check the status with command

gsdctl stat

 You should see "GSD is running on the local node"

 If the GSD does not stay up, try running 'srvconfig -init -f ' from the OS prompt.

 10.13 On Both Nodes Create Listener Using command netca

 login as "root" in GUI, open terminal, and run following commands

xhost +

su - oracle

netca

 Slect "Cluster Configuration". Click Next

 Click "Select all nodes". Click Next

 Click "Listener configuration".Click Next

 Click "Add".Click Next

 Lister name:LISTENER. Click Next

 Selected Protocols: TCP. Click Next

 Click "Use the standard port number of 1521". Click Next

 Click on "No". Click Next

 Click Next

 Click "Finish"

 10.14 On Both Nodes, make sure all raw devices are working

 On Both Nodes Verify that raw devices are accessible with command rawtest, if you get any error, restart nbd service on node1 first then on node2.

 login as "root" in GUI, open terminal, run 'xhost +', su to oracle, run command rawtest

 Make sure that you don't get any error like "Input/output error"

 10.15 Only From Node1 Create a RAC Database using command dbca (Oracle Database Configuration Assistant)

 login as "root" in GUI, open terminal, and run following commands

xhost +

su - oracle

dbca

 Choose Oracle Cluster Database option and select Next.

 The Operations page is displayed. Choose the option Create a Database and click Next.

 The Node Selection page appears. Select the nodes that you want to configure as part of the RAC database and click Next.

 The Database Templates page is displayed. The templates other than New Database include datafiles. Choose New Database and then click Next. Note: The Show Details button provides information on the database template selected.

 DBCA now displays the Database Identification page. Enter the Global Database Name and Oracle System Identifier (SID) as test.

 The Database Options page is displayed. Select the options you wish to configure and then choose Next. Note: If you did not choose New Database from the Database Template page, you will not see this screen.

 Select the connection options desired from the Database Connection Options page. Click Next.

 DBCA now displays the Initialization Parameters page. This page comprises a number of Tab fields. Modify the Memory settings if desired and then select the File Locations tab to update information on the Initialization Parameters filename and location. The option Create persistent initialization parameter file is selected by default. Enter raw device name /orac/spfile_raw for the location of the server parameter file (spfile) must be entered. The button File Location Variables… displays variable information. The button All Initialization Parameters… displays the Initialization Parameters dialog box. This box presents values for all initialization parameters and indicates whether they are to be included in the spfile to be created through the check box, included (Y/N). Instance specific parameters have an instance value in the instance column. Complete entries in the All Initialization Parameters page and select Close. Note: There are a few exceptions to what can be altered via this screen. Ensure all entries in the Initialization Parameters page are complete and select Next.

 DBCA now displays the Database Storage Window. This page allows you to enter file names for each tablespace in your database.

 The Database Creation Options page is displayed. Ensure that the option Create Database is checked and click Finish.

 The DBCA Summary window is displayed. Review this information and then click OK. Once you click the OK button and the summary screen is closed, it may take a few moments for the DBCA progress bar to start. DBCA then begins to create the database according to the values specified.

 During the database creation process, you may see the following error:

ORA-29807: specified operator does not exist

 This is a known issue (bug 2925665). You can click on the "Ignore" button to continue. Once DBCA has completed database creation, remember to run the 'prvtxml.plb' script from $ORACLE_HOME/rdbms/admin independently, as the user SYS. It is also advised to run the 'utlrp.sql' script to ensure that there are no invalid objects in the database at this time.

 A new database now exists. It can be accessed via Oracle SQL*PLUS or other applications designed to work with an Oracle RAC database.

 Login as root su – oracle and run following command to check if both instances of oracle are running or not

$srvctl status database -d test

 10.16 Administering Real Application Clusters Instances

 Oracle Corporation recommends that you use SRVCTL to administer your Real Application Clusters database environment. SRVCTL manages configuration information that is used by several Oracle tools. For example, Oracle Enterprise Manager and the Intelligent Agent use the configuration information that SRVCTL generates to discover and monitor nodes in your cluster. Before using SRVCTL, ensure that your Global Services Daemon (GSD) is running after you configure your database. To use SRVCTL, you must have already created the configuration information for the database that you want to administer. You must have done this either by using the Oracle Database Configuration Assistant (DBCA), or by using the srvctl add command as described below.

 To display the configuration details for, example, database test, on nodes node1 and node2 with instances node1 and node2 run:-

 Login as root

 Su to oracle with command su - oracle

 $ srvctl config

 test

 $ srvctl config -p test -n node1

 node1 test1 /u01/app/oracle/product/9.2.0.1.0

 $ srvctl status database -d test

 Instance test1 is running on node node1

 Instance test2 is running on node node2

 Examples of starting and stopping RAC follow:-

 $ srvctl start database -d test

 $ srvctl stop database -d test

 $ srvctl stop instance -d test -i node2

 $ srvctl start instance -d test -i node2

 For further information on srvctl and gsdctl see the Oracle9i Real Application Clusters Administration manual.

 11. Reference

 1. Metalink Document ID: 184821.1

 2. http://www.oracle-base.com/Articles/9i/Oracle9iInstallationOnFedora1.php

 3. http://www.puschitz.com/InstallingOracle9iRAC.shtml

 -Swapnil Durgade

 Email: swapnil_durgade@yahoo.com

 Date: 05-Jan-2006


text:
Biochemistry/Respiratory Pigments

In humans, these pigments include hemoglobin and myoglobin, the latter is present in red muscle fibers. Hemoglobin is a coordination compound of iron. It had attachment sites for gases, namely oxygen and carbon dioxide. Its reactivity depends upon partial pressure of these gases. The presence of heme makes it appear red colored. Myoglobin is present in muscles to make available extra oxygen.

title: Biochemistry/Respiratory Pigments


text:
User:Blackcap/standard.js

function KateLinkClassicSkin {               //      This is tricky, as there are so few tag-IDs to assist us. //     I'm placing Kate right after the "User (Talk)" links at top. //       var td = document.getElementById( 'topbar' ).getElementsByTagName( 'td' )[ 2 ]; var user = td.getElementsByTagName( 'a' )[ 0 ]; var name = user.firstChild.nodeValue; var loc = td.getElementsByTagName( 'br' )[ 0 ]; // insert before this

var kate = document.createElement( 'a' ); kate.appendChild( document.createTextNode( 'Kate' ) ); kate.href = 'http://tools.wikimedia.de/~kate/cgi-bin/count_edits?dbname=enwikibooks_p&user=' + name;

td.insertBefore( document.createTextNode( ' ' ), loc ); td.insertBefore( kate, loc ); } if ( window.addEventListener ) window.addEventListener( 'load', KateLinkClassicSkin, false ); else if ( window.attachEvent ) window.attachEvent( 'onload', KateLinkClassicSkin );

title: User:Blackcap/standard.js


text:
Asset Allocation

Contents

 * Welcome
 * /Introduction/
 * /Resources/
 * /United States/

title: Asset Allocation


text:
Jini and Network Computing

Jini is a specification of several capabilities and associated tools related to distributed computing and dealing with the eight fallacies of distributed computing. There are a number of vendors selling Jini compatible tools or implementations of APIs in the specification (one of the more common APIs being implemented in these commercial products is The JavaSpaces API) and a number of consultancies with expertise in Jini and JavaSpaces based systems design and implementation.

The Jini community website was originally created to contain the software being developed by community members which needed to be protected by the SCSL licensing. Since the conversion of the licensing to ALV2, this primary need is starting to disappear as some of the projects are moved to ALV2 or other non-SCSL licensing.

However, the jini-users mailing list and the javaspaces-users mailing list contain a large amount of very useful information about using Jini and answers to common questions that have been popular topics over the years. The Blitz Project (http://www.dancres.org/blitz/) maintains a conglomeration of a lot of very important links and information regarding the changes between Jini 1.x and Jini 2.0 and later together with other useful resources at http://www.dancres.org/cottage/starting_jini.html.

Chapters
In the end, this should be a book. That means that there need to be more serialized content than is typically present in a wiki created documentation set.

 * 1) Introduction

Miscellaneous topics
The following are some of the most popular topics that have surfaced on the mailing lists over the years. As people have time, these pages will likely get filled in with references to the list messages that contain answers to these questions, as well as other informative information.

 * I need help Moving an RMI application over to Jini?
 * Where do I learn more about Using Jini Exporters instead of Subclassing the UnicastRemoteObject class.
 * Is there a good overview on Using Configuration Files for services.
 * Where is the documentation on Using Jini Extensible Remote Invocation for security and access control.
 * How to capitalize on JavaSpaces05 changes for batching.
 * What in the world is the java.rmi.server.codebase property all about.
 * Specifying a Codebase dynamically or otherwise at runtime instead of on the command line.
 * The ins and outs of multicast and unicast lookup.
 * Service discovery through a firewall.
 * Using a service through a firewall.
 * Commercial Support.

External links and resources

 * Jini community website

title: Jini and Network Computing


text:
Jini and Network Computing/Introduction

The original Jini toolkit and specification was developed by Sun Microsystems. It was released under a flurry of marketing pointing at toaster automation and a kitchen full of communicating gadgets.

Jini is now an Apache License Version 2 licensed, open source, community driven and supported system. The specification provides the compatibility control. The licensing of the specification and Sun Microsystems contributed implementation under the ALV2 license provides the opportunity for everyone to participate in the continued evolution of this powerful technology.

Jini exploits the RMI programming model to make use of mobile Java code. The original Java Applet mechanism demonstrated the power of downloading software on the fly to perform a task that was not programmed into the environment of the user. The Java Platform/Java Security Model allows a secure and predictable outcome to software running in an instance of The Java Platform/Java Virtual Machine. In The Jini Platform/Jini 2.0, the The Jini Platform/Jini Extensible Remote Invocation API provided extensions to the Java Security Model which provided more control over security.

The Jini and Network Computing section contains more information on using Jini for advanced network computing.

title: Jini and Network Computing/Introduction


text:
C Sharp Programming/Intro

Introduction
; Foreword : A description of the C# language and an introduction to this Wikibook.
 * Getting started with C# : A simple C# program and where to get tools to compile it.

title: C Sharp Programming/Intro


text:
C Sharp Programming/Basics

Basics
; Naming conventions : Quickly describes the generally accepted naming conventions for C#.
 * Basic syntax : Describes the basics in how the applications you write will be interpreted.
 * Variables : The entities used to store data of various shapes.
 * Operators : Summarizes the operators, such as the '+' in addition, available in C#.
 * Data structures : Enumerations, structs, and more.
 * Control statements : Loops, conditions, and more. How the program flow is controlled.
 * Exceptions : Responding to errors that can occur.

title: C Sharp Programming/Basics


text:
C Sharp Programming/Structure

Classes
; Namespaces : Giving your code its own space to live in.
 * Classes : The blueprints of objects that describe how they should work.
 * Objects : Cornerstones of any object-oriented programming language, objects are the tools you use to perform work.
 * Encapsulation and accessor levels : Explains protection of object states by encapsulation.

title: C Sharp Programming/Structure


text:
C Sharp Programming/The .NET Framework

The .NET Framework
; .NET Framework Overview : An overview of the .NET class library used in C#.
 * /Console Programming/ : Input and output using the console.
 * /Windows Forms/ : GUI Programming with Windows Forms.
 * /Collections/ : Effectively manage (add, find, iterate, remove, etc.) large sets of data.
 * /Threading/ : Threading with the .NET class library
 * /Marshalling/ : Communicating with unmanaged code

title: C Sharp Programming/The .NET Framework


text:
C Sharp Programming/Advanced

Advanced Topics
; Casting:How casting is done between types.
 * Inheritance:Re-using existing code to improve or specialize the functionality of an object.
 * Interfaces:Define a template, on which to base sub-classes.
 * Delegates and Events:Learn about delegates, anonymous delegates, lambda expressions, and events.
 * Abstract classes:Build partially implemented classes.
 * Partial classes:Split a class over several files to allow multiple users to develop, but also to stop code generators interfering with source code.
 * Generics:Allow commonly used collections and classes to appear to have specialization for your custom class.
 * Extension methods:Extend the functionality of existing types.
 * Object Lifetime:Learn about the lifetime of objects, where they are allocated and learn about garbage collection.
 * Design Patterns:Learn commonly used design methodologies to simplify and/or improve your development framework.

title: C Sharp Programming/Advanced


text:
C Sharp Programming/Index

Key concepts

 * A
 * Abstract classes
 * Accessors
 * Arrays
 * C
 * Classes
 * abstract
 * events
 * constructors
 * destructors
 * finalizers
 * methods
 * extension
 * virtual
 * partial
 * properties
 * sealed
 * static
 * Constructors
 * Class constructors
 * Structure constructors
 * D
 * Delegates
 * Destructors
 * E
 * Encapsulation
 * protection levels
 * Events
 * Example code:
 * Round a number
 * Extension methods
 * F
 * Finalizers
 * G
 * Generics

 * Generic type constraints
 * Getters
 * I
 * Indexers
 * Inheritance
 * keywords
 * subtyping
 * Interfaces
 * Input
 * M
 * Methods
 * extension
 * virtual
 * N
 * Namespaces
 * O
 * Objects
 * Operators
 * Overloading
 * Output
 * P
 * Partial classes
 * Properties
 * Protection Levels
 * S
 * Sealed class
 * Setters
 * Static classes
 * Structures
 * Constructors
 * Subtyping Inheritance
 * V
 * Virtual Methods

title: C Sharp Programming/Index


text:
Piano/Piano Practice

Piano Practice
Piano practice is an important aspect of piano playing. Piano pedagogues have several theories on the best way to implement and encourage students to practice. Resources are available for students to chart the time spent in practicing.

Teachers dictate varying amounts of time required for students of different levels of skill. For example, a beginning student may be required to practice 20 minutes a day while an advanced student may practice over an hour a day. A common approach in a practice session is:

The metronome is a useful tool in piano practice sessions. Students need to have ready access to their own piano - having to travel somewhere to practice often provides an unnecessary hurdle for some students.
 * 1) warm-up - scales, arpeggios, chord progressions;
 * 2) work sections of pieces gradually expanding to include before and after the trouble spot - rhythms, fingerings, and/or notes that need to be drilled;
 * 3) work entire pieces - consistent tempo, accurate dynamics and touch, etc.

How to practice
At first, you can play some of your finished pieces. You learn to play your pieces without warming up (which is a skill surprisingly easily cultivated) and warm up at the same time! But let's go to the real practising.

Find the most difficult bars of your piece. These bars almost always have all the technique you need in order to play the piece. Then you should practice them hands separate. This allows you to speed up music quickly so you can practice the correct technique earlier and thus save time. In slow play, you can play with all kinds of unnecessary movements, but in fast playing you simply don't have time to do them! Hand separate practice also allows resting your tired hand, but always play slowly (about 75% of the speed) after changing hands. It cleans you from the bad habits you just learned practising fast. You should do hands separate pratice only when you can't play hands together adequately, except in contrapuntal music.

A good method to join hands together (but not the only) is following:

Play the more difficult hand. Then repeat with the first note of the other hand. Then repeat with the first two notes etc. You almost never get stuck with this method. But don't choose too large sections, otherwise you waste your time.

The other way is to outline the piece. Forget about anything other than the bass and melody (but keep the fingering same) and gradually fill the piece with other notes

Choose overlapping sections and practice the most difficult. Ideally they should be small enough to be learned in 20 minutes, but if you learn them after 30 minutes or 10 minutes, don't worry. Also memorize them. After that, forget about it until next day. You can choose another section or piece.

If your sections overlap, joining them together will be easy. If you get this far, congratulations! You can now start to make music. But the text above is just peak of an iceberg. Answering to the more specific problems need more specific questions. The is the cure for the problems in rhythm, rhythm variations short-long and long short are answer to the uneven sounding passages and so on.

Sources:
There is a Web-Book available: "Fundamentals of Piano Practice" by Chuan C. Chang. His method is based on 5 major concepts: Hand Separate Practice, Segmental Practice, Parallel Sets, Memorization, and Mental Play.

The text of this book shall be available to hear as a podcast. On iTunes it the id=204337730.

For a web essay on Piano Technique, see:

 * "Principles of Piano Technique"
 * "Infographic: Guide to Effective Digital Piano Practice"

title: Piano/Piano Practice


text:
GNU C Compiler Internals

This book describes two releases of GCC: 3.4 and 4.1.

 * Read about /GCC 3.4/.
 * Read about /GCC 4.1/.
 * /GNU C Compiler Architecture/

title: GNU C Compiler Internals


text:
User:Ag Foghlaim~enwikibooks

Tá mé ag foghlaim Gaeilge.

My Wikipedia accounts

 * Béarla
 * Gaeilge

title: User:Ag Foghlaim~enwikibooks


text:
Wikijunior:Dinosaurs/Stegosaurus

Stegosaurus is Greek for "plated lizard"; this name is given to the dinosaur due to a heavy armour of plates down its back. It is also sometimes known as one of the dumbest dinosaurs, because it had a very small brain compared to its large body.

What did they look like?
An average Stegosaurus was about 12 m (40 ft) long and about 2.75 m (9 ft) tall. Stegosaurus weighed about 2,000 kg or 6,800 pounds (around 2 tons!) Stegosaurus's front feet each had five toes and there were three toes on each back foot. The feet resembled gigantic horse hoofs and the people who first discovered them actually thought they might have come from giant horses!

The most prominent feature of a Stegosaurus was the row of plates running down its back, along the spine. These plates could be larger than 75 cm in height! It was once thought that they were used as protection against predators such as the Allosaurus, but in fact they were not solid bone and would have been easy to break. They were covered with thin skin and lots of blood vessels.

Nobody knows for sure what the back plates were used for, but many scientists now believe that they were used for temperature control – to gather heat from the surroundings. They would have been used like solar panels. When the animal needed to warm up, it would stand with its side toward the sun. The thin skin and many blood vessels covering the plates would soak up the heat of the sun. When the Stegosaurus got too hot, it could stand in the shade, or turn itself to face the sun (or face away from it). Then the blood vessels could be cooled. Another theory is that the plates could "blush", filling up with blood; the now-red plates could be used to attract a mate, or scare enemies.

For defence Stegosaurus did have four (or eight) heavy spikes on its tail, which could be used to hit attackers.

Stegosaurus's mouth was shaped a bit like a beak and had no teeth in the front – probably for snipping plants.

What did they eat?
Stegosaurus was a herbivore, meaning it ate plants. It mainly liked to browse plants near the ground, because they were the easiest to reach with its short neck. They were plants such as ferns, mosses, cycads and baby evergreen trees, which contained little nutrition. Most of them were only 3–4 feet high. Stegosaurus may have been able to rear up on its hind legs for short periods of time to browse plants that were otherwise out of reach.

Due to plants having little nutrition in each bite, the Stegosaurus had to eat a lot. It would spend most of its day eating.

When did they live?
They lived during the late Jurassic period about 156–145 million years ago.

Where did they live?
They lived in subtropical parts in the USA, but there were also stegosaurus living in other parts of the world including Africa, China, Mongolia and Europe.

Stegosaurus fossils have been found in the US states of Colorado, Utah and Wyoming.

How were they discovered?
The first Stegosaurus fossil was found in Colorado, USA, in 1876 by M. P. Felch. It was named in 1877 by Othniel C. Marsh.

The most complete Stegosaurus fossil ever found was nicknamed "Spike". It was discovered in Colorado, USA, by Bryan Small, Tim Seeber and Kenneth Carpenter in 1992.

What do we need to learn?

 * We would like to know why "Stegosaurus" had the big bony plates on its back. Did they cool Stegosaurus? Did it use them to show off?  Or to protect itself?  We don't know.
 * Stegosaurus's back plates were not solid – they were filled with long hollow tubes or tunnels. What were they for?
 * Stegosaurus had cousins, known as Stegosaurs. Some of the cousins lived in herds (like cows and horses do today), and some did not. We would like to know whether Stegosaurus lived in herds, or whether it lived mostly alone.
 * Stegosaurus had a very small brain. Scientists used to think a structure near its hip was a second brain, perhaps to help control its tail and hind legs.  Now they think it might be a "glycogen body", which is something birds have and is related to storing energy, although they're not sure quite what it does even in birds.  We would like to know for sure.

Wikijuinor Dinosauri/Stegosaurus

title: Wikijunior:Dinosaurs/Stegosaurus


text:
Wikijunior:Dinosaurs/Allosaurus

The Allosaurus, meaning "different lizard", was one of the largest predators of its time.

What did it look like?
The Allosaurus was a large carnivorous dinosaur that walked on two legs and had two arms on the front of its body. This dinosaur could grow to be 12 meters long (38 feet) 5 meters tall (16 feet) and weigh up to about 1.4 tons (3086 lbs)! This dinosaur had a very long head, 90cm (3 ft), with many 5 to 10 cm teeth. The Allosaurus did not look like the other dinosaurs that existed at that time. Because of this, the word Allosaurus means "different lizard".

The Allosaurus is in the theropod (meaning "beast foot") family. Allosaurus had two arms. Its arms were longer than those of the T.Rex with large wicked claws. The Allosaurus was bipedal.

Allosaurus had 2 crests above its eyes which may have been used for mating display.

What did they eat?
Allosaurus were carnivorous dinosaurs. Allosaurus hunted in small groups which allowed them to take down even the largest prey. In the same way as raptors would, only slightly smaller groups. They even ate the gigantic Apatosaurus (which used to be called Brontosaurus) even though the Apatosaurus was more than three times the size of an Allosaurus. The Allosaurus was also likely to have hunted Stegosaurus, and Iguanodonts such as Camptosaurus.

Young baby Allosaurus might have eaten insects like dragonflies and centipedes, and other small animals. When about two years old, Allosaurus might have eaten small dinosaurs (Othnielia, Dryosaurs and so on).

Allosaurs competed for food with ceratosaurs when they first arrived but may have eventually driven the ceratosaurs to extinction. Allosaurus's teeth were thin and serrated not made to puncture bone but to strip bits of meat off a carcase. Often Allosaurus left pieces of meat on the bone that other predators like Ornithelestes would scavenge.

When did they live?
Allosaurus lived in the Mesozoic era. Meso means middle so Allosaurus lived in the middle era of the age of dinosaurs. They lived in that era's late Jurassic period, which was about the middle of the Mesozoic, between about 154 and 115 million years ago.

Where did they live?
Allosaurus was a very common dinosaur around 135 million years ago. It lived on the land that now makes up the Morrison Formation, covering what is now the central USA and Portugal.

A major discovery was made in Colorado when a rancher named M. P. Felch discovered an almost perfect skeleton of an Allosaurus. They have also been found in Africa, which was connected to North America by a land bridge at the time. There is a site in Utah where the fossils of more than 40 Allosaurus have been found. Some close relatives lived in Asia.

Allosaurus probably lived on the plains and lowlands where groups could hunt easily. It probably had to compete for food against Ceratosaurus and some species of Dilophosaurus. Some allosaurs lived in Europe. There is evidence that Allosaurus lived in or near wetlands. One find in Utah shows that a "predator trap" may have caught plant eating dinosaurs in sticky mud. Allosaurs tried to get an easy snack, but they also were caught and died.

How were they discovered?
The first fossil of an Allosaurus to be discovered was found in the USA state of Colorado, in 1869. At first, the people who found it thought it was a petrified horse hoof instead of a dinosaur bone. In 1991 a complete Allosaurus skeleton was discovered. This Allosaurus was named "Big Al". When scientists looked at the skeleton they discovered that "Big Al" was actually an Allosaurus teenager. They also discovered that this young Allosaurus was about 8 meters (26 feet) long! "Big Al" was made famous by a TV programme called The Ballad of Big Al also called Walking with Dinosaurs: Allosaurus. This program showed what Big Al's life could have been like. They are also one of the most common dinosaurs in museums from the Jurassic time period.

What do we need to learn?

 * The colour of their skin.
 * How big their hunting groups were. It isn't even certain that they did hunt in groups, although until recently, most people assumed that they did. They did not hunt in groups or they were rare. Also if one came across another they would fight until they either saw limping or blood. They did not see each other as enemies; it was just natural instinct. Although they hunted dinosaurs that lived in groups they did not or they were like one in a million rare of hunting in groups.
 * How much did they eat each day? They ate about 20 pounds per meal so 60 pounds a day.

Wikijunior Dinosaurukset/Allosaurus Wikijunior Dinosauri/Allosaurus

title: Wikijunior:Dinosaurs/Allosaurus


text:
Wikijunior:Dinosaurs/Apatosaurus

The Apatosaurus, whose name means "deceptive lizard" in Greek, was one of the largest land animals ever. For many years, this dinosaur was sometimes called Brontosaurus.

What did they look like?
The Apatosaurus was one of the largest land creatures that have ever lived. They were 20–27 metres in length, 3–5 metres in height, and weighed an enormous 30–35 tons! This is over 6 times heavier than an elephant!

They walked on four legs with a big muscular body, but a much smaller head attached on a long neck. They held their tail up a little above the ground as they moved. The main purpose of this tail was to make sure that the dinosaur would not fall over due to its heavy long neck. It was also used for defence against predators. Their heads were long and narrow. Strangely, apatosaurus's nostrils were on the top of its head; this is believed to have been so that it could breathe with all but the top of its head underwater, to hide from predators.

What did they eat?
They were herbivores — that is, they ate plants. There are two theories about how they used their necks when eating. Until recently, most scientists thought they used their long necks to reach up into trees to get leaves and branches; but recently, some scientists have suggested they used their long necks instead to feed from the ground. They could not chew; most scientists think they swallowed stones called gastroliths to help grind the food in their stomach! Because there were no broad leafed trees, they ate pine needles and ferns. There also was no grass.

When did they live?
They lived in the late Jurassic Period, about 157–146 million years ago. The Jurassic period was warm and humid and had lots of vegetation.

Where did they live?
When they were first discovered, scientists believed that because of their large size they could not live on land. So they would have to walk in water with their heads sticking out. Now scientists think that this is not true – no bones were found in any ancient watery places. They most likely lived near river banks where they could find both water and trees. They could not live in the forests, because they were simply too big to walk around in a forest!

Their fossils have been found in Colorado, Oklahoma, Utah, and Wyoming, in the USA, North America.

How were they discovered?
Professor Othniel Marsh discovered parts of the first fossils of a young Apatosaurus in 1877. The first Apatosaurus skeletons were found without heads. Because of the confusion with the Brontosaurus, the head of Apatosaurus was not conclusively identified until 1972. By this time many examples of the correct head had been found. Apatosaurus means "deceptive lizard," because its fossils were so similar to those of other sauropods.

What do we need to learn?

 * We need to learn how flexible their neck really was, whether they could raise it up high or whether it could only be raised slightly.
 * Where and how they really lived, all we have now are just some educated guesses.
 * Whether they lived alone or travelled in herds like their close relatives the Diplodocus.
 * How they laid their eggs.

title: Wikijunior:Dinosaurs/Apatosaurus