centos 6.3 oracle 11g,CentOS 6.3 安装/运行 oracle11g Shell 脚本

此脚本将帮助您在安装 Oracle11g 到 CentOS 6.3(i386/x86_64) 系统之前,预设系统内核参数、安装Oracle11g系统所需要Linux系统包。 安装好CentOS 6.3(如服务器只做ORACLE数据库使用,建议以Mini desktop方式安装)后,以root用户登录系统,执行以下命令: #s

此脚本将帮助您在安装 Oracle11g 到 CentOS 6.3(i386/x86_64) 系统之前,预设系统内核参数、安装Oracle11g系统所需要Linux系统包。

安装好CentOS 6.3(如服务器只做ORACLE数据库使用,建议以Mini desktop方式安装)后,以root用户登录系统,执行以下命令:

#sh Oracle11gPreInstaller.sh

按照脚本提示一步步完成安装前的预设工作,执行完后重新启动系统,以非root用户(脚本会提示你创建安装ORACLE11g所需的用户名)登录系统,转至ORACLE11g安装文件所在的目录,执行一下命令:

$./runInstaller -jreLoc /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre

之所以加上 jreLoc 参数,是因为ORACLE默认安装时用自带的jre会出现中文乱码,所以这里用系统的jre,保证安装界面为中文显示。32位系统经测试安装ORACLE11g时,会提示缺少 pdksh-5.2.14 这个包,直接忽略(系统已经安装了ksh-xxx 包)就可以正常安装,64位系统也会提示缺少大概7、8个包的样子,也直接忽略(这个是因为ORACLE11g 检查包的时候带上了版本号,而我们提前安装的包的版本号比它检查的要新)就可以。

安装完成后,默认防火墙只允许22端口(ssh),所以还需用 gedit 打开 /etc/sysconfig/iptables ,找到

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 这行,在其后添加:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1158 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 5560 -j ACCEPT

这样外界就可以访问 ORACLE11g 相关服务了,如果需要开机自动登录、自动运行ORACLE相关服务,请以root用户运行一次以下脚本(再次启动服务器时ORACLE将自动运行):

#sh Oracle11gAutoStart.sh

#!/bin/bash

# Script Name: Oracle11gPreinstaller.sh

# Description: prepare works before install oracle 11g on CentOS 6.3(i386/x86_64)

# Author: xie tanghua - www.thxie.cn

# Create Date: 2012-09/05

MemTotal=$(($(grep MemTotal /proc/meminfo | sed 's/\w*:\s*\([0-9]*\).*/\1/')/1024))

SwapTotal=$(($(grep SwapTotal /proc/meminfo | sed 's/\w*:\s*\([0-9]*\).*/\1/')/1024))

ReqSwap=$((16*1024)) #16G

vshmmax=$(($MemTotal*1024*1024/2))

TmpSpace=$(df -k /tmp | grep -v 可用 | awk '{print int($4)}')

DiscSpace=$(df -k / | grep -v 可用 | awk '{print int($4)}')

euname=$(awk -F: '{print $1}' /etc/passwd)

uexists=n

f=4 #默认内核参数放大4倍

function pinfo(){

if [ $1 -ge $2 ]; then

echo -e "\e[1;32m[ OKay ]\e[0m"

else

echo -e "\e[1;31m[failed]\e[0m"

echo "----------------------------------------"

printf "%-20s %-20s\n" "$3" "$4"

printf "%-20s %-20s\n" $1 $5

echo "----------------------------------------"

fi

}

