准备工具

操作系统:CentOS-6.5-x86_64
oracle
安装包:

linux_11gR2_database_1of2
linux_11gR2_database_2of2

pdksh-5.2.14-37.el5_8.1.x86_64 这个包蛮重要的

一:修改主机名和添加主机名与IP对应记录

[root@oracle03~]# hostname

oracle03

[root@oracle03 ~]# cat /etc/hosts

127.0.0.1   localhostlocalhost.localdomain localhost4 localhost4.localdomain4

::1         localhostlocalhost.localdomain localhost6 localhost6.localdomain6

192.168.1.153 oracle03     

[root@oracle03 ~]#

 

二:Swap 分区否则一会检测的时候会通不过

方法:用文件作为Swap分区,操作如下
1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。

# dd if=/dev/zeroof=/root/swapfile bs=1M count=1024

2.格式化为交换分区文件:

# mkswap/root/swapfile #建立swap的文件系统


3.启用交换分区文件:

# swapon/root/swapfile #启用swap文件


4.使系统开机时自启用,在文件/etc/fstab中添加一行:

/root/swapfile swapswap defaults 0 0

[root@oracle03 ~]#free  -m   #查看空闲的空间

[root@oracle03 ~]#ddif=/dev/zero of=/root/swapfile bs=1M count=8192 #这里的8192是添加空间的大小,可以设置1024等等

[root@oracle03 ~]# mkswap /root/swapfile

[root@oracle03 ~]# swapon /root/swapfile

[root@oracle03~]# cat /etc/fstab  #添加到最后

/root/swapfile          swap                    swap    defaults        0 0

                            spacer.gif

 

[root@oracle03 ~]#free  -m  #可以在查看下

 

 

 

三:关闭Selinux
[root@oracle03 ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/"/etc/selinux/config  
[root@oracle03 ~]# setenforce 0

或者修改配置文件:

[root@oracle03 ~]# cat /etc/selinux/config

 

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinuxsecurity policy is enforced.

#     permissive - SELinuxprints warnings instead of enforcing.

#     disabled - NoSELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targetedprocesses are protected,

#     mls - Multi LevelSecurity protection.

SELINUXTYPE=targeted

[root@oracle03 ~]# setenforce 0

 

四:安装依赖包

[root@oracle03 ~]#  yuminstall -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-develgcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++libstdc++-devel make numactl sysstat libXp unixODBC unixODBC-devel

 

安装pdksh(该程序包未被纳入CentOS的安装盘中)-------必须安装

[root@oracle03~]rmp -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

『特殊说明』:
1pdksh-5.2.14-37.el5.x86_64.rpm :此安装包yum源中没有,但必须,可通过其他方式下载后手工安装;
2)虽然安装了依赖包,在安装oracle过程时依然会校验出未安装以上某个包,则需要通过:rpm -qagcc(校验未通过的包名)一个个都检查核实。

 

 

 

五:修改内核参数

 [root@oracle03 ~]# vi/etc/sysctl.conf  ---在末尾添加#oracle下面的上面两行作为参照

# Controls the maximum number of shared memory segments, inpages

kernel.shmall = 4294967296

 

#oracle

fs.file-max = 6815744

fs.aio-max-nr=1048576

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

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 = 1048576

 

截图:

spacer.gif

 

执行立即生效

[root@oracle03 ~]# sysctl -p (备注:用于输出配置后的结果,如果有错误会提示)

如:(1)修改 linux 内核文件 sysctl  -P 报错
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
 
解决方法如下:
[root@oracle03 ~]# modprobe bridge
[root@oracle03 ~]# lsmod|grep bridge

截图:

spacer.gif

 

六:修改系统资源限制(打开进程数和文件数)
[root@oracle03 ~]# vi /etc/security/limits.conf#
末尾添加如下

# End of file

 

#oracle

 

racle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

 

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

spacer.gif

 

[root@oracle03 ~]# vi /etc/pam.d/login

# pam_selinux.so open should only be followed by sessions to beexecuted in the user context

session    required     pam_selinux.so open

session    required     pam_namespace.so

session    required     pam_limits.so  #只添加了这一行

session    optional     pam_keyinit.so force revoke

session    include      system-auth

-session   optional     pam_ck_connector.so

spacer.gif

 

                                             

七:创建用户和组
[root@oracle03 ~]# groupadd oinstall 
[root@oracle03 ~]# groupadd dba 
[root@oracle03 ~]# groupadd oper 
[root@oracle03 ~]# useradd -u600 -g oinstall oracle 
[root@oracle03 ~]# usermod -G dba,oper oracle
[root@oracle03 ~]# id oracle
[root@oracle03 ~]# passwd oracle

八:
创建安装目录并授权
[root@oracle03 ~]# mkdir /u01 
[root@oracle03 ~]# mkdir /u02 
[root@oracle03 ~]# chown -R oracle:oinstall /u01
[root@oracle03 ~]# chown -R oracle:oinstall /u02
[root@oracle03 ~]# su oracle
[root@oracle03 ~]# mkdir -p /u01/app/oracle/product/11.2.0/db_1
[root@oracle03 ~]# mkdir -p /u02/oradata
[root@oracle03 ~]# mkdir -p /u02/oradata/oracledb #oracledb
为你数据库实例名

