Installing Oracle 12c Release 2 Database on a Proxmox Container
Obviously nobody could beat Tim to getting the comprehensive installation instructions out first, but here are my notes for installing it on a proxmox container environment which is what I use as my research platform. Some of the calls used are from or based on Tim’s prior 12cR1 installation article – thanks Tim.
NOTE – this post is just a guide and is based on my environment – you will likely need to make changes to suit your own environment.
Environment
root@billy:~# pveversion pve-manager/4.4-12/e71b7a74 (running kernel: 4.4.40-1-pve)
Host Preparation
Some of the activities required involve changing linux parameters but these can’t be applied inside a proxmox container – you’ll see errors like these if you try:
[root@db12cr2 ~]# sysctl -p sysctl: setting key "fs.file-max": Read-only file system
Instead you have to do these at the host level – and only if you think they are relevant and that those settings wouldn’t upset all of your other environments running on that host. I haven’t tried but you could potentially just tell the GUI installer to ignore the warnings relating to these entries and not make these changes at all especially if you’re only using it for small scale research purposes.
As root on the proxmox host, run the following:
echo "fs.file-max = 6815744" >>/etc/sysctl.d/98-oracle.conf echo "kernel.panic_on_oops = 1" >>/etc/sysctl.d/98-oracle.conf echo "net.ipv4.conf.default.rp_filter = 2" >>/etc/sysctl.d/98-oracle.conf /sbin/sysctl -p
Create And Prepare The Container
I use Centos 7 as the template for most of my activities and these notes are based around that.
pct create 130 u01:vztmpl/centos-7-default_20160205_amd64.tar.xz -rootfs 60 -hostname db12cr2 -memory 10240 -nameserver 192.168.1.25 -searchdomain oramoss.com -net0 name=eth0,bridge=vmbr0,gw=192.168.1.1,ip=192.168.1.130/24 -swap 10240 -cpulimit 4 -storage local
You’ll have your own way of getting the installation files to be available to the container but I do it by adding a mount point so I can access the area where all my software is:
vi /etc/pve/nodes/${HOSTNAME}/lxc/130.conf
…and add this:
mp0: /mnt/backups/common_share,mp=/mnt/common_share
Start And Enter The Container
pct start 130 pct enter 130
Install Additional Packages
I’m going to use the Oracle Preinstall package but there are still a few things to add:
yum install gcc-c++ wget openssh-server -y
gcc-c++ is not necessary according to the 12cR2 installation manuals, but the GUI installer complains during the prerequisite checks if it’s not there.
wget is needed to download some files and it’s not on the Centos 7 template.
openssh server is to allow me to login remotely via SSH for the GUI install later.
Get OpenSSH To Autostart
systemctl enable sshd.service systemctl start sshd.service systemctl status sshd.service
Install Oracle Preinstall Package
#Get the Oracle Linux 7 repo - this works for Centos 7. cd /etc/yum.repos.d/ wget http://public-yum.oracle.com/public-yum-ol7.repo
#The following stops GPG Key errors:
wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle #Update everything yum update -y #Install the preinstall package yum install oracle-database-server-12cR2-preinstall -y
Configure System Limits
echo "oracle soft nofile 1024" >>/etc/security/limits.d/oracle-rdbms-server-12cR2-preinstall.conf
echo "oracle hard nofile 65536" >>/etc/security/limits.d/oracle-rdbms-server-12cR2-preinstall.conf
echo "oracle soft nproc 16384" >>/etc/security/limits.d/oracle-rdbms-server-12cR2-preinstall.conf
echo "oracle hard nproc 16384" >>/etc/security/limits.d/oracle-rdbms-server-12cR2-preinstall.conf
echo "oracle soft stack 10240" >>/etc/security/limits.d/oracle-rdbms-server-12cR2-preinstall.conf
Here follows information on some natural techniques that may help tadalafil cialis india you treating. Measuring life satisfaction isn't just a way to see how happy people are with their lives, it's also a way of soft cialis pills determining how unhappy they are. tadalafil cost Good heart health efficaciously keeps sexual troubles at bay. So, it's one thing to allow ourselves to be click here now viagra samples taken advantage of. echo "oracle hard stack 32768" >>/etc/security/limits.d/oracle-rdbms-server-12cR2-preinstall.conf
echo "oracle hard memlock 134217728" >>/etc/security/limits.d/oracle-rdbms-server-12cR2-preinstall.conf
echo "oracle soft memlock 134217728" >>/etc/security/limits.d/oracle-rdbms-server-12cR2-preinstall.conf
Change Password For “oracle” User
passwd oracle <<set a password>>
Create Oracle Home Directory
mkdir -p /u01/app/oracle/product/12.2.0.1/db_1 chown -R oracle:oinstall /u01 chmod -R 775 /u01
Modify The Profile Of “oracle” User
echo "# Oracle Settings" >>/home/oracle/.bash_profile echo "export TMP=/tmp" >>/home/oracle/.bash_profile echo "export TMPDIR=\$TMP" >>/home/oracle/.bash_profile echo "export ORACLE_HOSTNAME=db12cr2.oramoss.com" >>/home/oracle/.bash_profile echo "export ORACLE_UNQNAME=cdb1" >>/home/oracle/.bash_profile echo "export ORACLE_BASE=/u01/app/oracle" >>/home/oracle/.bash_profile echo "export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0.1/db_1" >>/home/oracle/.bash_profile echo "export ORACLE_SID=cdb1" >>/home/oracle/.bash_profile echo "export PATH=/usr/sbin:\$PATH" >>/home/oracle/.bash_profile echo "export PATH=\$ORACLE_HOME/bin:\$PATH" >>/home/oracle/.bash_profile echo "export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib" >>/home/oracle/.bash_profile echo "export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib" >>/home/oracle/.bash_profile
Create Software Directory And Copy Files Over
mkdir -p /u01/software cp /mnt/common_share/linuxx64_12201_database.zip /u01/software unzip linuxx64_12201_database.zip rm /u01/software/linuxx64_12201_database.zip
Run The Installer
Log in as the “oracle” user
cd /u01/software/database ./runInstaller
Install the software and a database by running through the GUI screens and following the instructions. The installer complains on the prerequisite checks screen about some of the kernel memory parameters (rmem%, wmem%) which you can ignore.
Configure Auto Start
Follow these instructions from Tim to setup auto start using the runuser method – make sure you change the ORACLE_HOME to be 12.2.0.1 not 12.1.0.2 that is mentioned.
Now reboot the container and it should return with the database automatically started.
Check Oracle Database Auto Starts
[oracle@db12cr2 ~]$ sqlplus /nolog SQL*Plus: Release 12.2.0.1.0 Production on Thu Mar 2 14:16:53 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. SQL> conn sys/Password01 as sysdba Connected. SQL> show sga Total System Global Area 3221225472 bytes Fixed Size 8797928 bytes Variable Size 687866136 bytes Database Buffers 2516582400 bytes Redo Buffers 7979008 bytes SQL>
Conclusion
All pretty painless and relatively quick. I’ll take a dump of the container next in order to use it as a template for building future containers.