理解RHEL上安装oracle的配置参数

无论安装什么版本的oracle,在安装之前,都需要配置 /etc/pam.d/login   /etc/profile   /etc/security/limits.conf这三个文件

那这三个文件究竟是做什么用的呢?答案就是设置对oracle用户的shell limits。下面就仔细分析一下这几个文件

首先需要编辑/etc/security/limits.conf文件(用户限制配置文件)

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

然后编辑/etc/pam.d/login文件   (将配置文件加入到登录验证模块)

Session    required    pam_limits.so

最后编辑/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

要弄明白这些文件的作用,我们首先需要了解PAM验证机制

一、理解PAM验证模块机制

PAM的起源和功能

Linux PAM(插件式认证模块,Pluggable Authentication Modules)

为安全起见,计算机系统只有经过授权的合法用户才能访问。这就需要程序提供鉴别登陆用户身份信息的代码。原本实现鉴别功能的代码是作为应用程序的一部分,这种情况下,如果发现所用算法存在某些缺陷或想采用另一种鉴别方法时,用户不得   不重写然后重新编译原本的整个程序。很显然这种鉴别方式缺乏灵活性。因此,人们开始寻找一种更好的鉴别方案:一方面,要把鉴别功能代码从应用中独立出来,形成独立模块,单独进行维护,另一方面,为这些鉴别模块建立标准API,以便各应用程序能方便地使用他们提供的各种功能。插件式鉴别模块(PAM)机制采用模块化设计和插件功能,使得我们可以轻易地在应用程序中插入新的鉴别模块或替换原先的组件,而不必对应用程序做任何修改,从而使软件的定制、维持和升级更加轻松

1995年SUN公司提出PAM方式,实现了以上要求,达到了应用程序和鉴别机制的分离,并且PAM可以集成多种鉴别机制,轻松实现应用程序的鉴别部分的灵活性。

除了具体实现不同外,各种版本 Unix 系统上的 PAM 的框架是相同的,所以我们在这里介绍的 Linux PAM 框架知识具有普遍性。因此在本文介绍其框架的过程中可以看到,我们并没有刻意区分 PAM 与 Linux-PAM 这两个术语。

PAM的分层体系结构

PAM 为了实现其插件功能和易用性,它采取了分层设计思想:让各鉴别模块从应用程序中独立出来,然后通过PAM API作为两者联系的纽带,这样应用程序就可以根据需要灵活地在其中"插入"所需鉴别功能模块,从而真正实现了"鉴别功能,随需应变"。PAM体系结构如下图所示

在rhel中,

PAM的验证模块,存放位置在/lib/security,如pam_limits.so、pam_group.so等

PAM验证模块的配置文件,存放位置 /etc/security中,如pam_limits.so验证模块对应的配置文件limits.conf,pam_group.so验证模块对应的配置文件group.conf。

PAM验证模块和应用程序的对应关系,存放位置/etc/pam.d文件夹。通过修改此文件夹下的配置文件,可以为应用选定具体的验证模块

二、理解PAM验证模块与应用程序对应关系的配置文件

要使/etc/security/limits.conf 文件配置生效,必须要确保 PAM验证模块pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:
         session  required  /lib/security/pam_limits.so

64位地址是:/lib64/security/pam_limits.so 否则本地即使输入正确密码也无法登陆。

PAM验证模块与应用程序对应关系的配置文件,即/etc/pam.d下的文件,这里以/etc/pam.d/login为例进行语法分析,/etc/pam.d/目录下的所有文件的语法相同。

Pam.d文件夹下配置文件的语法为

Service  model_type  control_flag  model_path  options

Service :使用PAM验证模块的应用程序,如ftp、telnet、login等。其中other一行指本文件中没有单独列出的其他应用程序

model_type :应用程序所用的PAM 验证模块的类型,主要有以下几种

auth :鉴别类模块            account:账户类模块

session:会话类模块       password:口令类模块

每行只能指定一中类型模块,如果应用程序需要多种模块组合使用,则需要在多行中分别规定。

Control_flag:对模块验证成功或者失败的结果的处理情况