function yumInstall(){

if [ "$1" = "localInstall" ]; then

yum --disablerepo=\* --enablerepo=c6-media -y install binutils-* compat-libstdc++-33-* elfutils-libelf-* elfutils-libelf-devel-* elfutils-libelf-devel-static-* gcc-* gcc-c++-* glibc-* glibc-common-* glibc-devel-* glibc-headers-* kernel-headers-* ksh-* libaio-* libaio-devel-* libgcc-* libgomp-* libstdc++-* libstdc++-devel-* make-* numactl-devel-* sysstat-* unixODBC-*

else

yum -y install binutils-* compat-libstdc++-33-* elfutils-libelf-* elfutils-libelf-devel-* elfutils-libelf-devel-static-* gcc-* gcc-c++-* glibc-* glibc-common-* glibc-devel-* glibc-headers-* kernel-headers-* ksh-* libaio-* libaio-devel-* libgcc-* libgomp-* libstdc++-* libstdc++-devel-* make-* numactl-devel-* sysstat-* unixODBC-*

fi

}

echo -n "Checking Memeory Requirements:"

pinfo $MemTotal 1024 "Real Memory(MB)" "Required Memory(MB)" 1024+

# Checking Swap Space Requirements

if [ $MemTotal -lt $ReqSwap ]; then

let ReqSwap=$MemTotal*2

fi

echo -n "Checking Swap Space Requirements:"

pinfo $SwapTotal $ReqSwap "Real Swap Space(MB)" "Required Swap Space(MB)" $ReqSwap

echo -n "Checking /tmp Space Requirements:"

pinfo $TmpSpace 1048576 "Real /tmp Space(MB)" "Required /tmp Space(MB)" 1024+

echo -n "Checking disc available Space Requirements:"

pinfo $DiscSpace 6291456 "Real Disc Space(MB)" "Required Disc Space(MB)" 6144+

echo "Checking Packages Requirements:"

echo "----------------------------------------"

rpm -q binutils-* compat-libstdc++-33-* elfutils-libelf-* elfutils-libelf-devel-* elfutils-libelf-devel-static-* gcc-* gcc-c++-* glibc-* glibc-common-* glibc-devel-* glibc-headers-* kernel-headers-* ksh-* libaio-* libaio-devel-* libgcc-* libgomp-* libstdc++-* libstdc++-devel-* make-* numactl-devel-* sysstat-* unixODBC-* unixODBC-devel-* | sed 's/\(package .* is not installed\)/[\1]/'

echo "----------------------------------------"

echo -e "\e[1;31m"

echo "Please select install mode:"

echo "1:Install from cd/dvd;"

echo "2:Install from the path which include centos media(xxx.iso);"

echo "3:Install from network;"

read im

echo -e "\e[0m"

yum clean all

case $im in

1) typeset -u sf # convert lower to upper

read -p "Please insert CentOS DVD and input 'ok'(case-insensitive).If you want install Packages directly from network repository then press enter:" sf

if [ $sf = OK ]; then

echo -e "\e[1;32mStarting install/update required Packages from local DVDs:\e[0m"

sed -i "s/^\s*\(file:\/\/\/\w*\/\w*\/\)//g" /etc/yum.repos.d/CentOS-Media.repo

[[ -d $(grep /dev/sr0 /proc/mounts | sed "s/\/dev\/sr0 \(\/media\/\w*\).*/\1/") ]] && umount /media/*

[[ ! -d /media/CentOS ]] && mkdir /media/CentOS

mount -o ro /dev/cdrom /media/CentOS

yumInstall "localInstall"

else

echo -e "\e[1;32mStarting install/update required Packages from network repository:\e[0m"

yumInstall

fi

;;

2) sed -i "s/^\s*\(file:\/\/\/\w*\/\w*\/\)//g" /etc/yum.repos.d/CentOS-Media.repo

[[ -d $(grep /dev/sr0 /proc/mounts | sed "s/\/dev\/sr0 \(\/media\/\w*\).*/\1/") ]] && umount /media/*

[[ ! -d /media/CentOS ]] && mkdir /media/CentOS

read -p "Please input CentOS media(xxx.iso) path:" mp

mount -o loop $mp /media/CentOS

yumInstall "localInstall"

;;

