Oracle 9.2.0.4的一个简单安装脚本(含安装前补丁p3006854)

#! /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"

时间: 2024-08-28 08:14:13

Oracle 9.2.0.4的一个简单安装脚本(含安装前补丁p3006854)的相关文章

【sehll学习】linux运维一个简单shell脚本监控系统内存

学习shell脚本入门后,慢慢要尝试编写一些脚本练练手,在这先简单的学习写个系统内存的监控. 1.首先先要确定一下截取一下需要关注的内存使用值,可使用free 命令来操作 free -m 显示 一般在监控内存是我们都是截取 第三行(-/+ buffers/cache)的值.确定后可以使用管道线和grep命令来获取这个的值. free -m | grep - | awk  '{print $4}' 获取到他的值为  858 当中 grep -  就是匹配一下要选取的内容,不太熟悉的可以学习一下gr

MacOS终端下执行一个简单Java脚本

MacOS下安装完Java JVM,配置好环境变量后可以在终端执行一个简单的java脚本程序,其中先使用javac编译器将.java文件编译成字节码文件,然后通过java解释器执行字节码文件. 编写一个简单的脚本 1 class Demo{ 2 3 public static void main(String[] args){ 4 System.out.println("hello world!"); 5 } 6 7 } 编写完后保存为.java格式,这里使用终端查看: 打开终端编译

Oracle 11.2.0.1在xp上的静默(slient)安装

环境: XP SP3+Oracle 11.2.0.1 安装Oracle软件及数据库 先找到响应文件模版(一般在安装包的..\database\response下),进行编辑. 先复制一份原模版文件: E:\cry\SOFT\database>copy response/db_install.rsp db_install_cry.rsp response\dbca.rsp response\db_install.rsp response\db_install_cry.rsp response\ne

ORACLE 11.2.0.4 180116 PSU HP 安腾 11.31 安装

27282436 = 27107360 (PSU) + 26925532 (OJVM) 0.为了避免安装补丁运行数据字典脚本时与系统后台作业冲突,查看AutoTask,如果有Enabled的,先Disable,打完补丁后再Enable. su - oracle sqlplus "/as sysdba" set lin 180 pages 10000 COL CLIENT_NAME FORMAT A40 COL CONSUMER_GROUP FORMAT A30 COL WINDOW_G

记录工作用到的一个简单js脚本

测试极光发送通知接口及客户端处理情况,需在极光后台增加通知数据.由于需要多个输入框输入数据,浏览器关闭后又需重新输入数据,故作此简单js脚本,在浏览器开发者模式下执行,便自动向浏览器输入框输入数据. document.getElementsByTagName("textarea")[0].value="专家说文章测试切入横幅跳转测试切入横幅跳转" document.getElementsByClassName("input-global-blue-shad

Oracle 11.2.0.1的一个Bug,客户端报ORA-03113: 通信通道的文件结尾

半小时前,一个项目反馈应用系统部分功能报错,ORA-03113: 通信通道的文件结尾.好像是个常见的错误. 异常信息:ORA-03113: 通信通道的文件结尾 进程 ID: 2392 会话 ID: 298 序列号: 46826 检查了归档日志未发现异常,检查Oracle日志时发现对应ORA-03137错误,经查阅网上资料,属于Oracle的bug,God,竟然隐蔽在ORA-03113后面. Errors in file d:\app\administrator\diag\rdbms\fssc\f

Swift3.0学习实践-一个简单的画板(七色轨迹、可撤销、可清除、带橡皮擦)

写着玩儿的小程序,继续学习Swift.运行效果+代码+知识点总结 运行效果:             代码: Canvas类:画布,画图板状态管理.交互.处理手势 [plain] view plain copy class Canvas:UIView{ //负责线条的生成.操作与管理 let pathCreator:PathCreator //是否处于擦除状态 var isInErasering:Bool //橡皮擦视图 let eraserView:UIView override init(f

cocos2d-x 3.0来做一个简单的游戏教程 win32平台 vs2012 详解献给刚開始学习的人们!

原代码来自于网络,因为cocos2d-x 3.0的资料,的确不多,与曾经版本号的接口非常难对上, 所以网上非常多样例都无法调试,对于新学习cocos2d-x 的同学,难度添加了,所以出一个超具体的样例给大家. 源代码地址:http://download.csdn.net/detail/adady/7293629 #include "HelloWorldScene.h" #include "SimpleAudioEngine.h" USING_NS_CC; Scene

python学习之路-第三天-一个简单的脚本

现在有一个需求:把某个目录下的文件备份到指定到另外一个目录下,而且压缩后文件为zip文件 # -*- coding:utf-8 -*- #! /usr/bin/python # Filename:backup_v1.py import os import time source = [r'H:\StudyLib\lib'] # 源文件目录,是个列表,可以放入多个目录 target_dir = 'I:\\backpacks\\' # 目标目录 target = target_dir + time.