vmware Workstation下安装redhat linux+oracle12c 之五 安装oracle 12c准备工作

在linux下安装oracle最麻烦的就是一些准备工作了,下面开始一步步教你们装

1、检查oracle 12c所需包

下面是关于Oracle 12c所需包,从官方文档看,不同版本的操作系统似乎有所不同, Red Hat Enterprise Linux需要安装下面一些包,很多很变态,大概看下就行,后面的数字都是版本号,别的版本基本上都可以,不用紧张。

binutils-2.17.50.0.6

compat-libstdc++-33-3.2.3

compat-libstdc++-33-3.2.3 (32 bit)

gcc-4.1.2

gcc-c++-4.1.2

glibc-2.5-58

glibc-2.5-58 (32 bit)

glibc-devel-2.5-58

glibc-devel-2.5-58 (32 bit)

ksh

libaio-0.3.106

libaio-0.3.106 (32 bit)

libaio-devel-0.3.106

libaio-devel-0.3.106 (32 bit)

libgcc-4.1.2

libgcc-4.1.2 (32 bit)

libstdc++-4.1.2

libstdc++-4.1.2 (32 bit)

libstdc++-devel 4.1.2

libXext-1.0.1

libXext-1.0.1 (32 bit)

libXtst-1.0.1

libXtst-1.0.1 (32 bit)

libX11-1.0.3

libX11-1.0.3 (32 bit)

libXau-1.0.1

libXau-1.0.1 (32 bit)

libXi-1.0.1

libXi-1.0.1 (32 bit)

make-3.81

sysstat-7.0.2

给你们一条命令,直接复制执行查看你缺少了什么包

[root@localhost /]# rpm -q binutils compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libXi make sysstat

binutils-2.20.51.0.2-5.36.el6.x86_64

package compat-libstdc++-33 is not installed

package gcc is not installed

package gcc-c++ is not installed

glibc-2.12-1.132.el6.x86_64

glibc-devel-2.12-1.132.el6.x86_64

package ksh is not installed

libaio-0.3.107-10.el6.x86_64

package libaio-devel is not installed

libgcc-4.4.7-4.el6.x86_64

libstdc++-4.4.7-4.el6.x86_64

package libstdc++-devel is not installed

libXext-1.3.1-2.el6.x86_64

libXtst-1.2.1-2.el6.x86_64

libX11-1.5.0-4.el6.x86_64

libXau-1.0.6-4.el6.x86_64

libXi-1.6.1-3.el6.x86_64

make-3.81-20.el6.x86_64

sysstat-9.0.4-22.el6.x86_64

这么多“not installed”太恶心了

试一下安装罗

[root@localhost /]# yum install compat-libstdc++-33

-----y,让它安装下去

Installed:

 compat-libstdc++-33.x86_64 0:3.2.3-69.el6                                               

Complete!

----我查看一下

[root@localhost /]# rpm -q compat-libstdc



package compat-libstdc is not installed

-----奇怪了,没有安装。。。。。你不要搞错。记住

-----注意:compat-libstdc包不等于compat-libstdc++-33

-----用下面语句查查,比较难懂。

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n' compat-libstdc++-33

或者下面简单点

[root@localhost /]# rpm -qcompat-libstdc++-33

compat-libstdc++-33-3.2.3-69.el6.x86_64

-----有了。

-----接下来把“not installed”的所有包都装上吧

[root@localhost /]# yum install gcc

[root@localhost /]# yum install gcc-c++

[root@localhost /]# yum install ksh

[root@localhost /]# yum installlibaio-devel

[root@localhost /]# yum installlibstdc++-devel


像这样再查看一遍。完美!


2、创建Oracle用户和用户组

[root@localhost /]# groupadd dba

[root@localhost /]# groupadd oinstall

[root@localhost /]# useradd -g oinstall -Gdba oracle

[root@localhost /]# id oracle

