【序言】
oracle 提供了静默安装方法在不适用图形界面的情况下安装 oracle 软件 ,创建db,配置netca,快速完成oracle 的部署。
在以下情形中可以使用静默安装
a OUI 的 GUI 界面远程交互比较慢 .
b 数据库服务器无法使用图形界面访问.
c 批量部署oracle (标准环境统一情况下可以使用oracle 的relink ,这样更加快速).
本文主要讲述基本安装步骤,不涉及oracle 安装完成之后的运维规范: 监控,备份,定时日志清理,基础运维配置。
一 准备工作
1.linux检查安装包是否全
使用rpm –qa | grep “包名” ------检测包是否存在
·如不存在 使用命令 rpm –ivh “包名”------安装未安装的依赖包
·
在每个节点上做以下配置信息,查看依赖的rpm包是否安装: binutils-2.* compat-libstdc++-33* elfutils-libelf-0.* libaio-0.* libaio-devel-0.* sysstat-9.* glibc-2.* glibc-common-2.* glibc-devel-2.*glibc-headers-2.* ksh-2* make-3.* libgcc-4.* libstdc++-4.* libstdc++-4.*.i686* libstdc++-devel-4.* gcc-4.*x86_64* gcc-c++-4.*x86_64* elfutils-libelf-0*x86_64* elfutils-libelf-devel-0*x86_64* elfutils-libelf-0*i686* elfutils-libelf-devel-0*i686* libtool-ltdl*i686* ncurses*i686* unixODBC*,这里unixODBC,libaio,libaio-devel等还需要安装32位的包
yum install -y binutils* compat* elfutils* libaio* sysstat* glibc* ksh* make* libgcc* libstdc* gcc* libtool* ncurses* readline* unixODBC* smartmontools*
如果安装不上,使用如下命令安装
yum install compat*
还需要安装如下32位包:
cd /mnt/Packages
rpm -ivh unixODBC-2.2.14-12.el6_3.i686.rpm
rpm -ivh unixODBC-devel-2.2.14-12.el6_3.i686.rpm
rpm -ivh libaio-0.3.107-10.el6.i686.rpm
rpm -ivh libaio-devel-0.3.107-10.el6.i686.rpm
rpm -ivh libstdc++-4.4.7-4.el6.i686.rpm
rpm -ivh libgcc-4.4.7-4.el6.i686.rpm
rpm -ivh elfutils-libelf-0.152-1.el6.i686.rpm
rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm
另外还要单独安装pdksh包:
报错 pdksh conflicts with ksh-20100621-12.el6_2.1.x86_64
则还需要先卸载ksh包
rpm -e ksh-20100621-12.el6_2.1.x86_64
卸载了ksh之后就简单咯
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
2.OS参数修改
a 修改/etc/sysctl.conf 文件 添加如下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 42949672960
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 = 1048586
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 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 oinstall
groupadd dba
cd /
mkdir -p /u01/oracle
useradd -g oinstall -G dba -d /home/oracle oracle
passwd oracle ----为Oracle用户设置密码
创建oracle软件安装目录
mkdir -p /u01/oracle
mkdir -p /u01/oraInventory
chown -R oracle:oinstall /u01/oracle
chmod -R 775 /u01
4.Oracle环境变量
export ORACLE_BASE=/u01
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
二 安装
1配置oraInst.loc文件
1 此步骤很重要,如果忽略1 ,最终会提示inventory 文件目录非空 导致静默安装失败 文章末尾会加以说明
vi /etc/oracle/olr.loc
inventory_loc=/u01/oraInventory
inst_group=oinstall
2 静默安装数据库软件
采用 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/oraInventory \
SELECTED_LANGUAGES=en,zh_CN,zh_TW \
ORACLE_HOME=/u01/oracle \
ORACLE_BASE=/u01 \
oracle.install.db.InstallEdition=EE \
oracle.install.db.isCustomInstall=false \
oracle.install.db.DBA_GROUP=dba \
oracle.install.db.OPER_GROUP=dba
开始Oracle在后台静默安装。安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,如果出现[FATAL],则安装程序已经停止了。
安装完成显示如下信息:
sh /u01/oracle/oraInventory/orainstRoot.sh
sh /u01/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/database/dbca.rsp
dbca.rsp 文件内容如下:根据自己的场景进行修改。
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "New_Database.dbt"
SYSPASSWORD = "oraclesys"
SYSTEMPASSWORD = "oraclesys"
SYSMANPASSWORD = "oraclesys"
DBSNMPPASSWORD = "oraclesys"
DATAFILEDESTINATION ="/u01/oracle/oradata"
STORAGETYPE=FS
CHARACTERSET = "AL32UTF8"
DATABASETYPE = "MULTIPURPOSE"
AUTOMATICMEMORYMANAGEMENT = "FALSE"
TOTALMEMORY =8192
静默安装的过程如下:
4配置网络监听
netca -silent -responsefile /u01/database/response/netca.rsp
这块费了很长时间,最后的监听文件listener.ora的内容如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10-0-0-209)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(sid_name = orcl)
(oracle_home = /u01/oracle)
)
)
ADR_BASE_LISTENER = /u01
lsnrctl status 确定监听状态
完毕
5 登陆数据库
三 遇到的问题
问题一 相信这个问题也是很多人也会遇到
1. [FATAL] [INS-32035] Unable to create a new central inventory at the specified location.
2. CAUSE: The central inventory location provided is not empty.
3. ACTION: Please provide another location for the inventory, or clean up the current location.
解决方法:
使用root vim /etc/oracle/olr.loc 加入
1. inventory_loc=/u01/oraInventory
2. inst_group=oinstall
问题二
1. [WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
2. CAUSE: The Central Inventory is located in the Oracle base.
3. 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的说明:
1. All Oracle software installations rely on this directory.
2. Ensure that you back it up regularly.
3. Do not delete this directory unless you have completely removed
4. all Oracle software from the system.
oraInventory 目录的位置是由oraInst.loc 文件决定的:
/etc/oracle/olr.loc (AIX and Linux Platform)
/var/opt/oracle/OraInst.loc (Solaris and HP-UX platform)
四 小结
说些题外话 因为项目的原因需要安装一套oracle 系统,谷歌,度娘 静默安装 等关键词,大多数文章基本都千篇一律。真不知道写文章的人是否真正安装成功?论坛上说学习称赞的人是否动手验证过?
纸上来得终觉浅 ,绝知此事要躬行。
做一个靠谱的人,更要做一个技术上靠谱的dba。
出现错误:[FATAL] PRVF-0002 : Could not retrieve local nodename
在/etc/hosts中加入如下内容:
Ip 主机名
Oracle用户执行dbca命令的时候出现错误:
DISPLAY not set. Please set the DISPLAY and try again
【解决办法】:
切换到oracle用户,执行以下命令:
export DISPLAY=:0.0
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7490392/viewspace-2152561/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7490392/viewspace-2152561/