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设置如下图
3.2.2设置系统环境变量如下图
1)在系统环境变量Path中添加instantclient-basic-windows.x64-11.2.0.4.0.zip的解压路径F:\instantclient_11_2如下图:
2)新建系统环境环境变量NLS_LANG=AMERICAN_AMERICA.ZHS16GBK如下图:
3)新建系统环境环境变量TNS_ADMIN=F:\instantclient_11_2如下图:
3.3将数据库服务器中/u01/app/oracle/product/11.2.0/dbhome_1/network/admin目录下的listener.ora、tnsnames.ora下载下来并将其中的主机名redhata改成虚拟机的IP后放到主机目录F:\instantclient_11_2中即可。