rpm
缺软件:
gcc-3.4.6
compat-libstdc++-33-3.2.3
elfutils-libelf-devel-0.97
gcc-c++-3.4.6
libaio-devel-0.3.105
libstdc++-devel-3.4.6
unixODBC-2.2.11
unixODBC-devel-2.2.11
yum install gcc compat-libstdc++-33 elfutils-libelf-develgcc-c++ libaio-devel libstdc++-devel unixODBC unixODBC-devel
kernel.shmmax参数
Linux进程可以分配的单独共享内存的最大值。
一般设置为内存总大小的一半.这个值的设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值,因此对于安装Oracle数据库的系统,shmmax的值应该比内存的二分之一大一些。
查看物理内存大小
# grep MemTotal /proc/meminfo
查看内核参数shmmax的当前设置
# cat /proc/sys/kernel/shmmax
设置shmmax参数
# echo 838860800 >/proc/sys/kernetbl/shmmax
# sysctl -w kernel.shmmax=838860800
# echo "kernel.shmmax=838860800">> /etc/sysctl.conf
系统物理内存:1268020 kB ~ 1.2G
设置shmmax为800M, 800*1024*1024 = 838860800 byte
SHMMNI参数:
设置系统级最大共享内存段数量, 默认为4096
# cat/proc/sys/kernel/shmmni
# echo 4096 > /proc/sys/kernel/shmmni
# sysctl -w kernel.shmmni=4096
# echo "kernel.shmmni=4096" >>/etc/sysctl.conf
SHMALL参数:
设置共享内存总页数。这个值太小有可能导致数据库启动报错。至少2097152 , 2G
这个值推荐设置为物理内存大小除以分页大小(4k)
echo 2097152 > /proc/sys/kernel/shmall
echo "kernel.shmall=2097152" >>/etc/sysctl.conf
kernel.sem 参数:
kernel.sem的4个值
从左到右分别为SEMMSL、SEMMNS、SEMOPM和SEMMNI
semmsl, semmns, semopm,semmni
1) SEMMSL参数:设置每个信号灯组中信号灯最大数量,推荐的最小值是250
对于系统中存在大量并发连接的系统,推荐将这个值设置为PROCESSES初始化参数加10。
2) SEMMNS参数:设置系统中信号灯的最大数量.Oracle推荐SEMMNS的设置不小于32000 操作系统在分配信号灯时不会超过LEAST (SEMMNS,SEMMSL*SEMMNI)。事实上,如果SEMMNS的值超过了SEMMSL*SEMMNI是非法的.
假如数据库的PROCESSES参数设置为600,则SEMMNS的设置应为:(600+10)*142
3) SEMOPM参数:设置每次系统调用可以同时执行的最大信号灯操作的数量.
Oracle验证的10.2和11.1的SEMOPM的配置为100
4) SEMMNI参数:设置系统中信号灯组的最大数量。
Oracle10g和11g的推荐值为142
kernel.sem = 250 32000 100142
对应的4个值从左到右分别为SEMMSL、SEMMNS、SEMOPM和SEMMNI。修改方法为:
# echo 610 86620 100 142> /proc/sys/kernel/sem
# sysctl -w kernel.sem="610 86620 100 142"
# echo "kernel.sem=610 86620 100 142" >> /etc/sysctl.conf
fs.file-max参数:表示一个进程可以打开的文件句柄的最大数量
net.ipv4.ip_local_port_range参数:专用服务器模式下与用户进程通信时分配给用户的端口区间
net.core.rmem_default参数:默认接收缓冲区大小
net.core.rmem_max参数:接收缓冲区最大值
net.core.wmem_default参数:默认的发送缓冲区大小
net.core.wmem_max参数:发送缓冲区最大值
以上四个值Oracle安装时推荐262144
# Controls themaximum share
kernel.shmmax=838860800
# Controls themaximum number of shared memory segments, in pages
kernel.shmall= 204800
kernel.sem =250 32000 100 142
fs.aio-max-nr= 1048576
fs.file-max =6815744
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
改文件限制:
vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
注意:修改此文件是即时生效的,但可能要重登录后再看
ulimit -Sn
ulimit -Hn
ulimit -Sn
ulimit -Sn
ulimit -Sn
创建用户和组
# groupadd oinstall
# groupadd dba
# groupadd oper
# useradd -u600 -g oinstall oracle
# usermod -G dba,oper oracle
# id oracle
# passwd oracle
创建目录:
# mkdir /u01
# mkdir /u02
# chown -R oracle:oinstall /u01
# chown -R oracle:oinstall /u02
# su oracle
$ mkdir -p /u01/app/oracle/product/11.2.0/db_1
$ mkdir -p /u02/oradata
$ mkdir -p /u02/oradata/orcl
环境变量配置:
#configure oracle environment
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_SID=orcl
export NLS_LANG=american_america.zhs16gbk
export PATH=$ORACLE_HOME/bin:$PATH
# source /home/oracle/.bash_profile(使配置立即生效)
# env(检查环境变量设置是否OK)
[root@localhostDesktop]# sh /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory. 更改目录的权限
Adding read, write permissions for group.
Removing read, write, execute permissions for world.
Changing group name of /u01/app/oraInventory to oinstall. 更改目录的组名
The execution of the script is complete.
[root@localhostDesktop]# sh /u01/app/oracle/product/11.2.0/db_1/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.0/db_1
Enterthe full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhometo /usr/local/bin ...
Copying oraenvto /usr/local/bin ...
Copying coraenvto /usr/local/bin ...
Creating/etc/oratab file...
Entries will be added to the /etc/oratab file as needed by Database Configuration Assistantwhen a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
安装过程的日志信息:
/u01/app/oraInventory/logs/installActions2014-06-11_06-21-32PM.log
OFA—optimalflexible architecture 最佳灵活体系结构, 是如何设置oracle软件所在目录以及数据库相关文件所在目录的指导。
OFA在Linux/Unix下包括以下几点:
1. 挂载点/pm -- /u01
p表示字符常量,m固定长度<通常为2>的数字, 比如/u01/u02 等
2. 软件的基本目录/pm/h/u, 即$ORACLE_BASE路径 -- /u01/app/oracle
h一个常量,比如app; u 目录拥有者,比如oracle
这个基本目录将是变量$ORACLE_BASE的值。
3.具体软件所在目录/pm/h/u/p/v/s,即$ORACLE_HOME的路径 -- /u01/app/oracle/product/11.2.0
/p/v 分别表示一个字符常量,一个版本号 比如 /product/11.2.0
s 表示产品类型,
db_1 表示数据库产品
asm表示ASM产品
agent表示客户代理产品
如果你不需要安装多套产品,s可以省略不要
4.特定管理文件的路径/pm/h/u/admin/d/a -- /u01/app/oracle/admin/库名/子目录名字
比如转储文件,告警日志文件,跟踪文件等
admin 固定字符
d 库名
a 子目录名字
adump 审计日志
bdump 后台进程日志和告警日志
cdump 核心转储日志
udump 用户进程日志
spfile 初试启动参数文件
5.特殊的3类关键文件/pm/q/d -- /u01/oracledata/库名
q 字符 便于与其他文件区分,通常为oradata
d 库名
这特殊的3类文件是:
controlfile控制文件
logfile日志文件
datafile数据文件
控制文件,日志文件,数据文件的目录与命名规则如下:
控制文件control01.ctl
日志文件 redo01.log
数据文件 t01.dbf,t表示表空间的名字