【oracle】静默安装 oracle 11gr2-阿里云开发者社区

开发者社区> 数据库> 正文

【oracle】静默安装 oracle 11gr2

简介:
【序言】
oracle 提供了静默安装方法在不适用图形界面的情况下安装 oracle 软件 ,创建db,配置netca,快速完成oracle 的部署。 
在以下情形中可以使用静默安装
   a OUI 的 GUI 界面远程交互比较慢 .
   b 数据库服务器无法使用图形界面访问.

   c 批量部署oracle (标准环境统一情况下可以使用oracle 的relink ,这样更加快速).

本文主要讲述基本安装步骤,不涉及oracle 安装完成之后的运维规范: 监控,备份,定时日志清理,基础运维配置。
一 准备工作
1.linux检查安装包是否全


rpm -q --queryformat \"%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" binutils \ 
compat-libstdc++-33 compat-db control-center elfutils-libelf elfutils-libelf-devel gcc \ 
gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ \ 
libstdc++-devel make sysstat unixODBC glibc-headers unixODBC-devel \ 
oracleasm oracleasmlib oracleasm-support \ 
pdksh sysstat xscreensaver | grep not | grep -v grep | awk '{print "yum install -y " $2 }' 

 如果有未安装的rpm ,则需要手动安装。
 注意:其中oracleasm oracleasmlib oracleasm-support可以去oracle官方asm lib网站下载

2.OS参数修改
a 修改/etc/sysctl.conf 文件 添加如下内容:


fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
kernel.shmall = 2097152 
kernel.shmmax = 48719476736 
kernel.shmmni = 4096 
kernel.sem = 250 32000 200 200 
net.ipv4.ip_local_port_range = 9000 65500 
net.core.rmem_default = 262144 
net.core.wmem_default = 262144 
net.core.wmem_max = 1048586 
net.core.rmem_max = 4194304 

执行:


/sbin/sysctl -p 

b  修改/etc/security/limits.conf 添加如下内容: 


oracle soft nproc 2047 
oracle hard nproc 16384 
oracle soft nofile 1024 
oracle hard nofile 65536 

c  修改 /etc/pam.d/login 添加如下内容:


session required pam_limits.so 

d 修改 /etc/profile


if [ $USER = "oracle" ] ; then 
if [ $SHELL = "/bin/ksh" ]; then 
ulimit -p 16384 
ulimit -n 65536 
else 
ulimit -u 16384 -n 65536 
fi 
umask 022 
fi 

3  创建oracle属组并添加oracle 用户


groupadd -g 501 oinstall 
groupadd -g 502 dba 
groupadd -g 601 asmadmin 
groupadd -g 602 asmdba 
groupadd -g 603 asmoper 
useradd -u 1101 -g oinstall -G dba  oracle

创建oracle软件安装目录


mkdir -p /opt/app/oracle 
chown -R oracle:oinstall /opt/app/oracle 
chmod -R 775 /opt 

4 Oracle环境变量
---oracle .bash_profile 


# .bash_profile 
# Get the aliases and functions 
if [ -f ~/.bashrc ]; then 
. ~/.bashrc 
fi 
# User specific environment and startup programs 
PATH=$PATH:$HOME/bin:/opt/rac/oracle/opatch/OPatch 
export PATH 
umask 022 
export ORACLE_BASE=/opt/app/oracle 
export ORACLE_HOME=$ORACLE_BASE/11.2.0/product/db 
export ORACLE_SID=orcl 
export TNS_ADMIN=$ORACLE_HOME/network/admin 
export ORA_NLS10=$ORACLE_HOME/nls/data 
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 
export PS1=$LOGNAME@`hostname`:'$PWD>' 
export SQLPATH=$ORACLE_HOME/sqlplus/admin:/home/oracle/admin/sql 
alias ohome="cd $ORACLE_HOME" 
alias tf="tail -f /opt/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log" 
alias sql='sqlplus "/"' 
alias sqln="sqlplus /nolog" 
alias rm='rm -i --' 
ulimit -u 16384 -n 63536 #linux 
esc="033[" 
echo " " 
echo " " 
echo -e "${esc}31;1m******************************************************************${esc}0m" 
echo -e "${esc}31;1m***This is PRODUCT , Please be careful of your operation!***${esc}0m" 
echo -e "${esc}31;1m******************************************************************${esc}0m" 
echo " " 
echo " " 

二   安装
1 此步骤很重要,如果忽略1 ,最终会提示inventory 文件目录非空 导致静默安装失败 文章末尾会加以说明
vim /etc/oraInst.loc


inventory_loc=/u01/app/oraInventory
 inst_group=oinstall 

2 静默安装 11.2.0.1 采用 debug模式安装 ,如果有异常则更容易发现错误原因。


