Oracle11gR2 for Linux6.4 静默安装


1、安装准备

#######################################

主机:window7,64位

数据库版本:Oracle Database 11.2.0.1 ,将装在虚拟主机中

虚拟主机:RHEL6.4 Server,32位(镜像文件:rhel-server-6.4-i386-dvd.iso,

vmware虚拟机,操作系统仅安装了基本服务,简体中文,2G内存,20磁盘空间)。

所有操作无需使用图形界面. 静默安装能减少安装出错的可能性, 也能大大加快安装速度。

虚拟主机的基本设置

#hostname redhata

#vi /etc/hosts

192.168.1.200 redhata

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

###########################

#service iptables stop  #关闭防火墙 也可以设置开机不启动chkconfig --level 2345 iptables off

#setenforce 0           #关闭selinux,也可以在/etc/sysconfig/selinux设置

########################################

制作yum源(Redhat6.4)(将rhel-server-6.4-i386-dvd.iso上传至/usr/local/)

    1、mkdir -p /mnt/cdrom

    2、mount -o loop /usr/local/rhel-server-6.4-i386-dvd.iso  /mnt/cdrom/(或者将镜像光盘挂载上去,通过df  -m 找到挂载的光盘如/dev/sr1,然后执行mount -o loop /dev/sr1  /mnt/cdrom)

    3、cd /etc/yum.repos.d

    4、mkdir -p bak

    5、mv *.repo bak/

6、vi /etc/yum.repos.d/redhat.repo

(将

[RHEL]

name=RHEL6.4

baseurl=file:///mnt/cdrom

gpgcheck=0

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

enabled=1

复制进去,保存退出)

    7、yum clean all

    8、yum update

################################################

注:

# 后跟命令表示以操作系统下root用户操作; 

$ 后跟命令表示以操作系统下oracle用户操作; 

############################################### 

2、安装过程

2.1 上传数据库文件

 

假如放在/tmp/目录下.

可通过SecureCRT工具sftp上传数据库安装文件.

解压Oracle安装文件

# cd /tmp

# unzip linux*_11gR2_database_1of2.zip 

# unzip linux*_11gR2_database_2of2.zip

  

2.2 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 \

kernel-headers \

pdksh \

sysstat \

unixODBC \

unixODBC-devel | grep "not installed"

******************************

执行上述命令后发现缺少以下安装包

cd /mnt/cdrom/  #此为镜像文件挂载点

package compat-libstdc++-33 is not installed

package elfutils-libelf-devel is not installed

package gcc is not installed

package gcc-c++ is not installed

package glibc-devel is not installed

package glibc-headers is not installed

package libaio-devel is not installed

package libstdc++-devel is not installed

package kernel-headers  is not installed

package pdksh is not installed

package unixODBC is not installed

package unixODBC-devel is not installed 

##################################

安装以上缺少包

rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm

rpm -ivh elfutils-libelf-devel-0.152-1.el6.i686.rpm 

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 /tmp/pdksh-5.2.14-1.i386.rpm

rpm -q libstdc++-devel-4.4.7-3.el6.i686.rpm 

rpm -ivh libaio-devel-0.3.107-10.el6.i686.rpm

rpm -ivh kernel-headers-2.6.32-358.el6.i686.rpm 

rpm -ivh glibc-headers-2.12-1.107.el6.i686.rpm 

rpm -ivh glibc-devel-2.12-1.107.el6.i686.rpm 

yum install gcc* -y #由于安装gcc、gcc-c++存在依赖关系,所以采用yum方式安装。

安装后可以再次检查一次,查看有没有全部安装成功。

 

 

2.3 增加数据库组和用户

 

# 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原不存在)

# passwd oracle


2.4 调整OS内核参数

 

设置原则:

kernel.shmmax 为 4GB-1byte或一半的物理内存, 哪个值更低用哪个; 

fs.file-max 为512 * PROCESSES.

 

# vi /etc/sysctl.conf (增加或修改以下参数, 参考值为最小需求, kernel.shmmax默认即可无需设置 )

#------------------------------------------

fs.aio-max-nr = 1048576 #增加项

fs.file-max = 6815744   #增加项

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

