Difference between revisions of "Oracle 10g VE"
m (Reverted edits by 109.227.76.113 (talk) to last revision by Kir) |
|||
(13 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | This is just a listing of steps taken to create a fully | + | This is just a listing of steps taken to create a fully functional |
+ | Oracle container. | ||
− | + | == Create the container on the [[host system]] == | |
− | vzctl create 1001 --ostemplate centos-4-i386-default | + | vzctl create 1001 --ostemplate centos-4-i386-default |
− | vzctl set 1001 --userpasswd root:password --save | + | vzctl set 1001 --userpasswd root:password --save |
− | vzctl set 1001 --hostname ve-oracle.example.com --save | + | vzctl set 1001 --hostname ve-oracle.example.com --save |
− | vzctl set 1001 --ipadd 192.168.0.62 --save | + | vzctl set 1001 --ipadd 192.168.0.62 --save |
− | + | == Reset resource limits == | |
− | I decided to have max limits to avoid | + | I decided to have max limits to avoid problems during installation. |
− | done and the system left running for some time, these limits | + | Once the installation is |
+ | done and the system left running for some time, these limits should be | ||
+ | adjusted. | ||
− | + | {{Note|setting the UBC limits to "unlimited" value like below can only be done on a trusted single-container machine, and can create problems. For more info about UBC, see [[Resource shortage]] and [[UBC]].}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | {{Inconsistent UBC warning}} | |
− | vzctl | + | vzctl set 1001 --kmemsize unlimited --save |
+ | vzctl set 1001 --lockedpages unlimited --save | ||
+ | vzctl set 1001 --privvmpages unlimited --save | ||
+ | vzctl set 1001 --shmpages unlimited --save | ||
+ | vzctl set 1001 --numproc unlimited --save | ||
+ | vzctl set 1001 --numtcpsock unlimited --save | ||
+ | vzctl set 1001 --numflock unlimited --save | ||
+ | vzctl set 1001 --numpty unlimited --save | ||
+ | vzctl set 1001 --numsiginfo unlimited --save | ||
+ | vzctl set 1001 --tcpsndbuf unlimited --save | ||
+ | vzctl set 1001 --tcprcvbuf unlimited --save | ||
+ | vzctl set 1001 --othersockbuf unlimited --save | ||
+ | vzctl set 1001 --dgramrcvbuf unlimited --save | ||
+ | vzctl set 1001 --numothersock unlimited --save | ||
+ | vzctl set 1001 --dcachesize unlimited --save | ||
+ | vzctl set 1001 --numfile unlimited --save | ||
+ | vzctl set 1001 --numiptent unlimited --save | ||
+ | Or you can set these limits in your <code>/etc/vz/conf/1001.conf</code> file: | ||
− | + | {{Inconsistent UBC warning}} | |
+ | <pre> | ||
+ | # Primary parameters | ||
+ | AVNUMPROC="unlimited" | ||
+ | NUMPROC="unlimited" | ||
+ | NUMTCPSOCK="unlimited" | ||
+ | NUMOTHERSOCK="unlimited" | ||
+ | VMGUARPAGES="unlimited" | ||
− | + | # Secondary parameters | |
− | + | KMEMSIZE="unlimited" | |
+ | TCPSNDBUF="unlimited" | ||
+ | TCPRCVBUF="unlimited" | ||
+ | OTHERSOCKBUF="unlimited" | ||
+ | DGRAMRCVBUF="unlimited" | ||
+ | OOMGUARPAGES="unlimited" | ||
+ | # Auxiliary parameters | ||
+ | LOCKEDPAGES="unlimited" | ||
+ | SHMPAGES="unlimited" | ||
+ | PRIVVMPAGES="unlimited" | ||
+ | NUMFILE="unlimited" | ||
+ | NUMFLOCK="unlimited" | ||
+ | NUMPTY="unlimited" | ||
+ | NUMSIGINFO="unlimited" | ||
+ | DCACHESIZE="unlimited" | ||
− | + | PHYSPAGES="unlimited" | |
+ | NUMIPTENT="unlimited" | ||
+ | </pre> | ||
− | + | == Start the container == | |
− | + | vzctl start 1001 | |
− | |||
− | |||
− | |||
− | |||
− | + | == Update <code>/etc/resolv.conf</code> on the container == | |
+ | Put the following into your container's /etc/resolv.conf: | ||
− | + | search example.com | |
+ | nameserver <ip address of your name server> | ||
− | + | == Install Required Packages == | |
− | |||
− | |||
− | |||
− | + | vzyum 1001 install binutils compat-db gcc gcc-c++ glibc \ | |
+ | glibc-common libstdc++ libstdc++-devel gnome-libs make \ | ||
+ | pdksh sysstat libaio xscreensaver openmotif21 xorg-x11-xfs \ | ||
+ | usbutils urw-fonts shared-mime-info perl-libwww-perl \ | ||
+ | perl-XML-Parser perl-URI perl-HTML-Tagset perl-HTML-Parser \ | ||
+ | patch lvm2 intltool libIDL libart_lgpl libbonobo xterm \ | ||
+ | libcap libcroco libgnomecanvas libexif libgnomecups \ | ||
+ | libgnomeprint22 libsoup libwnck libxklavier | ||
− | + | == Check the following rpms are installed on the container == | |
− | + | vzctl exec 1001 rpm -q binutils gcc gcc-c++ glibc gnome-libs \ | |
+ | libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio | ||
− | + | == Add Oracle User/Group == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | vzctl exec 1001 /usr/sbin/groupadd oinstall | |
+ | vzctl exec 1001 /usr/sbin/groupadd dba | ||
+ | vzctl exec 1001 /usr/sbin/useradd -m -g oinstall -G dba oracle | ||
+ | vzctl exec 1001 id oracle | ||
− | + | == Set Password for the Oracle user == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | vzctl exec 1001 passwd oracle | |
− | / | + | == Create Directories for Oracle Home/Data and the download directory == |
+ | vzctl exec 1001 mkdir /home/oracle/10gR2_db | ||
+ | vzctl exec 1001 mkdir -p /u01/app/oracle/product/10.2.0/db_1 | ||
+ | vzctl exec 1001 mkdir /u01/app/oracle/oradata | ||
+ | vzctl exec 1001 chown -R oracle:oinstall /u01/app/oracle /home/oracle/10gR2_db | ||
+ | vzctl exec 1001 chmod -R 775 /u01/app/oracle /home/oracle/10gR2_db | ||
+ | vzctl exec 1001 ln -s /usr/lib/libstdc++.so.6.0.3 /usr/lib/libstdc++.so.5 | ||
+ | == Put these values in /etc/sysctl.conf on the HN == | ||
− | + | Put these values in /etc/sysctl.conf on the HN: | |
− | |||
− | + | kernel.shmall = 2097152 | |
+ | kernel.shmmax = 536870912 | ||
+ | kernel.shmmni = 4096 | ||
+ | kernel.sem = 250 32000 100 128 | ||
+ | fs.file-max = 65536 | ||
+ | net.ipv4.ip_local_port_range = 1024 65000 | ||
+ | net.core.rmem_default=262144 | ||
+ | net.core.wmem_default=262144 | ||
+ | net.core.rmem_max=262144 | ||
+ | net.core.wmem_max=262144 | ||
− | + | Then execute on the HN the following command: | |
− | + | ||
− | + | /sbin/sysctl -p | |
− | |||
− | + | At this point the container is ready for Oracle installation. | |
+ | We take a backup of the container at this point in case we need to rebuild the | ||
+ | system or do a clean Oracle install. | ||
− | + | == Shutdown the container and take a backup == | |
− | + | vzctl stop 1001 | |
− | + | cd /u01/backups | |
+ | tar czpvf ve-1001-preOracle.tar.gz /vz/private/1001/ /etc/vz/conf/1001.conf | ||
− | + | == Start the container again == | |
− | + | vzctl start 1001 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == Put oracle distro into the container == | |
− | ./runInstaller | + | Copy the downloaded Oracle zip file to the container and change its |
+ | ownership to "oracle" on the container. | ||
+ | |||
+ | cp /u01/software/10201_database_linux32.zip /vz/private/1001/home/oracle/10gR2_db/ | ||
+ | vzctl exec 1001 chown oracle:oinstall /home/oracle/10gR2_db/10201_database_linux32.zip | ||
+ | |||
+ | == Start installation == | ||
+ | |||
+ | Now login as oracle on the ve-1001, and run the following commands: | ||
+ | |||
+ | cd /home/oracle/10gR2_db | ||
+ | unzip 10201_database_linux32.zip | ||
+ | cd database/ | ||
+ | export ORACLE_BASE=/u01/app/oracle | ||
+ | export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 | ||
+ | export DISPLAY=192.168.0.149:0 | ||
+ | |||
+ | Make sure you can run xterm, then: | ||
+ | |||
+ | ./runInstaller | ||
'''When prompted to run scripts as root. Login as root and execute''' | '''When prompted to run scripts as root. Login as root and execute''' | ||
− | export DISPLAY=192.168.0.149:0 | + | export DISPLAY=192.168.0.149:0 |
− | /u01/app/oracle/oraInventory/orainstRoot.sh | + | /u01/app/oracle/oraInventory/orainstRoot.sh |
− | /u01/app/oracle/product/10.2.0/db_1/root.sh | + | /u01/app/oracle/product/10.2.0/db_1/root.sh |
'''Update oracle's profile with the following''' | '''Update oracle's profile with the following''' | ||
− | cd | + | cd |
− | vi /home/oracle/.bashrc | + | vi /home/oracle/.bashrc |
− | export ORACLE_BASE=/u01/app/oracle | + | export ORACLE_BASE=/u01/app/oracle |
− | export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 | + | export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 |
− | export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH | + | export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH |
− | export PATH=$ORACLE_HOME/bin:$PATH | + | export PATH=$ORACLE_HOME/bin:$PATH |
− | export ORACLE_SID=orcl | + | export ORACLE_SID=orcl |
'''Delete installation files (optional)''' | '''Delete installation files (optional)''' | ||
− | cd /home/oracle/10gR2_db | + | cd /home/oracle/10gR2_db |
− | rm -rf database | + | rm -rf database |
− | '''Time to take another backup of the | + | '''Time to take another backup of the container on the [[hardware node]].''' |
− | This backup will allow you to restore the | + | This backup will allow you to restore the container to the point where no |
+ | database has yet been created. | ||
− | vzctl stop 1001 | + | vzctl stop 1001 |
− | cd /u01/backups | + | cd /u01/backups |
− | tar czpvf ve-1001-postOracleSoftware.tar.gz /vz/private/1001/ /etc/vz/conf/1001.conf | + | tar czpvf ve-1001-postOracleSoftware.tar.gz \ |
+ | /vz/private/1001/ /etc/vz/conf/1001.conf | ||
− | Start | + | Start the container |
− | vzctl start 1001 | + | |
+ | vzctl start 1001 | ||
'''Login as oracle and create the database''' | '''Login as oracle and create the database''' | ||
− | export DISPLAY=192.168.0.149:0 | + | export DISPLAY=192.168.0.149:0 |
− | dbca | + | dbca |
'''Create listener''' | '''Create listener''' | ||
− | netca | + | netca |
'''Now take another backup on the HN node''' | '''Now take another backup on the HN node''' | ||
− | vzctl stop 1001 | + | vzctl stop 1001 |
− | cd /u01/backups | + | cd /u01/backups |
− | tar czpvf ve-1001-postOracleDatabase.tar.gz /vz/private/1001/ /etc/vz/conf/1001.conf | + | tar czpvf ve-1001-postOracleDatabase.tar.gz \ |
+ | /vz/private/1001/ /etc/vz/conf/1001.conf | ||
+ | |||
+ | == Oracle Help == | ||
+ | |||
+ | * [http://www.orafaq.com/forum Ask questions on the Oracle Forum] | ||
+ | * [http://www.orawiki.com/ Oracle Wiki] | ||
+ | |||
+ | [[Category:HOWTO]] |
Latest revision as of 19:50, 11 October 2011
This is just a listing of steps taken to create a fully functional Oracle container.
Contents
- 1 Create the container on the host system
- 2 Reset resource limits
- 3 Start the container
- 4 Update /etc/resolv.conf on the container
- 5 Install Required Packages
- 6 Check the following rpms are installed on the container
- 7 Add Oracle User/Group
- 8 Set Password for the Oracle user
- 9 Create Directories for Oracle Home/Data and the download directory
- 10 Put these values in /etc/sysctl.conf on the HN
- 11 Shutdown the container and take a backup
- 12 Start the container again
- 13 Put oracle distro into the container
- 14 Start installation
- 15 Oracle Help
Create the container on the host system[edit]
vzctl create 1001 --ostemplate centos-4-i386-default vzctl set 1001 --userpasswd root:password --save vzctl set 1001 --hostname ve-oracle.example.com --save vzctl set 1001 --ipadd 192.168.0.62 --save
Reset resource limits[edit]
I decided to have max limits to avoid problems during installation. Once the installation is done and the system left running for some time, these limits should be adjusted.
Note: setting the UBC limits to "unlimited" value like below can only be done on a trusted single-container machine, and can create problems. For more info about UBC, see Resource shortage and UBC. |
Warning: The above UBC values might not be consistent; see UBC consistency check. |
vzctl set 1001 --kmemsize unlimited --save vzctl set 1001 --lockedpages unlimited --save vzctl set 1001 --privvmpages unlimited --save vzctl set 1001 --shmpages unlimited --save vzctl set 1001 --numproc unlimited --save vzctl set 1001 --numtcpsock unlimited --save vzctl set 1001 --numflock unlimited --save vzctl set 1001 --numpty unlimited --save vzctl set 1001 --numsiginfo unlimited --save vzctl set 1001 --tcpsndbuf unlimited --save vzctl set 1001 --tcprcvbuf unlimited --save vzctl set 1001 --othersockbuf unlimited --save vzctl set 1001 --dgramrcvbuf unlimited --save vzctl set 1001 --numothersock unlimited --save vzctl set 1001 --dcachesize unlimited --save vzctl set 1001 --numfile unlimited --save vzctl set 1001 --numiptent unlimited --save
Or you can set these limits in your /etc/vz/conf/1001.conf
file:
Warning: The above UBC values might not be consistent; see UBC consistency check. |
# Primary parameters AVNUMPROC="unlimited" NUMPROC="unlimited" NUMTCPSOCK="unlimited" NUMOTHERSOCK="unlimited" VMGUARPAGES="unlimited" # Secondary parameters KMEMSIZE="unlimited" TCPSNDBUF="unlimited" TCPRCVBUF="unlimited" OTHERSOCKBUF="unlimited" DGRAMRCVBUF="unlimited" OOMGUARPAGES="unlimited" # Auxiliary parameters LOCKEDPAGES="unlimited" SHMPAGES="unlimited" PRIVVMPAGES="unlimited" NUMFILE="unlimited" NUMFLOCK="unlimited" NUMPTY="unlimited" NUMSIGINFO="unlimited" DCACHESIZE="unlimited" PHYSPAGES="unlimited" NUMIPTENT="unlimited"
Start the container[edit]
vzctl start 1001
Update /etc/resolv.conf
on the container[edit]
Put the following into your container's /etc/resolv.conf:
search example.com nameserver <ip address of your name server>
Install Required Packages[edit]
vzyum 1001 install binutils compat-db gcc gcc-c++ glibc \ glibc-common libstdc++ libstdc++-devel gnome-libs make \ pdksh sysstat libaio xscreensaver openmotif21 xorg-x11-xfs \ usbutils urw-fonts shared-mime-info perl-libwww-perl \ perl-XML-Parser perl-URI perl-HTML-Tagset perl-HTML-Parser \ patch lvm2 intltool libIDL libart_lgpl libbonobo xterm \ libcap libcroco libgnomecanvas libexif libgnomecups \ libgnomeprint22 libsoup libwnck libxklavier
Check the following rpms are installed on the container[edit]
vzctl exec 1001 rpm -q binutils gcc gcc-c++ glibc gnome-libs \ libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio
Add Oracle User/Group[edit]
vzctl exec 1001 /usr/sbin/groupadd oinstall vzctl exec 1001 /usr/sbin/groupadd dba vzctl exec 1001 /usr/sbin/useradd -m -g oinstall -G dba oracle vzctl exec 1001 id oracle
Set Password for the Oracle user[edit]
vzctl exec 1001 passwd oracle
Create Directories for Oracle Home/Data and the download directory[edit]
vzctl exec 1001 mkdir /home/oracle/10gR2_db vzctl exec 1001 mkdir -p /u01/app/oracle/product/10.2.0/db_1 vzctl exec 1001 mkdir /u01/app/oracle/oradata vzctl exec 1001 chown -R oracle:oinstall /u01/app/oracle /home/oracle/10gR2_db vzctl exec 1001 chmod -R 775 /u01/app/oracle /home/oracle/10gR2_db vzctl exec 1001 ln -s /usr/lib/libstdc++.so.6.0.3 /usr/lib/libstdc++.so.5
Put these values in /etc/sysctl.conf on the HN[edit]
Put these values in /etc/sysctl.conf on the HN:
kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=262144 net.core.wmem_max=262144
Then execute on the HN the following command:
/sbin/sysctl -p
At this point the container is ready for Oracle installation.
We take a backup of the container at this point in case we need to rebuild the
system or do a clean Oracle install.
Shutdown the container and take a backup[edit]
vzctl stop 1001 cd /u01/backups tar czpvf ve-1001-preOracle.tar.gz /vz/private/1001/ /etc/vz/conf/1001.conf
Start the container again[edit]
vzctl start 1001
Put oracle distro into the container[edit]
Copy the downloaded Oracle zip file to the container and change its ownership to "oracle" on the container.
cp /u01/software/10201_database_linux32.zip /vz/private/1001/home/oracle/10gR2_db/ vzctl exec 1001 chown oracle:oinstall /home/oracle/10gR2_db/10201_database_linux32.zip
Start installation[edit]
Now login as oracle on the ve-1001, and run the following commands:
cd /home/oracle/10gR2_db unzip 10201_database_linux32.zip cd database/ export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 export DISPLAY=192.168.0.149:0
Make sure you can run xterm, then:
./runInstaller
When prompted to run scripts as root. Login as root and execute
export DISPLAY=192.168.0.149:0 /u01/app/oracle/oraInventory/orainstRoot.sh /u01/app/oracle/product/10.2.0/db_1/root.sh
Update oracle's profile with the following
cd vi /home/oracle/.bashrc export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH export ORACLE_SID=orcl
Delete installation files (optional)
cd /home/oracle/10gR2_db rm -rf database
Time to take another backup of the container on the hardware node.
This backup will allow you to restore the container to the point where no database has yet been created.
vzctl stop 1001 cd /u01/backups tar czpvf ve-1001-postOracleSoftware.tar.gz \ /vz/private/1001/ /etc/vz/conf/1001.conf
Start the container
vzctl start 1001
Login as oracle and create the database
export DISPLAY=192.168.0.149:0 dbca
Create listener
netca
Now take another backup on the HN node
vzctl stop 1001 cd /u01/backups tar czpvf ve-1001-postOracleDatabase.tar.gz \ /vz/private/1001/ /etc/vz/conf/1001.conf