./runInstaller -silent -debug -force -noconfig -IgnoreSysPreReqs \ 
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 \ 
oracle.install.option=INSTALL_DB_SWONLY \ 
DECLINE_SECURITY_UPDATES=true \ 
UNIX_GROUP_NAME=oinstall \ 
INVENTORY_LOCATION=/u01/app/oraInventory \ 
SELECTED_LANGUAGES=en,zh_CN,zh_TW \ 
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db \ 
ORACLE_BASE=/u01/app/oracle \ 
oracle.install.db.InstallEdition=EE \ 
oracle.install.db.isCustomInstall=false \ 
oracle.install.db.DBA_GROUP=dba \ 
oracle.install.db.OPER_GROUP=dba 

安装完成显示如下信息:
oracle 静默安装结果
安装完成之后 系统会提示我们用root用户运行如下两个脚本 。


sh /u01/app/oracle/oraInventory/orainstRoot.sh 
sh /u01/app/oracle/product/11.2.0/db /root.sh 

附上oracle软件静默安装的参数含义如下:
-silent       表示以静默方式安装,不会有任何提示
-force        表示允许安装到一个非空目录
-noconfig     表示不运行配置助手netca
-responseFile 表示使用哪个响应文件,必需使用绝对路径
oracle.install.responseFileVersion  响应文件模板的版本,该参数不要更改
oracle.install.option               安装模式选项,本例只安装oracle软件,该参数不要更改
DECLINE_SECURITY_UPDATES            是否需要在线安全更新,设置为false,该参数不要更改
UNIX_GROUP_NAME oracle              用户用于安装软件的组名
INVENTORY_LOCATION                  oracle 产品清单目录
SELECTED_LANGUAGES                  oracle 运行语言环境,一般包括引文和简繁体中文
ORACLE_HOME                         oracle安装目录
ORACLE_BASE                         oracle基础目录
oracle.install.db.InstallEdition    安装版本类型,一般是企业版
oracle.install.db.isCustomInstall   是否定制安装,默认Partitioning,OLAP,RAT都选上。根据自己的需要选择组件。
oracle.install.db.customComponents  定制安装组件列表:除了以上默认的,可加上Label Security和Database Vault
oracle.install.db.DBA_GROUP         oracle 用户用于授予osdba权限的组名
oracle.install.db.OPER_GROUP        oracle 用户用于授予osoper权限的组名
3 静默安装db 
安装完成oracle软件之后还没创建db,我们可以继续使用静默方式创建数据库。


dbca -silent -responseFile /u01/app/software/database/dbca.rsp 

dbca.rsp 文件内容如下:根据自己的场景进行修改。


[GENERAL] 
RESPONSEFILE_VERSION = "11.2.0" 
OPERATION_TYPE = "createDatabase" 
[CREATEDATABASE] 
GDBNAME = "orcl" 
SID = "orcl" 
TEMPLATENAME = "New_Database.dbt" 
SYSPASSWORD = "xxxxxxx" 
SYSTEMPASSWORD = "xxxxxxx" 
SYSMANPASSWORD = "xxxxxxx" 
DBSNMPPASSWORD = "xxxxxxx" 
DATAFILEDESTINATION ="/u01/app/oracle/oradata" 
STORAGETYPE=FS 
CHARACTERSET = "AL32UTF8" 
DATABASETYPE = "MULTIPURPOSE" 
AUTOMATICMEMORYMANAGEMENT = "FALSE" 
TOTALMEMORY =8192 

静默安装的过程如下:

4 配置网络监听
  这一步我没有使用netca的默认方式,而是直接编辑了$ORACLE_HOME/network/admin/ 下的*.ora 文件。
  根据需求编辑好了之后启动监听。


lsnrctl start 

5 登陆数据库


遇到的问题  
问题一 相信这个问题也是很多人也会遇到


[FATAL] [INS-32035] Unable to create a new central inventory at the specified location. 
CAUSE: The central inventory location provided is not empty. 
ACTION: Please provide another location for the inventory, or clean up the current location. 

解决方法:
使用root vim /etc/oraInst.doc 加入


inventory_loc=/u01/app/oraInventory 
inst_group=oinstall 

问题二 


[WARNING] [INS-32055] The Central Inventory is located in the Oracle base. 
CAUSE: The Central Inventory is located in the Oracle base. 
ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory. 

解决方法:
 如提示所言 Inventory 目录安装在了$ORACLE_BASE 目录下了,所以调整Inventory 目录不在$ORACLE_BASE 目录下,即可解决问题。

oraInventory 存放Oracle软件安装的目录信息,Oralce的安装和升级都需要用到这个目录,删除或丢失oraInventory目录的内容就会导致安装/升级失败。
Oracle官方文档对oraInventory的说明:


All Oracle software installations rely on this directory. 
Ensure that you back it up regularly. 
Do not delete this directory unless you have completely removed 
all Oracle software from the system. 

oraInventory 目录的位置是由oraInst.loc 文件决定的:
/etc/oraInst.loc                (AIX and Linux Platform)
/var/opt/oracle/OraInst.loc (Solaris and HP-UX platform)

四 小结
  说些题外话 因为项目的原因需要安装一套oracle 系统,谷歌,度娘 静默安装 等关键词,大多数文章基本都千篇一律。真不知道写文章的人是否真正安装成功?论坛上说学习称赞的人是否动手验证过?


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章