RedHat Linux 6.3 下安装Oracle11g R2记录

1、创建oracle用户与相关用户组

为什么要把这部分作为第一步呢,主要是为了避免后面创建文件以及解压缩等一系列步骤中,要将文件所有者修改为oracle才能在安装过程中有足够的权限创建文件或子目录(Linux的权限既带来了安全,也带来了各种不便,稍一走神就忘了赋权限)。

[root@Holmofy ~]# groupadd oinstall
[root@Holmofy ~]# groupadd dba
[root@Holmofy ~]# useradd -g oinstall -G dba oracle

注意上面 -g 和 -G 大小写有区分,-g表示主组,-G表示附属组

创建用户之后,可以使用passwd oracle命令对oracle用户的密码进行设置或修改。

 

2、配置内核参数

以下命令都需要root用户权限执行

如果安装Oracle用于生产的话,内核参数是一个很重要的优化系统性能的配置项,比如配置信号量,I/O,共享内存等参数配置,这个建议参考官方文档进行详细配置,官方文档对这方面有很详细的说明。如果你和我一样只是安装个Oracle用来学习那只需要使用官方文档中建议的最低配置就行。具体可以在/etc/sysctl.conf文件中,添加以下内核参数:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
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 = 1048586

为使上述配置生效而不重启系统,执行如下命令

# /sbin/sysctl -p

本例中我只增加了fs.aio-max-nr = 1048576 和 fs.file-max = 6815744 两个参数。

SHMMAX参数:Linux进程可以分配的单独共享内存段的最大值。一般设置为内存总大小的一半。这个值的设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值,因此对于安装Oracle数据库的系统,shmmax的值应该比内存的二分之一大一些。

# grep MemTotal /proc/meminfo

# cat /proc/sys/kernel/shmmax

上面的命令是检查系统内存的大小,以及当前shmmax的设置。

# echo 21474836480 > /proc/sys/kernetbl/shmmax

# sysctl -w kernel.shmmax=21474836480

# echo "kernel.shmmax=21474836480" >> /etc/sysctl.conf

这是设置shmmax参数的几种方法,这三种方式都可以将shmmax设置为20G。这个参数的修改可以不重启数据库。个人推荐使用第二种sysctl命令的方式。采用第三种方式需要执行sysctl –t操作或重启,但是为了确保下次重启后设置值仍然生效,第三种方式是必不可少的。前两种方式类似alter system set scope = memory,而第三种方式则类似alter system set scope = spfile。

SHMMNI参数:设置系统级最大共享内存段数量。Oracle10g推荐最小值为4096,可以适当比4096增加一些。

# cat /proc/sys/kernel/shmmni

# echo 4096 > /proc/sys/kernel/shmmni

# sysctl -w kernel.shmmni=4096

# echo "kernel.shmmni=4096" >> /etc/sysctl.conf

检查和设置方法如上,这和shmmax的修改方式没有区别,不在赘述。

SHMALL参数:设置共享内存总页数。这个值太小有可能导致数据库启动报错。很多人调整系统内核参数的时候只关注SHMMAX参数,而忽略了SHMALL参数的设置。这个值推荐设置为物理内存大小除以分页大小。

# getconf PAGE_SIZE

通过getconf获取分页的大小,用来计算SHMALL的合理设置值:

SQL> select 32*1024*1024*1024/4096 from dual;

32*1024*1024*1024/4096
----------------------
              8388608

对于32G的内存,4K分页大小的系统而言,SHMALL的值应该设置为8388608。

# cat /proc/sys/kernel/shmall

# echo 8388608 > /proc/sys/kernel/shmall

# sysctl -w kernel.shmall=8388608

# echo " kernel.shmall=8388608" >> /etc/sysctl.conf

查询和设置方法如上。

 

3、为oracle用户添加shell配置

为了提高Oracle软件性能,需要为Oracle用户添加以下shell配置:

Shell Limit 在limits.conf中的项 硬限制
打开文件描述符的最大数量 nofile 65536
单个用户可用的最大进程数 nproc 16384
进程堆栈段的最大大小 stack 10240

步骤如下:

  1. /etc/security/limits.conf文件,添加以下参数:
    oracle           soft    nproc   2047
    oracle           hard    nproc   16384
    oracle           soft    nofile  1024
    oracle           hard    nofile  65536
  2. /etc/pam.d/login文件中添加一行:
    session    required     pam_limits.so
  3. /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

4、开始正式安装

先用root用户修改安装包database的所有者和权限:

chown -R oracle:oinstall database
chmod -R 755 database

然后切换到oracle用户,使用图形界面登陆,进入到之前解压的安装包,运行runInstaller脚本开始安装

注意:一定要使用oracle用户登录图形界面,否则运行runInstaller会报错显示错误(因为后面使用图形化界面安装的,需要权限去运行图形界面程序)。

猜你喜欢

转载自blog.csdn.net/ezgame/article/details/81706799