-------------下面的可直接复制粘贴

groupaddoinstall

   groupadd dba

   groupadd oper

   useradd -u600 -goinstall oracle

   usermod -G dba,operoracle

   id oracle

   passwd oracle

 

   mkdir /u01

   mkdir /u02

   chown -Roracle:oinstall /u01

   chown -Roracle:oinstall /u02

   su oracle

   mkdir -p/u01/app/oracle/product/11.2.0/db_1

   mkdir -p /u02/oradata

   mkdir -p/u02/oradata/oracledb

 

-------------

此步骤:注意oracle建立好之后最好登录进去检查看看可否正常登录。

 

九:设置oracle环境变量

[root@oracle03 ~]# vi /home/oracle/.bash_profile

# User specific environment and startup programs

 

PATH=$PATH:$HOME/bin

 

export PATH

 

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

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

LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH

ORACLE_SID=oracledb; export ORACLE_SID

ORA_NLS33=$ORACLE_HOME/nls/admin/data; export ORA_NLS33

NLS_LANG=american_america.zhs16gbk;export NLS_LANG

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

~                                             

spacer.gif

 

[root@oracle03 ~]# source /home/oracle/.bash_profile(使配置立即生效)
[root@oracle03 ~]# env
(检查环境变量设置是否OK

 

十:上传安装文件
上传安装包到:/home/oracle/Downloads目录

[root@oracle03 ~]##mkdir –p /home/oracle/Downloads  --此步骤千万小心不可提前做,要么就进入到oracle的目录里再创建。因为提前在/home下创建会以为是用户,导致没有.bash*文件。如果不小心创建了,那么就直接删除#userdel -r oracle。然后再创建。

还会出现下面错误

useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。所以此步骤非常小心。

spacer.gif

解压:这两个安装包是和database在同一个文件夹下面的。上图中是装好之后我把两个压缩包给删除了为节省空间,执行下面的解压之后就生成了database文件夹。

[root@oracle03 ~]#unziplinux.x64_11gR2_database_1of2.zip

[root@oracle03 ~]#unziplinux.x64_11gR2_database_2of2.zip

 

安装Oracle

此步骤注意:在centos桌面上进行安装,需要用oracle用户(前面已经设置过了密码),[root@oracle03 ~]# xhost+

[root@oracle03 ~]]# su oracle
[oracle@ oracle03 ~] cd /home/oracle/Downloads/database
[oracle@ oracle03 ~]#  LANG=en_US ./runInstaller #这一步如果不做会出现乱码口口口

说明:接下来就会弹出安装界面,(注意:如果上面步骤在ssh终端上进行的话:有三项:内存,硬盘可能屏幕分辨率的那个会通不过。可以#exportDISPLAY=:0.0  # xhost + 但是极力建议在虚拟机桌面终端进行。

 

以下将进入图形安装界面

 

 

把勾去掉不用输入,点击next

spacer.gif spacer.gif

 


 

选中第一项,在安装完成时创建并简单配置数据库,点击next

spacer.gif

 

选中Server Class,点击next

spacer.gif

 

以单例模式安装(若安装RAC,选择下一项),点击next

spacer.gif

 

选中typical install,点击next spacer.gif

注意:此步骤需要设置密码Oracle123,一定要记住。

spacer.gif

 

点击next

spacer.gif

中间检测环境,%...下面试检测结果,我们选择忽略点勾,点next

spacer.gif

finish

spacer.gif

进入%...此过程如果没有报错的话,基本是就OK了,到76%的时候最慢了

spacer.gif

 

直接点击OK

spacer.gif

它后面是这样的

spacer.gif

spacer.gif

以root身份运行这两个脚本。

spacer.gif

 

 

 

spacer.gif

 

点击OK

spacer.gif

到这里就全部安装完成了。

下面测试:

打开浏览器,输入https://localhost:1158/em,可打开Database Control管理界面。

spacer.gif

 

点击我已充分了解可能的风险

spacer.gif

 

 

 

点获取证书,确认安全例外。

spacer.gif

输入用户名密码:用户名:sys,密码:Oracle123 选择SYSDBA  点击login

spacer.gif

出现上图,就说明测试成功。

spacer.gif

1521端口添加到防火墙规则里,然后重启防火墙

[root@centos06 ~]# service iptables restart

就可以使用了。

 

备注:图片中大家看到的之前的主机名是03后面的是06.是因为我在03上做了一遍,开始没有截图,后来就又在06上做了一遍。第一次写博客还望多多批评。

 

参考文章:

Centos6.5下Oracle 11g R2安装过程----针对系统参数设置权限用户

http://www.linuxidc.com/Linux/2014-02/97374.htm

CentOS 6.4下安装Oracle11gR2(x64)  ------针对图形化配置

http://blog.sina.com.cn/s/blog_55fb522f01018z5n.html

CentOS6.4 安装oracle 11g 遇到的各种问题