Required:该模块验证成功是用户通过鉴别的必要条件。只有当应用程序对应的所有带有required标记的模块全部成功后,该应用程序才能通过 鉴别。同时,如果任何带有required标记的模块出现了错误,PAM并不立刻将错误信息返回给应用程序,而是在所有模块都调用完毕后,再将错误信息返回给调用它的应用程序。

Requisite:与required相似,只有带有此标记的模块返回成功后,用户才能通过鉴别,不同之处在于,一旦失败就不再执行堆中后面的其他模块,并且鉴别过程到此结束。

Optiona: 即使该模块验证失败,用户仍能通过鉴别。在PAM体系中,带有该标记的模块失败后,将继续处理下一模块。

Sufficiet:该模块取得成功是用户通过鉴别的充分条件,也就是说只要标记sufficient的模块一旦成功,那么PAM便立即向应用程序返回成功而不必尝试任何其他模块。当标记为sufficient的模块失败时,sufficient模块当做 optional对待。

Model_path:指出PAM模块的位置。

Options:用于向特定模块传递相关的选项,然后由模块分析解释这些任选项。比如使用此栏打开模块调试,或向某模块传递诸如超时值之类的参数等。另外,它还用于支持口令映射技术。

三、理解PAM验证模块的配置文件

PAM验证模块的配置文件放在/etc/security/下,这里只介绍limits.conf文件。

Limits文件限制用户进程解析

PAM验证模块/lib/security/pam_limits.so主要是限制用户会话过程中对各种系统资源的使用。其对应的配置文件/etc/security/limits.conf其格式为

Domain  type item

用户名/组名软/硬限制 项目

Domain:指被限制的用户名或组

Type

Soft:当前系统生效的设置值(soft限制不能比hard限制高)

Hard:系统中所能设置的最大值

-      :同时设置了soft和hard的值

Item:限制用户的资源类型

core——core文件大小(KB)

data——最大数据大小(KB)

fsize——最大文件大小(KB)

memlock——最大可用内存空间(KB)

nofile——最大可以打开的文件数量

rss——最大可驻留空间(KB)

stack——最大堆栈空间(KB)

cpu——最大CPU使用时间(MIN)

nproc——最大运行进程数

as——地址空间限制

maxlogins——用户可以登录到系统最多次数

locks——最大锁定文件数目

四、理解环境变量文件用户进程限制

而最后对于环境变量文件/etc/profile的更改也是为了修改对当前用户的进程限制。

Ulimit:设定shell启动进程所占用的资源。

-n:设置内核可以同时打开的文件描述符的最大值。

-p:设置管道缓冲区的最大值。

-u:设置用户最多可开启的程序数目。

Linux默认限制了系统用户的最大进程数。为了提高性能,可以根据设备资源情况,设置各linux用户的最大进程数。其中一些设置也可以把参数设置成unlimited,即不加限制。如

数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited。
虚拟内存:ulimit -v unlimited

此外,如果单方面在这个位置为用户设置一些参数,有可能会遇到错误提示如下:

ulimit: max user processes: cannot modifylimit: 不允许的操作

ulimit: open files: cannot modify limit: 不允许的操作

这种情况是因为liunx对用户有默认的ulimits限制,这个默认的限制是保存在/etc/security/limits.conf中,其中的hard配置是个上限,超出上限的修改就会出“不允许的操作”这样的错误,这就是为什么前面要修改limits.conf文件的原因

时间: 2024-10-10 13:21:48

理解RHEL上安装oracle的配置参数的相关文章

理解RHEL上安装oracle的配置参数 :/etc/security/limits.conf, /etc/profile, /etc/pam.d/login

无论安装什么版本的Oracle,在安装之前,都需要配置 /etc/pam.d/login   /etc/profile   /etc/security/limits.conf这三个文件 那这三个文件究竟是做什么用的呢?答案就是设置对oracle用户的shell limits.下面就仔细分析一下这几个文件 首先需要编辑/etc/security/limits.conf文件(用户限制配置文件) oracle soft nproc 2047 oracle hard nproc 16384 oracle

RHEL5 X86-64上安装Oracle 11gR2示例与总结