uid=501(oracle) gid=502(oinstall)组=502(oinstall),501(dba)

[root@localhost /]# passwd oracle

-------这里自行输入oracle用户的密码

更改用户oracle的密码

新的密码:

无效的密码:它基于字典单词

无效的密码:过于简单

重新输入新的密码:

passwd所有的身份验证令牌已经成功更新。


3、创建安装目录

[root@localhost /]# mkdir -p /u01/app/oracle

[root@localhost /]# chown -R oracle:oinstall /u01/app/oracle

[root@localhost /]# chmod -R 775/u01/app/oracle

[root@localhost ~]# mkdir -p /u01/app/oraInventory

[root@localhost ~]# chown -R oracle:oinstall /u01/app/oraInventory

[root@localhost ~]# chmod -R 775 /u01/app/oraInventory

----创建oraInventory目录,所以必须先创建该用户并授权


4、关闭selinux防火墙

[root@localhost /]# /usr/sbin/sestatus

SELinux status:                 enabled

SELinuxfs mount:                /selinux

Current mode:                   enforcing

Mode from config file:          enforcing

Policy version:                 24

Policy from config file:        targeted

----可以看到SELinux status:enabled

[root@localhost /]# vi /etc/sysconfig/selinux

# This file controls the state of SELinuxon the system.

# SELINUX= can take one of these threevalues:

#    enforcing - SELinux security policy is enforced.

#    permissive - SELinux prints warnings instead of enforcing.

#    disabled - No SELinux policy is loaded.

SELINUX=enforcing

# SELINUXTYPE= can take one of these twovalues:

#    targeted - Targeted processes are protected,

#    mls - Multi Level Security protection.

SELINUXTYPE=targeted

-----把SELINUX=enforcing 改为SELINUX=disabled

[root@localhost /]#reboot

----让修改后生效,需重启

[root@localhost ~]#  /usr/sbin/sestatus

SELinux status:                 disabled

[root@localhost ~]#  /usr/sbin/getenforce

Disabled

[root@localhost ~]#

----查看一下,确实都disabled了


5、修改系统内核参数

这部分很关键,很复杂,但是安装oracle网上的资料,修改的也不多。

首先备份

[root@localhost ~]# cp /etc/sysctl.conf /etc/sysctl.conf.bak

---备份完了再来看看

[root@localhost ~]# vi /etc/sysctl.conf

#add by test

kernel.shmmni = 4096

kernel.sem =250 32000 100 128

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 262144

net.ipv4.ip_local_port_range =9000 65500

fs.file-max=65536

fs.aio-max-nr=1048576

修改完成后保存,然后运行

[root@localhost ~]#sysctl -p

-----使之生效

加上这段,我对了一下,内存4G的加上面这些就够了

内核参数的一些设置建议,可以参考下面资料:很长,很难懂,可以忽略不看


kernel.shmmax

关于内核参数kernel.shmmax,oracle 建议,kernel.shmmax的值不能少于物理内存的一半,而且要大于Oracle中sga-max-size的值,否则会造成oracle性能下降

一般32bit操作系统,直接设置为系统支持的最大内存即可,64bit操作系统设置大于sga-max-size的值即可

如:当前内存为2G 则kernel.shmmax= 2*1024*1024=2097152

当前内存为8G则kernel.shmmax = 7*1024*1024=7340032

Kernel.shmall

Shmall指系统一次可以使用的共享内存段的最大数量,以页为单位。Oracle默认设置为 kernel.shmall = 2097152

即最大8G(2097152*4/1024/1024),(在调整SGA时需要注意,SGA大小设置不可超过该值),根据系统内存大小和使用的不同可以参考如下:设置的一般规律

kernel.shmall= 8G/4k=8388608k/4k=2097152    ---内存8G

kernel.shmall= 16G/4k=16777216k/4k=4194304    ---内存16G

kernel.shmall= 32G/4k=33554432k/4k=8388608    ---内存32G

