专栏首页bisal的个人杂货铺Linux下安装Oracle的过程和涉及的知识点-系列3

Linux下安装Oracle的过程和涉及的知识点-系列3

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

chown -R ora11g:dba /opt/app/ora11g

创建Oracle安装路径/opt/app/ora11g,-R表示修改该目录所属的用户和组,包括路径下的子文件夹。

7、系统内核参数

官方文档给出的内核参数建议是:

Parameter

Minimum Value

File

semmsl semmns semopm semmni

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 shmmax.

/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

若需要修改内核参数,可以编辑/etc/sysctl.conf。

修改之后使用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

这里需要修改/etc/security/limits.conf,

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的验证,验证的规则就是在这里面定义的,如果符合才能让你登陆。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux下安装Oracle的过程和涉及的知识点-系列1

    Linux下安装Oracle的经历也许在很多人眼里就是一个日常的再普通不过的操作,但实际其中蕴含着大量的操作系统、Oracle、Linux指令操作等知识点。因为...

    bisal
  • Centos能不能替换RHEL?

    这是来自杨大师的文章《Centos能不能替换RHEL?》,普及了下Linux的版本知识。

    bisal
  • PLUSTRACE角色

    AUTOTRACE Option in SQL*Plus (文档 ID 43214.1)中说明了要使用AUTOTRACE就必须有PLUSTRACE角色。

    bisal
  • centos7查看系统版本,查看机器位数x86-64

    前言 由于不经常使用linux,每当使用的时候就是安装软件,安装软件的时候就要选择安装包平台,是32位的还是64位的。这时候突然发现不知道怎么查,于是百度。虽然...

    Ryan-Miao
  • 【DevOps运维】构建面向交付的自动化运维新思维

    本篇是上一篇的延续。很早之前,我提到过,运维的本质其实是在做交付,没有做到面向用户的交付,不是好运维,IT也不是一个好IT。如下图:

    用户1593318
  • 微博大V@爱可可:arXiv论文怎么读?

    用户1737318
  • SFFAI分享 | 方杰民:Recent Advances and Highlights of NAS【附PPT与视频资料】

    方杰民,华中科技大学电子信息与通信学院媒体与通信实验室研究生在读,师从王兴刚副教授,地平线平台与技术部算法实习生,主要研究方向为网络结构搜索、模型结构优化。

    马上科普尚尚
  • pthread_create、readlink、getpid等函数的学习与总结

    int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr...

    阳光岛主
  • ICLR2020|商汤提出新目标检测NAS方法:算力重分配(CRNAS)

    介绍一下我在商汤科技&悉尼大学AutoML组ICLR2020最新文章,文章也会分享一些我对NAS的一些浅显的个人看法,希望能够对大家有所启发。

    Amusi
  • 使用Jenkins pipeline流水线构建docker镜像和发布

    对于Pipeline, Definition选择 "Pipeline script from SCM".

    Ryan-Miao

扫码关注云+社区

领取腾讯云代金券