进入Oracle DBA行业也有好几年了,但是说到安装Oracle的经验,我还真不是特别多,印象中刚开始每次安装都有点磕磕碰碰,随着接触Oracle的时间越来越长,各方面的原理.机制也都有一定的了解后,现在安装Oracle已经很少会遇到问题了.基本上我把自己安装Oracle的方式可以归为下面三个阶段 刚接触和学习Oracle,安装完全没有头绪,只能按照网上或者书上有截图的方式一步一步照样安装,出错后,只能协助,然后重新安装 接触Oracle一段时间以后,安装的基本原理.步骤也都了解了,一般都是再

【翻译自mos文章】在RHEL7 or OEL7上安装oracle 11.2.0.4 db时的要求

在RHEL7 or OEL7上安装oracle 11.2.0.4 db时的要求 来源于: Requirements for Installing Oracle 11.2.0.4 RDBMS on RHEL7 or OL7 64-bit (x86-64) (文档 ID 1962100.1) 适用于: Oracle Database - Standard Edition - Version 11.2.0.4 to 11.2.0.4 [Release 11.2] Oracle Database - E

VM虚拟机下在LINUX上安装ORACLE 11G单实例数据库

VM虚拟机下在LINUX上安装ORACLE 11G单实例数据库 1.环境及安装前规划:虚拟机及OS如下 环境:VMware Wordstation ACE版 6.0.2 操作系统:OracleLinux-R5-U8-Server-i386-dvd    3.2G 安装操作系统,这里需要注意的是磁盘空间要预留足够. 我的规划是: 虚拟机分配1024M内存,当然如果主机内存足够,安装时内存设置2048M可以更快. 虚拟机分配一块磁盘,30G磁盘空间. /boot 100M ext3 /    20G

在Linux系统上安装Oracle数据库

前期准备:我用的是虚拟机上的CentOS 64位系统.所以需要设置网卡,时间,EPEL源,安装一些必备的软件. 1.1在虚拟机上安装好Linux系统后选择虚拟机设置->网络适配器->网络连接->桥接模式 1.2然后进入系统配置网卡. 永久修改: vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0(设备名称) TYPE=Ethernet(网络类型) ONBOOT=yes(开机自启动) BOOTPROTO=static(静态ip)

RAC分解步骤之一,在oracle linux 4u4上安装oracle 10.2.0.1.0操作日志

练习oracle的rac组建过程,第一步,先练习4u4上安装oracle 10.2.0.1.0.直接安装rac,有些难度.从简单的做起.总RAC步骤,参照小布老师的RAC组建. 1. 启动vc,登陆vsphere 5.1 , 2. 新建一个虚拟机,Redhat 4 32bit 兼容的虚拟机,内存1G,硬盘30G.移除软驱,把光驱选择为ISO镜像文件. 3. 启动虚拟机,选择英文,选择美式键盘,选择custom,选择自己手动分区.分区为2个,一个swap,2100M,强制主分区,另一个为ext3,

Ubuntu上安装oracle java 7

1.通过PPA 这种安装方式特点: 1.安装的java含jdk.jre和浏览器插件 2.自动识别64bit或者32bit 3.自动升级为最新版本 4.支持 Ubuntu 13.10, 13.04, 12.10, 12.04 and 10.04 或  Linux Mint 1.1在终端中执行安装命令: sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-

如何在CentOS/RHEL上安装或升级新的内核版本

Linux内核版本 Linux内核版本分为主线.稳定和长期版本.(所有内核版本都可以在内核开发官方网站https://www.kernel.org上获取)目前我们看到最新的稳定内核版本为4.10.12. 主线版本代表整个Linux内核的一个树干,新的主线版本每2-3个月发布一次,所有的新功能及特性都将会包含主线版本中.稳定内核则是在主线版本中,被认为是"稳定的"得出.稳定内核的任何错误修复都将从主线树中返回,也就是主线内核出现的任何错误(包括之前的任何旧版本内核的错误和BUG)在得到修

CentOS上安装Oracle XE指南

引言: 在Centos上安装oracle XE主要用来解决学习和测试的用处,虽然简单,但也是涉及到了诸多的步骤和细节问题. 1.  下载Oracle XE 访问http://www.oracle.com/technetwork/cn/database/database-technologies/express-edition/downloads/index.html, 根据操作系统,选择版本下载即可. 2.  解压缩Oracle XE安装程序 unzip oracle-xe-11.2.0-1.0