4、磁盘空间
11g R2要求/tmp空间不能少于1G,若不满足要求,可以做以下两件事情之一:
(1)、删除/tmp的空间,以满足磁盘要求。
(2)、设置TMP和TMPDIR环境变量。
使用df -h查看磁盘空间,11g R2要求的空间大小是:
Installation Type | Requirement for Software Files (GB) |
---|---|
Enterprise Edition | 4.7 |
Standard Edition | 4.6 |
Installation Type | Requirement for Data Files (GB) |
---|---|
Enterprise Edition | 1.7 |
Standard Edition | 1.5 |
5、依赖包
11g R2对Linux x86_64的依赖包要求是:
binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)
当前实验的版本缺少如下包:
compat-libstdc++
gcc-c++
libstdc++-devel
libaio-devel
另外,若需要使用ODBC,也需要安装unixODBC包。
可以使用yum -y install libaio-devel*的方式安装所需的依赖包。
通过实验,看到上述依赖包有很多前缀一样但后缀分为x86_64和i686的,其实只需要下载x86_64就可以了。
依赖包这块的安装是否全,决定了安装Oracle时是否会出现缺少依赖包的问题。
王道就是尽量安装全官方要求的依赖包,yum时也会找到该包当前的最新版本。
6、创建安装路径、用户、用户组:
(1)、创建dba组
groupadd -g 101 dba
这里可以指定gid是101,也可以不指定使用默认值。
可以使用grep dba /etc/group查看是否建立过dba组。
(2)、创建oinstall组
groupadd oinstall
这个组如果不建立也不会影响当前Oracle的安装,oinstall组一般是用于控制软件安装、补丁安装的,dba组一般是用于控制数据库创建,数据库管理等的,当然组名不一定必须是dba或oinstall,另外以上权限也可以都授权给dba组,这样只需要创建一个dba组就可以了。
可以使用more /etc/oraInst.loc查看是否已经建立过Oracle Inventory group,例如:
inventory_loc=/opt/app/oraInventory
inst_group=oinstall
(3)、创建用户
useradd -g oinstall -G dba ora11g
这里-g表示用户ora11g指定主group是oinstall,-G表示用户ora11g指定其他用户(副)group是dba。
一个用户只能属于一个主group,但可以属于多个其他用户组。
可以使用id ora11g查看用户所属的主group和副group等信息。也可以使用groups ora11g查看所属组。
使用passwd ora11g为用户创建密码。
(4)、创建安装目录,配置权限
mkdir -p /opt/app/ora11g
创建Oracle安装路径/opt/app/ora11g,-R表示修改该目录所属的用户和组,包括路径下的子文件夹。
7、系统内核参数
官方文档给出的内核参数建议是:
Parameter | Minimum Value | File |
---|---|---|
semmsl
|
250 32000 100 128 |
/proc/sys/kernel/sem |
shmall |
2097152 | /proc/sys/kernel/shmall |
shmmax |
Minimum: 536870912 Maximum: A value that is 1 byte less than the physical memory Recommended: More than half the physical memory See My Oracle Support Note 567506.1 for additional information about configuring |
/proc/sys/kernel/shmmax |
shmmni |
4096 | /proc/sys/kernel/shmmni |
file -max |
6815744 | /proc/sys/fs/file-max |
ip_local_port_range |
Minimum: 9000 Maximum: 65500 |
/proc/sys/net/ipv4/ip_local_port_range |
rmem_default |
262144 | /proc/sys/net/core/rmem_default |
rmem_max |
4194304 | /proc/sys/net/core/rmem_max |
wmem_default |
262144 | /proc/sys/net/core/wmem_default |
wmem_max |
1048576 | /proc/sys/net/core/wmem_max |
aio-max-nr |
1048576 Note: This value limits concurrent outstanding requests and should be set to avoid I/O subsystem failures. |
/proc/sys/fs/aio-max-nr |
如果需要修改,建议记录修改的参数项和值。
可以使用如下命令查看对应的内核参数值:
Parameter | Command |
---|---|
semmsl , semmns , semopm , and semmni |
# /sbin/sysctl -a | grep sem This command displays the value of the semaphore parameters in the order listed. |
shmall , shmmax , and shmmni |
# /sbin/sysctl -a | grep shm |
file-max |
# /sbin/sysctl -a | grep file-max |
ip_local_port_range |
# /sbin/sysctl -a | grep ip_local_port_range |
rmem_default |
# /sbin/sysctl -a | grep rmem_default |
rmem_max |
# /sbin/sysctl -a | grep rmem_max |
wmem_default |
# /sbin/sysctl -a | grep wmem_default |
wmem_max |
# /sbin/sysctl -a | grep wmem_max |
修改之后使用sysctl -p生效,如下是增加和修改的内容:
官方还建议对于11g R2需要设置一个额外的参数:fs.aio-max-nr。
8、修改Oracle软件安装用户的资源限制
官方建议:
Resource Shell Limit | Resource | Soft Limit | Hard Limit |
---|---|---|---|
Open file descriptors |
nofile |
at least 1024 |
at least 65536 |
Number of processes available to a single user |
nproc |
at least 2047 |
at least 16384 |
Size of the stack segment of the process |
stack |
at least 10240 KB |
at least 10240 KB, and at most 32768 KB |
ora11g soft nproc 2047
ora11g hard nproc 16384
ora11g soft nofile 1024
ora11g hard nofile 65536
注:但我尚未设置stack这个(11g R2建议配置),不知道是否有影响。
type中:
soft指的是当前系统生效的设置值。
hard表明系统中所能设定的最大值。
soft的限制不能比hard限制高。
用-就表明同时设置了soft和hard的值。
resource中:
nofile表示打开文件的最大数目。
nproc表示进程的最大数目。
查看file descriptor的soft和hard的最小、最大限制:ulimit -Sn和ulimit -Hn。
查看用户可用进程数的soft和hard的最小、最大限制:ulimit -Su和ulimit -Hu。
查看stack的soft的最大、最小限制:ulimit -Ss和ulimit -Hs。
对于以上limits.conf文件的修改,必须重新登陆才能生效,再继续下面的安装之前,最后重新登陆。
知识点4:limits.conf文件内容:
soft core 0 禁止创建core文件
何谓core文件,当一个程式崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是个内存映象(同
时加上调试信息),主要是用来调试的。core文件是个二进制文件,需要用相应的工具来分析程式崩溃时的内存映像。系统默认
core文件的大小为0,所以没有创建。
能用ulimit命令查看和修改core文件的大小。
$ulimit -c
0
$ ulimit -c 1000
$ ulimit -c
1000
-c 指定修改core文件的大小,1000指定了core文件大小。也能对core文件的大小不做限制,如:
#ulimit -c unlimited
#ulimit -c
unlimited
如果想让修改永久生效,则需要修改设置文件,如 .bash_profile、/etc/profile或/etc/security/limits.conf。
hard rss 10000 非root用户最多使用10M内存
hard nproc 20 最多进程数限制在20
limits.conf的工作原理:
limits.conf的后端是这样工作的:limits.conf是pam_limits.so的设置文件,然后/etc/pam.d/下的应用程式调用pam_***.so模块。譬如说,当用户访问服务器,服务程式将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。
例如:限制admin用户登录到sshd的服务不能超过2个:
在/etc/pam.d/sshd 中添加 session required pam_limits.so。
在/etc/security/limits.conf中添加 admin - maxlogins 2。
9、/etc/pam.d/login添加如下内容
session required pam_limits.so
原因如上所述,要使 limits.conf 文件配置生效,必须要确保pam_limits.so文件被加入到启动文件中。
如上所述,可以用ulimit -n 32768设置最大描述符,不过只对当前会话有用,而且要root,或者修改/etc/security/limits.conf,但要重启。
pam.d指的是验证登陆配置,存放着与PAM模块有关安全策略配置文件,如上所述,修改最大文件打开数的配置过程中,需要修改安全策略,加载pam_limits.so模块。login是登陆配置文件。简单说这就是Linux操作系统的登陆配置文件。每次登陆系统的时候或修改密码的时候都要先经过pam的验证,验证的规则就是在这里面定义的,如果符合才能让你登陆。