设为首页 收藏本站
查看: 686|回复: 0

[经验分享] Oracle 9.2.0.4的一个简单安装脚本(含安装前补丁p3006854)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-8 08:57:50 | 显示全部楼层 |阅读模式
#! /bin/bash
echo "#########oracle9R204 的一个简单的安装脚本 ##############################"
#
# 为系统添加oracle的用户和用户组
#
groupadd dba
groupadd oinstall
useradd -c "Oracle software owner" -g oinstall -G dba oracle
passwd oracle
# 创建oracle 的安装目录

mkdir /oracle/oracle
mkdir /oracle/oracle/product
mkdir /oracle/oracle/product/9.2.0
chown -R oracle.oinstall /oracle/oracle
                                            
mkdir /var/opt/oracle
chown oracle.dba /var/opt/oracle
chmod 755 /var/opt/oracle
#更改gcc,g++版本
cd /usr/bin
mv gcc gcc323
mv g++ g++323
ln -s gcc296 gcc
ln -s g++296 g++
#设置Oracle配置文件
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
#修改配置/etc/sysctl.conf
echo "#################################################### " >> /etc/sysctl.conf
echo "kernel.shmall = 2097152" >> /etc/sysctl.conf
# shmmax内核参数定义单个共享内存段的最大值,如果该参数设置小于Oracle SGA设置,
# 那么SGA就会被分配多个共享内存段。这在繁忙的系统中可能成为性能负担,带来系统问题。
# 如果没有修改shmmax参数,Oracle在启动过程中就可能会报出以下错误:
##############################################################################
#      Starting ORACLE instance (normal)
#      Thu Nov 17 09:27:29 2005
#      WARNING: EINVAL creating segment of size 0x0000000033400000
#      fix shm parameters in /etc/system or equivalent
##############################################################################
#这里我们设为 2G
echo "kernel.shmmax = 2147483648" >> /etc/sysctl.conf
#单个共享内存段的最小值
echo "kernel.shmmni=4096" >> /etc/sysctl.conf
# kernel.sem中的四个值分别 是指
# 1:SEMMSL(每个用户拥有信号量最大数量),
# 2:SEMMNS(系统信号量最大数量),
# 3:SEMOPM(每次semop系统调用操作数),
# 4:SEMMNI(系统信号量集最小数量)
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
#系统允许同时打开的最大文件数为65536
echo "fs.file-max = 65536" >> /etc/sysctl.conf
# 本地主机在ipv4下可用端口范围
echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf
# 使/etc/sysctl.conf 文件生效
/sbin/sysctl -p

#
#通过编辑 /home/oracle/.bash_profile文件来设置用户环境变量
echo "############ everoment for oracle################" >> /home/oracle/.bash_profile
echo "export LD_ASSUME_KERNEL=2.4.1" >> /home/oracle/.bash_profile
echo "export THREADS_FLAG=native" >> /home/oracle/.bash_profile
echo "export ORACLE_BASE=/oracle/oracle" >> /home/oracle/.bash_profile
echo "export ORACLE_HOME=/oracle/oracle/product/9.2.0" >> /home/oracle/.bash_profile
echo "export ORACLE_SID=orcl" >> /home/oracle/.bash_profile
echo "export ORACLE_TERM=xterm" >> /home/oracle/.bash_profile
echo "export ORACLE_OWNER=oracle" >> /home/oracle/.bash_profile
echo "export NLS_LANG=AMERICAN;" >> /home/oracle/.bash_profile
echo 'export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data' >> /home/oracle/.bash_profile
echo 'LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib' >> /home/oracle/.bash_profile
echo 'LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib' >> /home/oracle/.bash_profile
echo "export LD_LIBRARY_PATH" >> /home/oracle/.bash_profile
echo 'export PATH=$PATH:$ORACLE_HOME/bin' >> /home/oracle/.bash_profile
#打安装前所需的p3006854补丁
USER=`whoami`
if [ $USER != root ]; then
echo "Must be root to run this script, please login as root and re-try"
exit
fi
# see if libcwait.so is already being loaded
if [ -f "/etc/ld.so.preload" ] && [ -n "`grep libcwait /etc/ld.so.preload`" ]; then
echo "Patch has already been applied"
exit
else
echo "Applying patch..."
fi
cat << EOF |
#include <errno.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/wait.h>
pid_t
__libc_wait (int *status)
{
int res;
asm volatile ("pushl %%ebx\n\t"
                 "movl %2, %%ebx\n\t"
                 "movl %1, %%eax\n\t"
                 "int \$0x80\n\t"
                 "popl %%ebx"
                 : "=a" (res)
                 : "i" (__NR_wait4), "0" (WAIT_ANY), "c" (status), "d" (0), "S" (0));
return res;
}
EOF
gcc -O2 -shared -fpic -xc - -o /etc/libcwait.so
echo "/etc/libcwait.so" >>/etc/ld.so.preload
echo "Patch successfully applied"

echo "####################################################################"
echo "设置结束,你可以切换到oracle用户,进入oracle的解压目录运行 oracle的 runinstaller"


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-64828-1-1.html 上篇帖子: oracle 启动归档模式 下篇帖子: oracle 9/10 下载地址列表 Oracle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表