废话连篇:

现在说suse 11 sp2  oracle 11g,之所以写这篇文章,是因为,网上有关于SUSE 11oracle11g 的课程,但是,我照着一步一步的做,总会出错,我自认步骤都没错,但是就是不行,于是,我找到了官方文档,终于成功了。

  注意:1.装东西,最好按照官方文档,虽然网上的文章更加清晰明白,但是出错都不知道哪里的错!

       2.网上的redhat oracle 11g,虽然变汤不变药,但是和SUSEoracle 11g是不太一样的,不要照葫芦画瓢,你根本画不好!

废话结束!

正文开始:

  1.  安装SUSE LINUX Enterprise Server 11 SP2,网上的文档很多,基本上都很可靠,而且我也照着安装,很多文章基本上都没有问题,说实话,网上的文章都很好!

  2.  系统安装完毕,用root的用户登录oracle服务器,检查SUSE系统的内核版本。

#  cat  /proc/version

Linux version 2.6.32.12-0.7-default(geeko@buildhost) (gcc version 4.3.4 [gcc-4_3-branch revision 152973] (SUSELinux) ) #1 SMP 2010-05-20 11:14:20 +0200

内核版本我加红色了,系统要求版本在2.6.16.21以上,否则,重装系统。

  1. 3.  执行rpm –qa  命令,检查装ORACLE服务器的所需要的包是否全部装全了就是下面这条命令:

     #rpm –qabinutils gcc gcc-c++ gcc-32bit gcc43 gcc43-32bit glibc glibc-32bit glibc-develglibc-devel-32bit ksh libaio libaio-devel libaio-devel-32bit libelf0 libelf1libgcc43 libgcc43-32bit libstdc++33 libstdc++33-32bit libstdc++43libstdc++43-32bit libstdc++43-devel libstdc++43-devel-32bit libstdc++-devellibgomp43-32bit make sysstat libcap unixODBC

累死了,敲这些很累人,你可以直接复制我的,就不用敲了。

如果系统没有返回信息,表明没有安装补丁包。

如果有返回信息,但是版本号低于上表中的最低要求,则执行

   #rpm –e 补丁包名   这个命令是删除,删除以后在按照下面的方法按照

安装需要的包:

(SUSE和redhat,centos有一个区别,就是redhat,centos你得自己配置YUM源,但是SUSE不用配置,你把安装盘放到光驱里面,就行了,或者你在虚拟机里面的话,你点“虚拟机---可移动设备---连接DVD”就行了)

(1) 点左下角的计算机,然后点里面的安装软件,如图:

    oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1

然后在search里面写上你想安装的名字,点接受就可以了,就会自动安装。

提醒一下初学者,redhat,centos里面的yum,相当于suse里面的yast2,zypper命令,redhat里面的yum要自己配置本地源,suse里面的配置文件一点都不需要改动,只需要连接好你的光

盘就行了。

 

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_02

 

把包全部安装好以后,有一条命令很重要:

#  rpm –qa|greporarun   如果安装了,就卸载,因为这个会破坏你后面的环境变量

#  rpm –eorarun-1.9-21.15 删除这个懒人包。

如果你想详细了解这个包,就看下面的连接,写的很清楚。

http://blog.csdn.net/laven54/article/details/9417121

 

 

4.需要的包全部安装好了,现在关闭防火墙:看图片,执行图片中的命令。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_03

然后:

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_04

5.关闭SELINUX,SUSE默认是关闭SELINUX的。此步骤略过。

6.修改系统内核参数(修改任何东西前,先备份,这是个好习惯。)

# cp /etc/sysctl.conf  /etc/sysctl.conf.bak

#vim /etc/sysctl.conf  ,把下面这些东西追加到这个文件中,是追加哦!

 
#net.ipv4.ip_forward = 0 #disabled
net.ipv4.conf.default.rp_filter = 1
kernel.sysrq = 1
kernel.core_uses_pid = 1
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
#set "kernel.shmmax" to the half of the physical memory.
kernel.shmmax = 8359960576
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_probes = 3
kernel.msgmni = 2878
kernel.msgmax = 8192
kernel.msgmnb = 65535
net.ipv4.ip_local_port_range = 1024 65000
fs.file-max = 131072
kernel.sem = 256 35000 100 142
 
写完以后(你可以直接复制到你的文件中),执行下面的命令:
  #chkconfig boot.sysctl on   //系统每次重启自动载入配置文件
  #chkconfig –l boot.sysctl  //检查配置文件启动状态,只有B是on

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_05

  #reboot   重启就行了。


7.创建用户和用户组
#cat /etc/passwd|grep oracle
#cat /etc/group|grep oinstall
#cat /etc/group|grep dba
默认情况下,都有,都是orarun这个懒人包起的作用,都删除:
  #userdel –r oracle
  #groupdel oinstall
  #groupdel dba
删除以后,然后:
 .groupadd –g 200 dba

.  groupadd –g201  oinstall

-g 表示创建用户组的组ID.

创建oracle用户。

 useradd –u 300 –d/home/oracle –s /bin/bash –m –g oinstall –G dba oracle

  • -u: 制定用户ID

  • -d: 指定用户家目录

  • -s制定用户登录的shell类型

  • -m:若用户家目录不存在,自动创建

  • -g :指定用户所在的主用户组。

  • -G:指定用户所在的辅用户组。