kernel.shmall = 2097152

kernel.shmmax = 536870912

#------------------------------------------

 

# /sbin/sysctl -p (设置参数立即生效)


2.5 增加shell限制

 

为了提升性能增加oracle用户的shell限制.

# vi /etc/security/limits.conf  (在文件最后增加或修改以下参数)

oracle              soft    nproc   2047

oracle              hard    nproc   16384

oracle              soft    nofile  1024

oracle              hard    nofile  65536

 

 

# vi /etc/pam.d/login  (在文件最后增加或修改以下参数)

session    required     pam_limits.so

 

# vi /etc/profile  (在文件最后增加或修改以下脚本)

if [ $USER = "oracle" ]; then

        if [ $SHELL = "/bin/ksh" ]; then

              ulimit -p 16384

              ulimit -n 65536

        else

              ulimit -u 16384 -n 65536

        fi

fi


2.6 建立必需目录

 

# more /etc/oratab (确认原来是否存在Oracle主目录)

# more /etc/oraInst.loc (确认原来是否存在Oracle产品清单目录)

# mkdir -p /u01/app/oracle/ (Oracle基目录, 一般为/mount_point/app/oracle_owner)

# chown -R oracle:oinstall /tmp/database

#chown -R oracle:oinstall /u01

# chmod -R 775 /tmp/database

#chmod -R 775 /u01


 

2.7 设置oracle用户环境变量

 

如果服务器有多网卡, 注意设置ORACLE_HOSTNAME为某网卡IP对应的主机名, 参照/etc/hosts文件.


# su - oracle

$ vi ~/.bash_profile

umask 022

export ORACLE_HOSTNAME=redhata

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"

 

$ . ~/.bash_profile

 

 

2.8 将/tmp/database移到/u01/中

 

$ cd /tmp/

$ mv database /u01/


 

在解压后oracle软件的response目录里有各种响应文件的模版.

 

 

2.9 生成响应文件模板

 

1) 方法一(推荐)

 

$ vi /u01/database/db_swonly.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权限的组名

 

 

2) 方法二(图形界面)

 

$ ./runInstaller &

一步步设置到Summary页, 然后点击Save Response File按钮, 选择合适的存放路径并Finish后, 回到Summary页, 点击Cancel退出OUI.

 

 

2.10 开始安装oracle软件

 

1) 通过response文件静默安装, 大概2-3分钟:

$cd  /u01/database/

$ ./runInstaller -silent -force -noconfig -responseFile /u01/database/db_swonly.rsp

控制台直到出现以下提示则表示安装完成:

#-------------------------------------------------------------------

...

/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.

#-------------------------------------------------------------------

 

 

2) 安装期间查看安装日志信息了解安装进度:

 

$ cd $ORACLE_BASE/oraInventory/logs

$ tail -100f installActions*.log

 

 

3) 安装的软件信息会写入inventory.xml文件, 如果需重运行则把该文件的对应安装条目信息删除即可:

 

$ vi $ORACLE_BASE/oraInventory/ContentsXML/inventory.xml

 

 

2.11 运行orainstRoot.sh和root.sh

 

若本机第一次安装oracle软件, 则执行orainstRoot.sh来建立oraInst.loc文件和修改权限:

$ exit返回root用户

# /u01/app/oracle/oraInventory/orainstRoot.sh

# more /etc/oraInst.loc

 

 

执行$ORACLE_HOME下的root.sh来建立oratab,dbhome,oraenv,coraenv文件, 如果提示则一直回车:

# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

# more /etc/oratab

2.12 静默配置监听

 

通过response文件运行netca, 生成sqlnet.ora和listener.ora文件, 位于$ORACLE_HOME/network/admin目录下:

# su - oracle

$ $ORACLE_HOME/bin/netca /silent /responsefile /u01/database/response/netca.rsp

如果报错/u01/app/Oracle/product/11.2.0/dbhome_1/bin/netca: line 178: 2973 Aborted,则是因

为主机是64-Bit的系统,而虚拟主机是32位的系统,因此会产生这个错误bug,装个补丁(patch name:p8670579_112010_LINUX.zip)就

可以解决问题。

解决办法:

下载好后切换到oracle用户

