在无图形桌面的Linux服务器上安装Oracle数据库,并实现自动应答。
利用此机制,结合恰当的Shell脚本可进一步配置Oracle的无人值守批量部署。
##############################################################################
系统环境:
RHEL 6.2 [2.6.32-220.el6.i686]
软件环境:
—— 来自RHEL 5.5光盘的RPM软件包
./Server/pdksh-5.2.14-36.el5.i386.rpm
—— 从下载的Oracle 11g安装包
linux_11gR2_database_1of2.zip
linux_11gR2_database_2of2.zip
—— 来自RHEL 6.2光盘的RPM软件包
包组:Development tools
包:compat-libstdc++-33、elfutils-libelf-devel、libaio-devel、sysstat、unixODBC-devel、……
##############################################################################
一、准备Oracle 11g R2的安装条件
此步骤为安装及运行Oracle 11g的必要条件,与图形化安装并无差异。
详细请参考database/welcome.html页面的Database Quick Installation Guide 。
1. 系统配置要求
1)物理内存1GB以上,交换空间大约为物理内存的2倍。
2)安装目录(/opt/oracle)建议有8GB以上、/tmp目录建议有1GB以上可用空间。
3)提前配置好主机名、IP地址,完成安装以后不要再改主机名。
2. 需要的软件环境
[root@dbserver ~]# yum -y install binutils compat-libstdc++ compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel glibc-headers ksh libaio-devel libstdc++-devel make sysstat unixODBC-devel ……
[root@dbserver ~]# rpm -e ksh //满足兼容要求,改装RHEL5中的pdksh
[root@dbserver ~]# rpm -ivh .../pdksh-5.2.14-36.el5.i386.rpm
3. 内核参数调整(不低于以下值)
[root@dbserver ~]# vi /etc/sysctl.conf
......
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152 //此行默认已有,确认不低于此数即可
kernel.shmmax = 536870912 //此行默认已有,确认不低于此数即可
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
[root@dbserver ~]# sysctl -p
4. 用户环境要求
1)创建相关用户、组账号
[root@dbserver ~]# groupadd oinstall //安装组
[root@dbserver ~]# groupadd dba //管理组
[root@dbserver ~]# useradd -g oinstall -G dba oracle //运行用户
[root@dbserver ~]# passwd oracle
2)调整用户变量
[root@dbserver ~]# vi ~oracle/.bash_profile
......
umask 022
export ORACLE_BASE=/opt/oracle
export ORACLE_SID=orcl //要使用的数据库实例名称
export LANG=en_US.UTF-8 //确定要使用的语言环境
[root@dbserver ~]# vi /etc/profile
……
export PATH=$PATH:/opt/oracle/product/11.2.0/dbhome_1/bin
3)调整会话限制
[root@dbserver ~]# vi /etc/pam.d/login
......
session required pam_limits.so
[root@dbserver ~]# vi /etc/security/limits.conf
oracle soft nproc 8192
oracle hard nproc 16384
oracle soft nofile 32768
oracle hard nofile 65536
5. 安装目录准备
[root@dbserver ~]# mkdir /opt/oracle //创建基本目录
[root@dbserver ~]# chown -R oracle:oinstall /opt/oracle/
[root@dbserver ~]# chmod -R 775 /opt/oracle/
[root@dbserver ~]# vim /etc/oraInst.loc //若应答文件内已配置,此文件貌似可无
inventory_loc=/opt/oracle/oraInventory
inst_group=oinstall
二、准备应答文件
有两种方法:根据rsp模板创建,或者通过runInstaller脚本录制。
1. 方法一:根据rsp模板创建
[root@dbserver ~]# su - oracle
[oracle@dbserver ~]$ cp /var/ftp/pub/database/response/db_install.rsp ./
[oracle@dbserver ~]$ vim db_install.rsp //参考文件内说明修改
[oracle@dbserver ~]$ chmod 640 db_install.rsp //避免文件被非授权访问
2. 方法二:通过runInstaller脚本录制
[root@dbserver ~]# su - oracle
[oracle@dbserver ~]$ cd /var/ftp/pub/database/
[oracle@dbserver ~]$ ./runInstaller //只录制,存为~/db_install.rsp
[oracle@dbserver ~]$ vim db_install.rsp //参考文件内说明修改
[oracle@dbserver ~]$ chmod 640 db_install.rsp //避免文件被非授权访问
3. 应答文件示例
[oracle@dbserver ~]$ vim db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_AND_CONFIG
ORACLE_HOSTNAME=dbserver
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryLimit=503
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.installExampleSchemas=true
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=Oracle11g
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
……
三、执行无图形化安装
1. 安装过程
1)释放压缩包
[oracle@dbserver ~]$ cd /var/ftp/pub/
[oracle@dbserver pub]$ unzip linux_11gR2_database_1of2.zip
[oracle@dbserver pub]$ unzip linux_11gR2_database_2of2.zip
2)执行安装脚本
[oracle@dbserver pub]$ cd /var/ftp/pub/database/
[oracle@dbserver database]$ ./runInstaller -silent -responseFile /home/oracle/db_install.rsp
安装说明:
a. 选项-silent表示静默安装,免安装交互,大部分安装信息也不输出
b. 选项-responseFile指定应答文件,要求用绝对路径
c. 执行./runInstaller -help可以查看安装帮助
d. 若忽略-silent选项,将会允许交互,对于应答文件中未设置的项可以再手工指定
e. 若添加-noconfig选项,可以忽略应答文件中的安装类型,而仅安装数据库软件
2. 安装后设置
[root@dbserver ~]# /opt/oracle/product/11.2.0/dbhome_1/root.sh
四、使用Oracle服务脚本
1. 编写控制脚本
[root@dbserver ~]# vi /etc/init.d/oracle //编写oracle服务控制脚本
#!/bin/bash
#### 2011.10.10 by TsengYia ####
# chkconfig: 35 90 10
# description: Oracle Database Service Daemon.
ORCL_BASE="/opt/oracle"
ORACLE_HOME=$ORCL_BASE/product/11.2.0/dbhome_1
ORACLE_OWNER=oracle
case "$1" in
start)
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start" #//启用监听器
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" #//启用数据库程序
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole" #//启用OEM控制台
;;
stop
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole" #//停止OEM控制台
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" #//停止数据库程序
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop" #//停止监听器
;;
status)
if(pgrep "tnslsnr" && netstat -anpt | grep ":1521") &> /dev/null
then
echo "Oracle 11g Net Listener is running."
else
echo "Oracle 11g Net Listener is not running."
fi
if(netstat -anpt | grep ":1158" && netstat -anpt | grep ":5520") &> /dev/null
then
echo "Oracle 11g Enterprise Manager is running."
else
echo "Oracle 11g Enterprise Manager is not running."
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
[root@dbserver ~]# chmod +x /etc/init.d/oracle
2. 添加为系统服务
[root@dbserver ~]# chkconfig --add oracle
3. 通过脚本控制Oracle服务
[root@dbserver ~]# service oracle status
[root@dbserver ~]# service oracle restart
##############################################################################
阅读(7722) | 评论(0) | 转发(0) |