oracle11g静默安装(修正)

1.操作系统及Oracle版本
Linux版本:CentOS release 6.3 (Final)
Oracle版本:Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64 (linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip)
 
2.硬件检测:
物理内存不少于1G
硬盘可以空间不少于5G
swap分区空间不少于2G
支持256色以上显卡
cpu主频不小于550mHZ
 
cat /etc/issue
uname -r (版本)
grep MemTotal /proc/meminfo (内存大小)
grep SwapTotal /proc/meminfo (交换区大小)
grep "model name" /proc/cpuinfo (CPU信息)
free (可用内存)
 
3.检查安装依赖系统包
操作系统依赖的具体包,请参考官方安装文档。
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11 (32-bit) or later
unixODBC-devel-2.2.11 (64-bit) or later
unixODBC-2.2.11 (64-bit) or later
 
检查依赖包
 
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
如果包有显示is not installed(没安装),就用yum install 命令安装,如:
 
yum install compat-libstdc++-33
 
4.创建所需的操作系统组和用户
 
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
设置oracle用户密码
 
passwd oracle
 
5.修改内核参数
在/sbin/sysctl.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数
 
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
修改后,使设置生效
 
/sbin/sysctl -p
 
6.修改用户限制
在/etc/security/limits.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数
 
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
在/etc/pam.d/login 文件中,使用文本编辑器或vi命令增加或修改以下内容
 
session required /lib/security/pam_limits.so
session required pam_limits.so
在/etc/profile 文件中,使用文本编辑器或vi命令增加或修改以下内容
 
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
使设置生效
 
source /etc/profile
7.创建安装目录(可根据情况,选择比较多空间的目录创建)
 
mkdir -p /usr/oracle
chown -R oracle:oinstall /usr/oracle
chmod -R 775 /usr/oracle
 
8.创建/etc/oraInst.loc文件,内容如下
 
nventory_loc=/usr/oracle/oraInventory
inst_group=oinstall
更改文件的权限
 
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
 
9.设置oracle环境变量
 
su - oracle
 
vi ~/.bash_profile
 
在最后加上以下内容
 
export ORACLE_BASE=/usr/oracle
export ORACLE_SID=orcl
注意,除了ORACLE_BASE和ORACLE_SID,( /etc/profile和.bash_profile中)不设置任何oracle相关环境变量(ORACLE_HOME, PATH, LD_LIBRARY_PATH等)。
 
使设置生效
 
source /home/oracle/.bash_profile
检查环境变量: 
env

同时,在使用静默安装的时候会检查DISPLAY的设置,如果经常说检查DISPLAY不行的话,到root用户下执行“xhost + 你的ip:0.0“
 
10.解压oracle安装文件
 
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
 
11.复制响应文件模板
 