$unzip  p8670579_112010_LINUX.zip

$cd 8670579

$/u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch  apply  -invPtrLoc /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc

补丁打成功后再执行

$ORACLE_HOME/bin/netca /silent /responsefile /u01/database/response/netca.rsp

$ ll $ORACLE_HOME/network/admin/*.ora

$ lsnrctl status

执行完后, 监听就已经启动了, 默认端口是1521, 默认是动态监听, 只要实例启动了就会监听到. 

 

 

2.13 静默建库

 

1) 生成响应文件模板:

 

 

$ vi /u01/database/db_create.rsp

#--------------------------------------------------------------------

#以下参数不要更改

[GENERAL]

RESPONSEFILE_VERSION = "11.2.0"

OPERATION_TYPE = "createDatabase"

#以下参数必须设置

[CREATEDATABASE]

GDBNAME = "ORCL"

TEMPLATENAME = "General_Purpose.dbc"

#以下参数不设置则使用默认值,建议设置

CHARACTERSET = "ZHS16GBK"

TOTALMEMORY = "1024"

#--------------------------------------------------------------------

 

2) dbca静默建库, 大概3-4分钟:

 

 

种子数据库和控制文件位于$ORACLE_HOME/assistants/dbca/templates/下, 即Seed_Database.dfb和Seed_Database.ctl文件, 

实际上建库就是基于通过rman恢复种子数据库和控制文件来实现的.

 

$ $ORACLE_HOME/bin/dbca -silent -responseFile /u01/database/db_create.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%

 

 

3) 安装期间查看日志信息了解进度:

 

 

$ tail -100f /u01/app/oracle/cfgtoollogs/dbca/ORCL/ORCL.log 

 

 

 

4) 建库后实例检查

 

 

$ ps -ef | grep ora_ | grep -v grep | wc -l

22

$ ps -ef | grep ora_ | grep -v grep

oracle    1807     1  0 Jan22 ?        00:01:08 ora_pmon_ORCL

oracle    1809     1  1 Jan22 ?        00:34:24 ora_vktm_ORCL

oracle    1813     1  0 Jan22 ?        00:00:12 ora_gen0_ORCL

oracle    1815     1  0 Jan22 ?        00:00:24 ora_diag_ORCL

oracle    1817     1  0 Jan22 ?        00:00:12 ora_dbrm_ORCL

oracle    1819     1  0 Jan22 ?        00:00:29 ora_psp0_ORCL

oracle    1821     1  0 Jan22 ?        00:03:13 ora_dia0_ORCL

oracle    1823     1  0 Jan22 ?        00:00:14 ora_mman_ORCL

oracle    1825     1  0 Jan22 ?        00:01:04 ora_dbw0_ORCL

oracle    1827     1  0 Jan22 ?        00:01:20 ora_lgwr_ORCL

oracle    1829     1  0 Jan22 ?        00:02:35 ora_ckpt_ORCL

oracle    1831     1  0 Jan22 ?        00:00:32 ora_smon_ORCL

oracle    1833     1  0 Jan22 ?        00:00:07 ora_reco_ORCL

oracle    1835     1  0 Jan22 ?        00:01:10 ora_mmon_ORCL

oracle    1837     1  0 Jan22 ?        00:01:41 ora_mmnl_ORCL

oracle    1839     1  0 Jan22 ?        00:00:07 ora_d000_ORCL

oracle    1841     1  0 Jan22 ?        00:00:07 ora_s000_ORCL

oracle    1850     1  0 Jan22 ?        00:00:06 ora_qmnc_ORCL

oracle    1852     1  0 Jan22 ?        00:00:09 ora_q000_ORCL

oracle    1854     1  0 Jan22 ?        00:00:08 ora_q001_ORCL

oracle    3603     1  0 Jan22 ?        00:00:14 ora_smco_ORCL

oracle    9673     1  0 07:54 ?        00:00:01 ora_w000_ORCL

5) 建库后监听检查

[oracle@redhata ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 23-JAN-2017 12:14:24


Copyright (c) 1991, 2009, Oracle.  All rights reserved.


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date                22-JAN-2017 08:19:52

Uptime                    1 days 3 hr. 54 min. 32 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

Listener Log File         /u01/app/oracle/diag/tnslsnr/redhata/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhata)(PORT=1521)))

Services Summary...

Service "ORCL" has 1 instance(s).

  Instance "ORCL", status READY, has 1 handler(s) for this service...

Service "ORCLXDB" has 1 instance(s).

  Instance "ORCL", status READY, has 1 handler(s) for this service...

The command completed successfully

 

 

实例应该被动态注册到监听程序了. 如果未被动态注册到监听程序, 则可以手工注册:

 

 

$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 16 11:11:46 2009

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, Oracle Label Security, OLAP, Data Mining,

Oracle Database Vault and Real Application Testing options

SQL> alter system register;

 

 

 

6) 改为归档模式并重启

 

 

$ sqlplus / as sysdba

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)

SQL> alter database open;

SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)

SQL> alter system archive log current; (手工归档测试)

 

到此建库完毕!

 

7)查看 默认安装的数据库用户:

 select * from dba_users

 

 

8)查看默认安装的组件:

 select * from dba_registry order by 1


 

2.14 静默删库

 

1) 生成响应文件模板:

 

$ vi /u01/database/db_delete.rsp

 

#--------------------------------------------------------------------

 

#以下参数不能更改

 

[GENERAL]

 

RESPONSEFILE_VERSION = "11.2.0"

 

OPERATION_TYPE = "deleteDatabase"

 

#以下参数根据实际情况更改

 

[DELETEDATABASE]

 

SOURCEDB = "ORCL"

 

#--------------------------------------------------------------------

 

2) dbca静默建库, 无需手工停库, 大概1分钟:


$ $ORACLE_HOME/bin/dbca -silent -responseFile /u01/database/db_delete.rsp

 

Connecting to database

 

...

 

47% complete

 

Updating network configuration files

 

...

 

52% complete

 

Deleting instance and datafiles

 

...

 

100% complete

 

Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ORCL.log" for further details.

  

各参数含义如下:

 

-silent 表示以静默方式删除

 

-responseFile 表示使用哪个响应文件,必需使用绝对路径

 

RESPONSEFILE_VERSION 响应文件模板的版本,该参数不要更改

 

OPERATION_TYPE 安装类型,该参数不要更改

 

SOURCEDB  数据库名,不是全局数据库名,即不包含db_domain

 

3) 删除期间查看日志信息了解进度: 

$ tail -100f $ORACLE_BASE/cfgtoollogs/dbca/$ORACLE_SID/$ORACLE_SID.log


重启后

su - oracle

$sqlplus / as sysdba

$lsnrctl start

$emctl start dbconsole #(如果失败提示为Environment variable 

ORACLE_SID not defined.Please define it,则执行1.4中的内容)


2.15使用网页访问数据库

$ emca -config dbcontrol db# 开启网页https://192.168.1.200:1158/em/

$ emca status dbconsole



3、使用PLSQL Developer工具连接数据库


3.1下载instantclient-basic-windows.x64-11.2.0.4.0.zip并解压至F:\instantclient_11_2中

3.2下载plsqldeveloperxx.zip并安装

  3.2.1打开plsqldeveloper设置如下图

  Oracle11gR2 for Linux6.4 静默安装_Oracle

  3.2.2设置系统环境变量如下图

   1)在系统环境变量Path中添加instantclient-basic-windows.x64-11.2.0.4.0.zip的解压路径F:\instantclient_11_2如下图:

  Oracle11gR2 for Linux6.4 静默安装_Oracle_02

   2)新建系统环境环境变量NLS_LANG=AMERICAN_AMERICA.ZHS16GBK如下图:

  Oracle11gR2 for Linux6.4 静默安装_Oracle_03

   3)新建系统环境环境变量TNS_ADMIN=F:\instantclient_11_2如下图:

   Oracle11gR2 for Linux6.4 静默安装_Oracle_04

3.3将数据库服务器中/u01/app/oracle/product/11.2.0/dbhome_1/network/admin目录下的listener.ora、tnsnames.ora下载下来并将其中的主机名redhata改成虚拟机的IP后放到主机目录F:\instantclient_11_2中即可。