检查oracle用户是否创建正确

. more/etc/passwd|grep oracle

. passwdoracle  (或者在脚本中,echo123456|passwd –stdin oracle)

 

8.    创建安装目录,用于安装oracle数据库

#mkdir/opt/oracle

#chown –Roracle:dba /opt/oracle

#chmod –R 755/opt/oracle 

创建/opt/oraInventory目录

. mkdir –p /opt/oraInventory

.chown –Roracle:oinstall /opt/oraInventory

.chmod –R 755/opt/oraInventory

9.   添加主机名与IP地址的对应关系

在配置文件中添加主机名与IP地址的对应关系,否则将导致Oracle数据库安装失效,说到这,你的IP配置好了吗?

 #vim /etc/hosts

 172.16.16.16  linux

172.16.16.16 Oracle服务器的IP地址,linux是主机名。

10  重启用oracle用户登录服务器。

     $  pwd 

    /home/oracle  默认oracle用户的家目录是/home/oracle

然后在这个目录底下,新建  .bash_profile, 注意,是.bash_profile,不要少了点。

#Vim .bash_profile

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=OSS
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
export LD_LIBRARY_PATH
SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32
export SHLIB_PATH
# Set shell search paths:
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH:/usr/local/bin
# CLASSPATH must include the following JRE locations:
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export DBCA_RAW_CONFIG=/oracle/app/rawdevpath
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LANG=C
export LC_CTYPE=C

 

写完以后,使环境变量立即生效。

# source .bash_profile

#env|grep ORACLE_HOME 检查环境变量是否生效。

ORACLE_HOME=/opt/oracle/product/11.2.0/db_1


到目前为止,SUSE系统的东西基本上都改完了,剩下的就是安装oracle软件了,如果你是在虚拟机中安装的,建议你做一个快照,快照非常重要!

 

安装ORACLE软件,前提,ORACLE数据库的安装包已经上传到/opt/oracle目录下

$cd /opt/oracle   到这个目录下,然后依次解压。(确保这2个文件是oracle用户的,不要是root用户的。)

$unzipp13390677_112040_Linux-x86-64_1of7.zip

$unzipp13390677_112040_Linux-x86-64_2of7.zip

解压完成后,会生成一个database文件夹

$ cd database

$ ./runInstaller   执行完这个命令,就会出现图像界面

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_06

什么也不用写,真的,虽然它报错:

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_07

点YES,继续。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_08

跳过更新。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_09

只安装software,就行。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_10

选第一个就行,单机版。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_11

默认就行,一个English就够了。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_12

选第二个,标准版。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_13

ORACLE Base 和ORACLE Location 默认就行,就是图片里的目录就行,看看你的是不是和我一样。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_14

继续默认,下一步。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_15

2个都选dba,继续下一步。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_16

检查包的情况,如果是“Warning”或者“Succeed””User Verified ”就忽略,点Ignore all,如果是出现了“Failed”,那你就重新安装包,如果包确实安装好了,就重新安装ORACLE.

 继续点下一步,如果出现下面这个错误,

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_17

点击YES.,继续。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_18

点击Install,继续。

安装完以后,出现这个图片:

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_19

你就用root用户,执行这2个脚本

#sh /opt/oraInventory/orainstRoot.sh

$sh /opt/oracle/product/11.2.0/db_1/root.sh

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_20

完成安装。

 

数据库软件安装完了,接下来安装数据库实例:

1.#dbca    //这个命令创建数据库实例

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_21

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_22

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_23

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_24

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_25

切记,这个地方什么都不选!

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_26

比如:密码可以设置为Admin@12345


oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_27

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_28

这个地方也是什么都不选!

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_29

这个地方也是什么都不选。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_30

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_31

都设置成和图片中的一样!


oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_32

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_33

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_34

保持默认即可!

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_35

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_36

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_37



等待20分钟吧,耐心等待!

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_38

创建数据库实例成功后,单击Exit,关闭窗口。

 

数据库实例已经OK

 

接下来创建侦听:

侦听是代表一个或多个数据库处理外部请求的一个进程。创建侦听并成功启动后,外部系统才能使用数据库。

$netca   //netca这个命令即可。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_39

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_40

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_41

保持默认。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_42

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_43

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_44

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_45

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_46

安装完了,现在我们检查一下数据库是否安装成功了。

$ sqlplus “/ as sysdba”      //oracle用户登录执行。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_47启动数据库:

  startup   显示如下信息,表示数据库启动成功。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_48

查看数据库版本:

. select * from v$veersion:

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_49

查看数据库实例名及其状态。

. select  INSTANCE_NAME,STATUS from v$instance.

如果显示如下信息,表示数据库实例名正确,且状态正常。

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_50

退出sql命令行。

. exit

 查看侦听状态。

. lsnrctl status

oracle 11g for suse 11g sp2  _SUSE 11 SP2 ORACLE 1_51


终于写完了,好累人!

在此,向各位博客大神,写博客的前辈同行致敬,写东西很累人啊!