mkdir etc
cp /home/oracle/database/response/* /home/oracle/etc/
设置响应文件权限
 
su - root
chmod 700 /home/oracle/etc/*.rsp(注意所有者,oinstall)
12.静默安装Oracle软件
 
su - oracle
修改安装Oracle软件的响应文件/home/oracle/etc/db_install.rsp
 
oracle.install.option=INSTALL_DB_SWONLY // 安装类型
ORACLE_HOSTNAME=db // 主机名称(hostname查询)
UNIX_GROUP_NAME=oinstall // 安装组
INVENTORY_LOCATION=/usr/oracle/oraInventory //INVENTORY目录(不填就是默认值)
SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言
ORACLE_HOME=/usr/oracle/product/11.2.0/db_1 // oracle_home
ORACLE_BASE=/usr/oracle // oracle_base
oracle.install.db.InstallEdition=EE // oracle版本
oracle.install.db.isCustomInstall=false //自定义安装,否,使用默认组件
oracle.install.db.DBA_GROUP=dba // dba用户组
oracle.install.db.OPER_GROUP=oinstall // oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName
oracle.install.db.config.starterdb.SID=orcl //SID
oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false(手动写了false)
DECLINE_SECURITY_UPDATES=true //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)

开始静默安装
 
cd database
./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。
查看安装日志信息了解安装进度
 
cd $ORACLE_BASE/oraInventory/logs
tail -f installActions*.log
出现类似如下提示表示安装完成:
#-------------------------------------------------------------------
/usr/oracle/oraInventory/orainstRoot.sh
/usr/oracle/product/11.2.0/db_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.
#-------------------------------------------------------------------
 
使用root用户执行脚本

这里是有两个脚本要执行,跑一下就好
 
su root
/usr/oracle/product/11.2.0/db_1/root.sh
/usr/oracle/oraInventory/orainstRoot.sh

增加oracle环境变量
 
su - oracle
 
vi ~/.bash_profile
 
在最后加上以下内容
 
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data
使设置生效
 
source /home/oracle/.bash_profile
 
到这里,oracle11g的数据库实例就算是装好了,接下来配置数据库实例的基本参数文件~
cd $ORACLE_HOME/dbs

找到默认的init.ora,然后创建一个新的init.ora:
cat init.ora | grep -V ^# | grep -V ^$ | > init$ORACLE_SID.ora

修改新参数文件里面的为绝对路径,然后把db_name之类的东西改成自己的就好~

然后就可以启动oracle实例了,用sqlplus "/as sysdba"登录进去,然后startup nomount;
如果说MEMORY_TARGET太大了,那么可以在参数文件里面改小一点(这里设置的是81960M,80G),或者修改shm的大小、
用df -h能看到/dev/shm的大小
用mount -o size=102400M -o nrinodes=1000000 -o noatime,nodiratime -o remount /dev/shm来修改shm的大小

然后创建spfile
create spfile from pfile;(具体的这两个东西的资料可以参考我的另一篇文章,spfile和pfile那点事)

如果一切正常,那么会显示出数据库的一些池和缓存的信息,接下来就是创建数据库了,

先创建必要目录
mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump
mkdir -p $ORACLE_BASE/oradata

PS:稍微注意一下的是,/usr/local/bin下面,几个目录的权限,记得要改成oracle和oinstall的(chown -R oracle:oinstall *),否则启动的时候会提示错误,权限啊,目录操作失败云云

建库脚本如下:
CREATE DATABASE orcl 
USER SYS IDENTIFIED BY sys 
USER SYSTEM IDENTIFIED BY system 
LOGFILE 
GROUP 1 ('/usr/oracle/oradata/redo01.log') SIZE 1024M, 
GROUP 2 ('/usr/oracle/oradata/redo02.log') size 1024m, 
GROUP 3 ('/usr/oracle/oradata/redo03.log') size 1024m, 
GROUP 4 ('/usr/oracle/oradata/redo04.log') size 1024m, 
GROUP 5 ('/usr/oracle/oradata/redo05.log') size 1024m
MAXLOGFILES 5 
MAXLOGMEMBERS 5 
MAXLOGHISTORY 200 
MAXDATAFILES 10000
MAXINSTANCES 1 
CHARACTER SET AL32UTF8 
NATIONAL CHARACTER SET AL16UTF16 
datafile '/usr/oracle/oradata/system01.dbf' size 2048M  REUSE
EXTENT MANAGEMENT LOCAL
sysaux datafile '/usr/oracle/oradata/sysaux01.dbf' size 2048M REUSE
default temporary tablespace temp 
tempfile '/usr/oracle/oradata/temp01.dbf' size 2048M REUSE
undo tablespace UNDOTBS1 
datafile '/usr/oracle/oradata/undotbs01.dbf' size 4096M  REUSE
AUTOEXTEND off
default tablespace DATA
datafile '/usr/oracle/oradata/data01.dbf' size 8192M  REUSE
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;


使用Extend和Segment的管理,懒人+水B表示自己管理的技巧暂时没空学,全部交给oracle自己管理.....

如果没问题,接下来就创建数据字典和pl/sql包,
sqlplus "/as sysdba"
SQL>@?/rdbms/admin/catalog.sql;
SQL>@?/rdbms/admin/cataproc.sql;
SQL>@?/rdbms/admin/utlrp.sql;
SQL>conn system/*****;
SQL>@?/sqlplus/admin/pupbld.sql;
(这几个脚本放在$ORACLE_HOME/rdbms/admin下,也可以先进这个目录,然后直接@脚本就好)
最后shutdown immediate 然后startup吧~


数据库正确open之后,就是配置监听器了,
把\network\admin\listener.ora 和\network\admin\tnsname.ora里面的LOCALHOST改成IP,把SID SID_NAME改成实例名,重启数据库,重启监听
PS:参数文件的service和监听器的service要对上!

然后用sqlplus,使用sys或者system登录进去,show parameter;或者select table_name from dba_tables看看是否正常~~

The End! Happy Oracle 11g~

PS:由于我是从oracle官网下载的oracle11g,不知道是否是这个原因,导致数据库类型不写GENERAL_PURPOSE 的话,安装一定会因为电子邮件地址的缘故终止╮(╯_╰)╭

上一篇:Linux下删除Oracle


下一篇:Greenplum技术浅析