本文档是Oracle Database 11.2.0.4 for CentOS 6.6 Server(x86_64平台)的静默安装指南. 所有操作无需使用图形界面. 静默安装能减少安装出错的可能性, 也能大大加快安装速度.
# 后跟命令表示以操作系统下root用户操作;
$ 后跟命令表示以操作系统下oracle用户操作;
1.0 安装前检查
内存大小要求
Oracle 11.2 建议内存是在2GB或者更多。 运行以下命令:
# grep MemTotal /proc/meminfo
MemTotal: 16467212 kB
交换分区要求
物理内存与swap空间之间的关系如下表所示:
Available RAM | Swap Space Required |
---|---|
256 MB | 3 times the size of RAM |
Between 256 MB and 512 MB | 2 times the size of RAM |
Between 512 MB and 2 GB | 1.5 times the size of RAM |
Between 2 GB and 16 GB | Equal to the size of RAM |
More than 16 GB | 16 GB |
运行以下命令:
# grep SwapTotal /proc/meminfo
SwapTotal: 16482300 kB
操作系统版本
通过命令查看系统架构:
# uname -m
x86_64
查看操作系统版本命令:
#cat /etc/redhat-release
CentOS release 6.6 (Final)
检查防火墙是否开启
# service iptables status
关闭防火墙
# service iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
# chkconfig iptables off
# chkconfig iptables --list
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
selinux设置“SELINUX=disabled ”
# vi /etc/sysconfig/selinux
1.1 上传软件
假如放在/root目录下,可通过SecureFX或者SSH工具sftp上传数据库安装文件。
1.2 Package安装检查
# rpm -q \
binutils \
compat-libstdc++-33 \
compat-libcap1 \
gcc \
gcc-c++ \
glibc \
glibc-devel \
ksh \
libgcc \
libstdc++ \
libstdc++-devel \
libaio \
libaio-devel \
make \
elfutils-libelf-devel \
sysstat | grep "not installed"
如果系统没有存在相关的RPM包,则通以下命令进行安装
# yum –y install
本地YUM安装(此步骤非必须)
配置yum本地安装源:
创建加载目录
# mkdir -p /mnt/cdrom
加载安装光盘
# mount /dev/cdrom /mnt/cdrom
创建一个repo文件
# mkdir backup
# mv *.repo backup/
# vi /etc/yum.repos.d/oracle.repo
添加以下以下内容到oracle.repo。
[LOCAL]
name=local
baseurl=file:///mnt/cdrom
enable=1
gpgcheck=0
按Esc退出并保存(:wq!)
# yum clean all
Loaded plugins: fastestmirror, refresh-packagekit, security
Cleaning repos: LOCAL base extras updates
Cleaning up Everything
/dev/shm空间设置
# df -h /dev/shm/
# mount -t tmpfs shmfs -o size=7g /dev/shm
To make this change persistent across system restarts, add an entry in /etc/fstab similar to the following:
shmfs /dev/shm tmpfs size=7g 0
mount -o remount /dev/shm
Linux桌面包安装 (此步骤非必须)
注:如果已经安装好Linux桌面包,此步骤可以略过。
安装桌面包
# yum groupinstall "X Window System"
# yum groupinstall "Desktop"
更改启动模式
# vi /etc/inittab
将id:3:initdefault: 修改id:5:initdefault:
其中5为X window图形界面
安装桌面右键终端:
# yum install nautilus-open-terminal
1.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 (oinstall为主要组,确保/home/oracle原不存在)
# id oracle (记住oracle用户的uid和gid)
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),504(asmdba)
# passwd oracle
1.4 调整OS内核参数
设置原则:
kernel.shmmax 为 4GB-1byte或一半的物理内存, 哪个值更低用哪个;
fs.file-max 为512 * PROCESSES.
修改/etc/sysctl.conf文件
输入命令: vi /etc/sysctl.conf ,按i键进入编辑模式,将下列内容加入该文件
fs.file-max = 6815744
fs.aio-max-nr = 1048576
#kernel.shmall = 2097152
#kernel.shmmax = 4294967295
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 = 1048576
最后执行sysctl –p使配置生效。
如果出现以下的错误,
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
解决方法如下:
# modprobe bridge
# sysctl -p (设置参数立即生效)
1.5 增加shell限制
修改/etc/security/limits.conf用户限制信息
输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,将下列内容加入该文件。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
修改/etc/pam.d/login文件
输入命令:vi /etc/pam.d/login,按i键进入编辑模式,将下列内容加入该文件。
session required /lib/security/pam_limits.so
session required pam_limits.so
修改/etc/profile文件
输入命令:vi /etc/profile,按i键进入编辑模式,将下列内容加入该文件.
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
1.6 建立必需目录
# more /etc/oratab (确认原来是否存在Oracle主目录)
# more /etc/oraInst.loc (确认原来是否存在Oracle产品清单目录)
# mkdir -p /u01/app/oracle/ (Oracle基础目录, 一般为/mount_point/app/oracle_owner)
创建目录、所属关系和权限
目录的位置,根据自己的情况来定,注意磁盘空间即可。
输入命令:
# mkdir -p /u01/app
更改目录属主为Oracle用户所有,输入命令:
# chown -R oracle:oinstall /u01/app/
# chmod -R 775 /u01/app/
如果服务器有多网卡, 注意设置ORACLE_HOSTNAME为某网卡IP对应的主机名, 参照/etc/hosts文件.
对/etc/hosts进行配置
在/etc/hosts文件中加入主机IP与主机名。
192.168.0.226 DBSRV01
1.7 设置oracle用户环境变量
配置Oracle用户的环境变量
首先,切换到新创建的oracle用户下,
输入:su - oracle ,然后在/home/oracle目录输入 : vi .bash_profile
按i编辑 .bash_profile,进入编辑模式,增加以下内容:
# Oracle Settings
export ORACLE_HOSTNAME=iZuf6ivdq1ie5lq1vjseyiZ
export ORACLE_UNQNAME=ora11g
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
export ORACLE_SID=ora11g
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export TMP=/tmp
export TMPDIR=$TMP
umask 022
1.8 解压Oracle安装文件
准备安装软件
在目录/home/oracle下输入命令:
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
解压完成后 cd 进入其解压后的目录database
1.9 生成响应文件模板
1) 方法一(推荐)
$ mkdir -p scripts
$ cd database
$ cp -R response ../scripts/
$ cd scripts/response/
#--------------------------------------------------------------------
#以下参数不要更改
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
#以下参数根据实际情况更改,一般也无需更改
ORACLE_HOSTNAME=iZuf6ivdq1ie5lq1vjseyiZ
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
---oracle.install.db.isCustomInstall=true
oracle.install.db.optionalComponents=oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.partitioning:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES
1.10 开始安装oracle软件
1) 通过response文件静默安装, 大概2-3分钟:
开始安装软件
首先按db.rsp配置好参数信息。
执行以下脚本进行静默数据库安装:
$ ./runInstaller -silent -noconfig -ignorePrereq -responseFile /home/oracle/sinstall/db.rsp
控制台直到出现以下提示则表示安装完成:
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 454174 MB Passed
Checking swap space: must be greater than 150 MB. Actual 16095 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-07-11_01-15-42AM.
Please wait ...
$ You can find the log of this install session at:
/u01/app/oraInventory/logs/installActions2015-07-11_01-15-42AM.log
The installation of Oracle Database 11g was successful.
Please check '/u01/app/oraInventory/logs/silentInstall2015-07-11_01-15-42AM.log' for more details.
As a root user, execute the following script(s):
1. /u01/app/oracle/product/11.2.0.4/dbhome_1/root.sh
Successfully Setup Software.
2) 安装期间查看安装日志信息了解安装进度:
$ cd $ORACLE_BASE/oraInventory/logs
$ tail -100f installActions*.log
软件安装成功!
3) 安装的软件信息会写入inventory.xml文件, 如果需重运行则把该文件的对应安装条目信息删除即可:
$ vi $ORACLE_BASE/oraInventory/ContentsXML/inventory.xml
1.11 运行orainstRoot.sh和root.sh
若本机第一次安装oracle软件, 则执行orainstRoot.sh来建立oraInst.loc文件和修改权限:
$ su -
# /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
1.1 静默配置监听
通过response文件运行netca, 生成sqlnet.ora和listener.ora文件, 位于$ORACLE_HOME/network/admin目录下:
# su - oracle
$ cd $ORACLE_HOME
$ netca -silent -responsefile /home/oracle/scripts/response/netca.rsp
$ ll $ORACLE_HOME/network/admin/*.ora
$ lsnrctl status
执行完后, 监听就已经启动了, 默认端口是1521, 默认是动态监听, 只要实例启动了就会监听到.
配置监听(使用默认的netca.rsp文件)
$ netca -silent -responsefile /home/oracle/scripts/response/netca.rsp
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /home/oracle/sinstall/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/u01/app/oracle/product/11.2.0.4/dbhome_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
默认配置的是1521的端口,可以在安装之后,手工修改端口号为1601
1.2 静默建库
1) 生成响应文件模板:
$ vi $DISTRIB/db_create.rsp
#--------------------------------------------------------------------
#以下参数不要更改
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
#以下参数必须设置
[CREATEDATABASE]
GDBNAME = "ora11g"
SID = "ora11g"
TEMPLATENAME = "General_Purpose.dbc"
#以下参数不设置则使用默认值,建议设置
CHARACTERSET = "ZHS16GBK"
AUTOMATICMEMORYMANAGEMENT = "TRUE"
TOTALMEMORY = "12000"
--------------------------------------------------------------------
2) dbca静默建库, 大概3-4分钟:
种子数据库和控制文件位于$ORACLE_HOME/assistants/dbca/templates/下, 即Seed_Database.dfb和Seed_Database.ctl文件, 实际上建库就是基于通过rman恢复种子数据库和控制文件来实现的.
定制数据库DBCA
$ dbca -silent -responsefile /home/oracle/scripts/response/dbca.rsp
Enter SYS user password:
Enter SYSTEM user password:
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ora11g/ora11g.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 $ORACLE_BASE/cfgtoollogs/dbca/$ORACLE_SID/$ORACLE_SID.log
4) 建库后实例检查
$ ps -ef | grep ora_ | grep -v grep | wc -l
21
$ ps -ef | grep ora_ | grep -v grep
5) 建库后监听检查
$ lsnrctl status
Services Summary...
Service "ORCL.LK" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCLXDB.LK" 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) 默认安装的数据库用户:
SQL> set lines 256 pages 500
SQL> select USER_ID,USERNAME,ACCOUNT_STATUS,DEFAULT_TABLESPACE from dba_users order by 1;
8) 默认安装的组件:
SQL> col COMP_ID format a8
col COMP_NAME format a35
col VERSION format a12
col schema format a12
col OTHER_SCHEMAS format a45
SQL> select comp_id,comp_name,version,schema,other_schemas from dba_registry order by 1;
1.3 静默删库(可选)
1) 生成响应文件模板:
$ vi $DISTRIB/db_delete.rsp
#--------------------------------------------------------------------
#以下参数不能更改
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "deleteDatabase"
#以下参数根据实际情况更改
[DELETEDATABASE]
SOURCEDB = "ORCL"
#--------------------------------------------------------------------
2) dbca静默建库, 无需手工停库, 大概1分钟:
$ $ORACLE_HOME/bin/dbca -silent -responseFile $DISTRIB/db_delete.rsp
Connecting to database
4% complete
9% complete
14% complete
19% complete
23% complete
28% complete
47% complete
Updating network configuration files
48% complete
52% complete
Deleting instance and datafiles
76% complete
100% complete
Look at the log file "/app/oracle/cfgtoollogs/dbca/ora11g.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
CREATE TABLESPACE WMSD DATAFILE '/SDS/u01/app/oracle/oradata/ora11g/wmsd.01.dbf' SIZE 100M AUTOEXTEND ON;
CREATE USER CHAINWORKWMS IDENTIFIED BY Lj#2S6c DEFAULT TABLESPACE WMSD QUOTA UNLIMITED ON WMSD;
GRANT CONNECT,CREATE MATERIALIZED VIEW,CREATE PUBLIC SYNONYM,CREATE JOB,CREATE INDEXTYPE,CREATE SEQUENCE,CREATE VIEW,UNLIMITED TABLESPACE,CREATE PROCEDURE,CREATE SESSION,CREATE TRIGGER,CREATE TABLE,CREATE TYPE TO CHAINWORKWMS;
参考:http://www.cnblogs.com/ivictor/p/4384583.html