3) echo -e "\e[1;32mStarting install/update required Packages from network repository:\e[0m"

yumInstall

;;

esac

echo "Creating Required Operating System Groups and Users:"

/usr/sbin/groupadd oinstall

/usr/sbin/groupadd dba

echo "The Oracle Inventory group and OSDBA group created successful!"

read -p "Please input the oracle username that you want to create/use:" oname

for i in $euname

do

if [ $oname = $i ]; then

uexists=y

break

fi

done

if [ $uexists = y ]; then

/usr/sbin/usermod -g oinstall -G dba $oname

else

/usr/sbin/useradd -g oinstall -G dba $oname

fi

read -p "Please input y to modify the preuser password,input n is implied password is not changed." a

if [ $a = y ]; then

passwd $oname

fi

cat >>/etc/sysctl.conf<

kernel.shmmni = $(($f*4096))

kernel.sem = $(($f*250)) $(($f*32000)) $(($f*100)) $(($f*128))

fs.aio-max-nr = 1048576

fs.file-max = $(($f*6815744))

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = $(($f*262144))

net.core.rmem_max = $(($f*4194304))

net.core.wmem_default = $(($f*262144))

net.core.wmem_max = $(($f*1048576))

EOF

[ $vshmmax -ge 4294967295 ] && let vshmmax=4294967295

sed -i "s/\(kernel\.shmmax = \)\([0-9]*\)/\1$vshmmax/" /etc/sysctl.conf

/sbin/sysctl -p >/dev/null

cat >>/etc/security/limits.conf<

$oname soft nproc 2048

$oname hard nproc 16384

$oname soft nofile 1024

$oname hard nofile 65536

$oname soft stack 10240

EOF

read -p "Please input the Oracle installation path:" opath

[ -d $opath ] || mkdir -p $opath

chown -R $oname:oinstall $opath

chmod -R 775 $opath

read -p "Please input oracle sid:" sid

# su - $oname

# . ./.bash_profile

cat >>/home/$oname/.bash_profile<

ORACLE_BASE=$opath

ORACLE_SID=$sid

TMP=/tmp

TMPDIR=/tmp

NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'

export ORACLE_BASE ORACLE_SID TMP TMPDIR NLS_DATE_FORMAT

umask 022

EOF

cat >>/etc/profile<

ORACLE_OWNER=$oname

export ORACLE_OWNER

EOF

echo "Please restart server, login as $oname and start install Oracle."

#!/bin/bash

# Script Name: Oracle11gAutoStart.sh

# Description: AutoStart oracle 11g on CentOS 6.3(i386/x86_64)

# Author: xie tanghua - www.thxie.cn

# Create Date: 2012-09/05

ORACLE_HOME=$(grep dbhome /etc/oratab | awk -F: '{print $2}')

echo -n "Change /etc/oratab settings:"

sed -i "s/\(.*\):\(N\)/\1:Y/" /etc/oratab

if [ $? -eq 0 ] ; then

echo -e "\e[1;32m[ OKay ]\e[0m"

else

echo -e "\e[1;31m[failed]\e[0m"

fi

cat >>/etc/profile<

ORACLE_HOME=$ORACLE_HOME

export ORACLE_HOME

EOF

# auto login

cat >/etc/gdm/custom.conf<

# GDM configuration storage

[daemon]

AutomaticLoginEnable=true

AutomaticLogin=$ORACLE_OWNER

TimedLoginEnable=true

TimedLogin=$ORACLE_OWNER

TimedLoginDelay=10

[security]

AllowRoot=false

[xdmcp]

[greeter]

[chooser]

[debug]

EOF

# auto start oracle 11g

cat >>/home/$ORACLE_OWNER/.bash_profile<

$ORACLE_HOME/bin/dbstart $ORACLE_HOME

$ORACLE_HOME/bin/emctl start dbconsole

EOF

echo "All jobs have done,please restart server."

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值