Oracle 11g R2静默安装
Oracle 11g R2静默安装
Oracle 11g的静默安装,下面简单的记录一下整个过程:
1、下载:在Oracle官网上下载64位Linux Oracle 11g安装包,系统环境是Redhat5.4
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
2、上传Oracle安装程序:用WinSCP软件将Windows下的Oracle安装程序上传到Linux目录下。
3、Package安装检查:
# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel | grep "not installed"
注意:要下载64位的只有个别的包,比如libaio、unixODBC等,但是我这里竟然对libaio的32和64包都需要,没有还不行,奇了怪了。
4、增加数据库组和用户:
# id oracle (确认oracle用户是否存在)
# /usr/sbin/groupadd oinstall (建立产品清单管理组)
# /usr/sbin/groupadd dba (建立数据库安装组)
# /usr/sbin/groupadd asmadmin (建立ASM管理组)
# /usr/sbin/groupadd asmdba (建立Grid管理组)
# /usr/sbin/useradd -g oinstall -G dba,asmdba oracle -d /home/oracle (oinstall 为主要组,确保/home/oracle原不存在)
# id oracle (记住oracle用户的uid和gid)
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),504(asmdba)
# passwd oracle
5、调整OS内核参数:略
6、修改/etc/security/limits.conf、/etc/pam.d/login、/etc/profile(在修改它的时候注意shell的格式)
7、建立必需目录:
# more /etc/oratab (确认原来是否存在Oracle主目录)
# more /etc/oraInst.loc (确认原来是否存在Oracle产品清单目录)
# mkdir -p /u01/app/oracle/ (Oracle 基础目录, 一般为/mount_point/app/oracle_owner)
# chown -R oracle:oinstall /wangnc/oracle
chown -R oracle:oinstall /u01
chown -R oracle:oinstall /u02
chown -R oracle:oinstall /u03
chown -R oracle:oinstall /u04
# chmod -R 775 /wangnc/oracle
chmod -R 775 /u01
chmod -R 775 /u02
chmod -R 775 /u03
chmod -R 775 /u04
8、设置Oracle用户环境变量:
如果服务器有多网卡, 注意设置ORACLE_HOSTNAME为某网卡IP对应的主机名, 参照/etc/hosts文件.
# su - oracle
$ vi ~/.bash_profile
umask 022
export ORACLE_HOSTNAME=rhel5
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
9、解压缩Oracle文件:
$ cd /wangnc/oracle/11g
$ unzip linux*_11gR2_database_1of2.zip -d /u01 (解压到/u01目录下,可选目录)
$ unzip linux*_11gR2_database_2of2.zip -d /u01
$ cd /u01/database
$ export DISTRIB=`pwd`
在解压后oracle软件的response目录里有各种响应文件的模版.
10、修改响应文件db_install.rsp
#以下参数不要更改
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/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN,zh_TW
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.customComponents=oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
#------------------------
各参数含义如下:
-silent 表示以静默方式安装,不会有任何提示
-force 允许安装到一个非空目录
-noconfig 表示不运行配置助手netca
-responseFile 表示使用哪个响应文件,必需使用绝对路径
oracle.install.responseFileVersion 响应文件模板的版本,该参数不要更改
oracle.install.option 安装选项,本例只安装oracle软件,该参数不要更改
DECLINE_SECURITY_UPDATES 是否需要在线安全更新,设置为false,该参数不要更改
ORACLE_HOSTNAME 安装主机名
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权限的组名
11、开始静默安装:
./runInstaller -silent -force -responseFile /u01/database/response/db_install.rsp
在此期间如果出过无数个问题,反正都是环境不对,有几个是软件包有问题,有一个swap空间太小,反正日志就是了,另外可能会有两个警告,说产品清单目录和基目录位置不对,这个不用管它。
如果顺利的话,不久后能看到下面的提示:
#-------------------------------------------------------------------
...
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
Successfully Setup Software.
#-------------------------------------------------------------------
安装期间查看安装日志信息了解安装进度
$ cd $ORACLE_BASE/oraInventory/logs
$ tail -100f installActions*.log
安装的软件信息会写入inventory.xml文件, 如果需重运行则把该文件的对应安装条目信息删除即可:
$ vim $ORACLE_BASE/oraInventory/ContentsXML/inventory.xml
12、在root账户下运行下面两个脚本:
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
一定要记得运行,不然会出现ORA-09925: Unable to create audit trail file的错误,plsql都启动不了,我当时就遇到了,很郁闷,第二个脚本执行完以后没有什么返回信息,建议去日志里,成功与否里面都说得很清楚。
13、静默配置监听:
通过response文件运行netca,生成sqlnet.ora和listener.ora文件, 位于$ORACLE_HOME/network/admin目录下:
# su - oracle
$ $ORACLE_HOME/bin/netca /silent /responsefile /u01/database/response/netca.rsp
$ ll $ORACLE_HOME/network/admin/*.ora
$ lsnrctl status
执行完后, 监听就已经启动了, 默认端口是1521, 默认是动态监听, 只要实例启动了就会监听到.
(当时因为没配环境变量,监听程序一直启动不起来,郁闷了老半天,低级错误啊。。。。)
13、静默建库:
先配置响应文件:
$ vim /u01/database/response/dbca.rsp
#--------------------------------------------------------------------
#以下参数不要更改
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
#以下参数必须设置
[CREATEDATABASE]
GDBNAME = "ORCL.LK"
TEMPLATENAME = "General_Purpose.dbc"
#以下参数不设置则使用默认值,建议设置
CHARACTERSET = "ZHS16GBK"
TOTALMEMORY = "1024"
#--------------------------------------------------------------------
种子数据库和控制文件位于$ORACLE_HOME/assistants/dbca/templates/下, 即Seed_Database.dfb和 Seed_Database.ctl文件, 实际上建库就是基于通过rman恢复种子数据库和控制文件来实现的.
$ $ORACLE_HOME/bin/dbca -silent -responseFile /u01/database/response/dbca.rsp
Enter SYS user password:
< 输入sys用户密码>
Enter SYSTEM user password:
< 输入system用户密码>
Copying database files
...
37% complete
Creating and starting Oracle instance
...
62% complete
Completing Database Creation
...
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ORCL/ORCL.log" for further details.
各参数含义如下:
-silent 表示以静默方式安装
-responseFile 表示使用哪个响应文件,必需使用绝对路径
RESPONSEFILE_VERSION 响应文件模板的版本,该参数不要更改
OPERATION_TYPE 安装类型,该参数不要更改
GDBNAME 全局数据库名,点号前面默认是db_name,点号后面默认就是db_domain
TEMPLATENAME 建库模板名,参考各模板定义:$ORACLE_HOME/assistants/dbca/templates/*.dbc
CHARACTERSET 字符集,默认是WE8MSWIN1252
TOTALMEMORY 实例内存,默认是服务器物理内存的40%
14、建库后实例检查
$ ps -ef | grep ora_ | grep -v grep | wc -l
$ ps -ef | grep ora_ | grep -v grep
15、在dbs下拷贝一份init.ora到initORCL.ora
16、startup可能会报错说控制文件不对:
SQL> startup
ORACLE instance started.
Total System Global Area 217157632 bytes
Fixed Size 2211928 bytes
Variable Size 159387560 bytes
Database Buffers 50331648 bytes
Redo Buffers 5226496 bytes
ORA-00205: error in identifying control file, check alert log for more info
这个很好办:alter system set control_files='/u01/app/oracle/oradata/ORCL/control01.ctl' scope=spfile;
然后shutdown immediate => startup
如果不出意外,静默安装就算大功告成了。