(RedHat linux系统中页大小为4096即4K,实际环境以getconfPAGE_SIZE结果为准)

kernel.shmmni

shmmni 指系统共享内存段的最大数量

oracle设置默认值为4096,一般是足够用了,不需要调整

文件句柄数的相关内核参数设置

fs.file-max

fs.file-max指系统能够打开最大的文件句柄数

oracle建议设置为65536,一般不用修改

信号的相关内核参数设置

kernel.sem

kernel.sem是指 semmsl,semmns,semopm,semmni这4个参数

semmsl 指每个线号集的最大信号数,Oracle建议是设置为oracle的最大进程数+10

semmni 指整个系统的信号集的最大数量

semmns 指整个系统的信号总数,也就是semmni*semmsl的结果

semopm 指每个semop系统调用可以执行的信号操作的最大数量

oracle默认设置

semmsl=250

semmns=3200

semopm=100

semmni=128

即kernel.sem= 250 3200100 128

例:在oracle  ora.init文件参数中设置PROCESSES参数为5000

则semmsl=5010,semmni=128,semmns=semmsl*semmni=641280

另外semopm建议设置等于semmsl值即5010

那么kernel.sem=5010641280 5010 128

网络相关的内核参数设置

net.core.rmem_default

net.core.rmem_default指网络套接字的默认接收缓冲区的大小,oracle建议设置为265K即262144

net.core.rmem_max

net.core.rmem_max指网络套接字的最大接收缓冲区的大小,oracle10g及以前版本建议设置为256k即262144

oracle11g建议设置为4M 即4194304

net.core.wmem_default

net.core.wmem_default指网络套接字的默认发送缓冲区的大小,oracle建议设置为265K即262144

net.core.wmem_max

net.core.wmem_max  指网络套接字的最大发送缓冲区的大小,oracle10g及以前版本建议设置为256k即262144

oracle11g建议设置为1M即1048576

net.ipv4.ip_local_port_range

net.ipv4.ip_local_port_range,指本地的允许打开随机端口范围

oracle10g前建议端口范围为102465000,oracle11g建议端口范围为:

900065500 并忽略oracle安装程序任何关于这个参数的警告

AsynchronousI/O相关的内核参数设置

fs.aio-max-nr

fs.aio-max-nr指系统允许的最大的异步IO请求大小

oracle默认设置为1M即1048576,一般不用更改



6、设置用户限制

/etc/security/limits.conf中添加如下配置。原来的里面是空的,行前面是#号都是注释

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack 10240

oracle hard stack 10240

Add the following line to the"/etc/pam.d/login" file,

if it does not already exist.

session required/lib/security/pam_limits.so

session required pam_limits.so

Add the following to

/etc/profile if Oracle user will use thebash shell.

if [ $USER = "oracle" ]; then

ulimit -u 16384

ulimit -n 65536

fi


7、配置环境变量

首先切换到oracle账户 ,编辑修改主目录下 .bash_profile

[root@localhost ~]# su - oracle

[oracle@localhost ~]$

------注意符号的改变

[oracle@localhost ~]$ vi /home/oracle/.bash_profile

-----隐藏文件,直接vi吧,替换成下面这段


#add testtest

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; exportORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1;export ORACLE_HOME

ORACLE_SID= testtest; export ORACLE_SID

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:$PATH; export PATH

PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export CLASSPATH

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi



[oracle@localhost ~]$ source .bash_profile

------使配置生效

-bash: testtest: command not found  是因为我上面的文本中testtest前面多了空格!删掉空格就可以了。

有以下不爽的东西,改掉它

[root@localhost ~]# su - oracle

-bash-4.1$

vi /home/oracle/.bash_profile

加入export PS1='[\u@\h \W]\$'

[root@localhost ~]# su - oracle

[oracle@localhost ~]$






猜你喜欢

转载自blog.csdn.net/cd4836/article/details/78521499