在Linux中安装Oracle(较详细图解)

时间:2021-05-04 16:18:26

原创 http://www.cnblogs.com/nucdy/p/5603998.html

参考视屏:链接: https://pan.baidu.com/s/1kViEZQZ  密码: z7ha

(环境:oracle11g, linux64 RHEL6)

安装RHEL6

假设你已经正确安装VM软件并激活。点击创建新的虚拟机:

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

这个你可以将其安装的内存小一些,也没有多大的关系

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

点击虚拟机菜单栏上的编辑->虚拟网络配置

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

设置网络(要根据自己的实际情况设定):

在Linux中安装Oracle(较详细图解)

设置分区:

在Linux中安装Oracle(较详细图解)

创建分区的要点大致如下:

分区名称

大小(MB)

/boot

128

swap

4096

/

20480

/home

5000

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

此外,这块你也要选择一些那个“开发”中选项,将那个能选择的全选择了,安装oracle是会省很多的事情。

在Linux中安装Oracle(较详细图解)

后面设置全部自动

在Linux中安装Oracle(较详细图解)

出现此画面表示安装成功!

安装VMwaretools的操作略过,请自行完成

可以参考这个:http://www.cnblogs.com/nucdy/p/5235791.html

在Linux操作系统中安装Oracle

1.以root用户登录Linux

首先要以root登录,获取Linux下的最高权限。登录时选择其他账户,用户名输入root,密码输入安装时设置的root密码,记得选择语言为中文(屏幕最下方正中间位置)。得到如图所示的结果。

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

  

2.安装前的准备工作(我的可以,但有时机子不同导致失败的,可以查看这几个文件:http://pan.baidu.com/s/1ge9zYxX

2.0 设置IP地址为静态(固定IP地址)

如果你还没有设置IP为静态,请现在设置。

你这个在安装的时候就设置了,老师上课已经讲了,我就不在写了。

你可以验证一下,在这里

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

192.168.8.201我是绑定了VMware Virtual Ethernet Adapter for VMnet8 ,和其在一个网段

VMnet8 的ip地址是:192.168.8.111

2.1 修改stsctl.conf文件

Linux是为小文件设计的,Oracle数据库安装需要占用较多资源,要把各项参数调大。

使用vi编辑/etc/sysctl.conf文件。命令如下:

vi /etc/sysctl.conf

按i进入插入模式,把光标移到文档最后,将以下一段文字(复制自Oracle 11g官方文档)插入到文档最后。

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

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

net.ipv4.tcp_wmem = 262144 262144 262144

net.ipv4.tcp_rmem = 4194304 4194304 4194304

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

注意注释掉

# Disable netfilter on bridges.

#net.bridge.bridge-nf-call-ip6tables = 0

#net.bridge.bridge-nf-call-iptables = 0

#net.bridge.bridge-nf-call-arptables = 0

(重新加载这些参数,一定要重启系统,其他不使用)

复制完成后,按【ESC】键输入:wq保存退出。

各参数详解:

kernel.shmmax:是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。

官方建议值:

32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。

64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。

kernel.shmall: 该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)

kernel.shmmni:该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。

fs.file-max:该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。

fs.aio-max-nr:此参数限制并发未完成的请求,应该设置避免I/O子系统故障。推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个。

kernel.sem:以kernel.sem = 250 32000 100 128为例:

250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。

32000是参数semmns的值,表示系统内可允许的信号量最大数目。

100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。

128是参数semmni的值,表示系统信号量集合总数。

net.ipv4.ip_local_port_range:表示应用程序可使用的IPv4端口范围。

net.core.rmem_default:表示套接字接收缓冲区大小的缺省值。

net.core.rmem_max:表示套接字接收缓冲区大小的最大值。

net.core.wmem_default:表示套接字发送缓冲区大小的缺省值。

net.core.wmem_max:表示套接字发送缓冲区大小的最大值。

2.2 修改limits.conf

修改:/etc/security/limits.conf

vi /etc/security/limits.conf

在文件末尾加入以下内容:

oracle soft nproc  2047

oracle hard nproc  16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle hard stack 10240

在Linux中安装Oracle(较详细图解)

保存并退出。

2.3 重启系统

修改完参数之后就要重启了,这样做是为了系统能认识我们之前配置的参数。输入以下命令:

reboot

在Linux中安装Oracle(较详细图解)

2.4 执行一系列操作

以普通用户登录(千万不要用root!!!!),然后切换到root用户。(密码就是root的密码)

su root

在Linux中安装Oracle(较详细图解)

执行以下命令:

2.4.1 创建组dba

groupadd dba

在Linux中安装Oracle(较详细图解)

tail /etc/group

在Linux中安装Oracle(较详细图解)

2.4.2 创建oracle用户并添加到dba组

继续输入以下命令:

useradd oracle

在Linux中安装Oracle(较详细图解)

将oracle用户添加到dba组

usermod -g dba oracle

在Linux中安装Oracle(较详细图解)

给这个用户加一个密码(密码一定要好记,别管他的提示),命令如下:

passwd oracle

在Linux中安装Oracle(较详细图解)

测试一下刚才的操作是否成功:

tail /etc/group

tail /etc/passwd

在Linux中安装Oracle(较详细图解)

2.4.3 为Oracle安装创建目录

执行以下命令创建目录:

mkdir -p /u01/app/oracle

在Linux中安装Oracle(较详细图解)

执行以下命令,将文件的属主改为Oracle,属组改为dba:

chown -R oracle:dba /u01/app/oracle

在Linux中安装Oracle(较详细图解)

修改文件的访问权限为777(4+2+1,4+2+1,4+2+1):

chmod -R 777 /u01/app/oracle

在Linux中安装Oracle(较详细图解)

查看一下你刚建的文档权限,这个十分重要,用命令: ll    查看那个几个文件的权限,我的如下:

drwxr-xr-x.   3 root root  4096 Jun 19 16:39   u01                        
drwxr-xr-x. 4 root root 4096 Jun 19 18:24      app

[oracle@server app]$ ll
total 8
drwxrwxrwx. 10 oracle dba 4096 Jun 19 20:22 oracle
drwxrwx---.  5 oracle dba 4096 Jun 19 18:59 oraInventory 

 

上面两个文件的权限影响后面执行的权限问题,一定记得检查!

2.4.4 切换到Oracle用户

su oracle

在Linux中安装Oracle(较详细图解)

2.4.5 配置概要文件(oracle下)

输入以下命令:

cd /home/oracle

vi .bashrc

进入vi后按键盘上的字母i切换到插入模式,然后插入以下内容:

umask 002

ORACLE_BASE=/u01/app/oracle      //这个决定后面按安装的目录

export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0    //这个也是

export ORACLE_HOME

ORACLE_SID=dog         //和你后要建的数据库事例名字一样,我的是:dog,以防出现SID不一致的问题

export ORACLE_SID

PATH=/usr/bin:/bin:usr/local/bin:/usr/bin/X11:/usr/bin/X11R6

PATH=$PATH:$ORACLE_HOME/bin

export PATH

在Linux中安装Oracle(较详细图解)

4、添加/etc/hosts中dns解析信息(这个是root下执行,这个里面原来是有东西的,不是一个新的文件,将一些的文件追加到文件的最后)

192.168.1.102             jiangwf-linux(这个是你安装linux时的主机名)

192.168.1.102             localhost

5.root 用户下(文件里面是有东西的,在最后追加)

vi /etc/pam.d/login

session required /lib/security/pam_limits.so

session required pam_limits.so

(重新加载这些参数,一定要重启系统,其他不使用)

至此,准备工作全部完成!

3.安装Oracle

3.1 创建安装目录并将其属组改为Oracle

获取root权限并执行以下命令:

su root

mkdir /u01/app/oraInventory

ls -l /u01/app

chown -R oracle:dba /u01/app/oraInventory

chmod -R 775 /u01/app/oraInventory

ls -l /u01/app

在Linux中安装Oracle(较详细图解)

主要一定要看上面的文件是否权限一致,这特便是是oracle  和 oraInventory 的权限以及读写权限,简单的来说是他们前面的东西一致

3.2 解压Oracle安装文件

先将oracle安装程序拷贝到一个目录下(我解压到tmp的oracle目录下,如果没有,自己建一个目录,在外面复制安装程序,里面粘贴。如果文件无法导入到虚拟机,请检查VMtools是否正确安装):

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

另一个文件同理。最终得到如下结果:

在Linux中安装Oracle(较详细图解)

这里,其实还有很多问题,若你用的是WinScp上传的话,可能是root权限。建议用oracle用户上传,若是root 的用户,那 你的

先root 下进行建文件夹,而后 将其改成oracle的 宿主 ,即:

[oracle@server app]$ mkdir  temo

[oracle@server app]$ chown -R oracle:dba  temo

[oracle@server app]$ chmod 777  temo

然后你在oracle用户下按上面的操作,将其解压到temo 中,

而后最好我的建议是你查看一下刚刚解压后的文件的权限,若database中的文件都是oracle 用户就最好了。

3.3 运行安装文件(oracle用户下安装,因为这个是oracle用户用的)

如你当前系统环境是英文的环境一些不用看

若你是当前系统环境是中文的环境必须看,否则会出现框框乱码问题,

**——设置编码方式:在oracle用户下:

export LANG=en_US.UTF-8

这个你可以参考博客:http://www.cnblogs.com/nucdy/p/5598497.html

有关一个“red hat 系统将中文设置为英文环境“ 文章

若你已经运行了,没有关系,点击oracle的那个close ,

然后在命令行中以oracle用户下输入

export LANG=en_US.UTF-8

而后执行下面继续运行没有问题

***)

这个是在oracle用户  下运行的

[oracle@server app]$

cd /tmp/Oracle/database          //这个是进入到你oracle解压后的目录下,根据你自己

./runInstaller

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

下一步是典型安装:毕竟现在在是用来进行学习的,先安装上即可,不用先急的去安装一个自己手工设置的数据事例,以后在进行尝试也不迟,况且这样做完了,你还得进行配置更多的其他东西,你可以网上搜索一下,安装完还是要需要进行一些数据库事例的相关配置很麻烦的,这个先不讲,以下我主要介绍是典型安装的过程

选择typical install

然后,选择下一步,下一步

接下来是会出现,一下界面,你按照这个继续进行中就行

在Linux中安装Oracle(较详细图解)

由于Oracle安装时缺少依赖包,我们需要添加这些依赖包,命令另起一个终端,输入:

安装依赖包比较麻烦,可以直接把老师发的iso文件放入linux,(/media/RHEL_6.2 i386 Disc 1/Packages) ,这个目录找上面对应的所需要的.rmp 文件,进行安装

rpm -ivh xxx.rpm安装即可

在Linux中安装Oracle(较详细图解)

在packages找到相应的rpm文件,在终端执行命令 rpm -ivh xxx.rpm安装即可

可能出现的错误(包很多或者修改文件权限不够):例如

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

在Linux中安装Oracle(较详细图解)

其实,我想说的是出现这个问题,是应为你在安装linux时候就应该选择定制软件包的时候,选择上那个“开发” ,将那几个能选择的都选择上肯定不会出现这种情况。

当然,你也可以自己找找,里面有关这个gcc c 啥啥的东西,后面忘了,还有gcc c++啥的包,就不会出现上面的问题

解决这个问题可以参考http://blog.csdn.net/zb0567/article/details/41048263或者百度。

(其中,在这里若出现了那个soft Limit:maximux usr pricess 情况,即:maximum user processes),是你之前配置的 /etc/security/limits.conf中出现问题了,请去检查相关的是否写错。

在Linux中安装Oracle(较详细图解)

同时。老师那个/etc/sysctl.conf中信息的一个信息改为:kernel.shmall = 2097152

/etc/sysctl.conf中信息

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

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

net.ipv4.tcp_wmem = 262144 262144 262144

net.ipv4.tcp_rmem = 4194304 4194304 4194304

找到相应依赖包,如果不能成功的话,su root ——>输入密码  然后找到对应的rpm文件再重新在终端执行命令 rpm -ivh xxx.rpm。

大家可以参考文档http://www.jb51.net/article/53769.htm

而后点击安装完上面的rpm后,点击Check again 即可,没问题,就下一步

在Linux中安装Oracle(较详细图解)

这块,没有截图,有一个从新弹出一个框,

而后,你可以将点击那个修改,进行将一些用户进行解锁,

比如较为长用的一个用户Scott,将对勾进行点击去掉,而后输入密码,确认密码,

点击确定,对话框点击yes

后面就行下一步,继续即可

在Linux中安装Oracle(较详细图解)

看到这个页面可以初步判断oracle初步安装成功,接下来按照步骤创建数据库即可。

我安装参考的文档:http://www.jb51.net/article/53769.htm

好,上面如果你能成功的安装了,就暂时说明好了,但是你还得去oracle中查看一下,是否启动。

(我一般是将的关闭防火墙:chkconfig iptables off)读者可以不去选择去执行

手工启动:(这里是启动一些服务,就行windows中的服务一些,需要手工启动,读者进操作一些的命令即可)

[oracle@crmdb ~]$ lsnrctl start           //success 表明成功

[oracle@crmdb ~]$ dbstart   //启动监听器,我自己试了一下,没启动也没有事情

[oracle@crmdb ~]$ emctl start dbconsole

//自后出现啥啥啥success,代表成功 ,这个是可以启动浏览器的进行的操作

/**浏览器中输入https://localhost:1158/em/

//usrname :sys

//password:自己设置的密码

在Linux中安装Oracle(较详细图解)

登录即可,出现  

在Linux中安装Oracle(较详细图解)

就行了

****/

//下面我没有操作,而是直接进行后面步骤:“二、去试试你安装的数据库,查看一下是否能用” ,如果能用,说明你的已经装成功了,下面就不用去管了

应对shared memory realm does not exist 错误的处理

1、实例没有启动

sqlplus /nolog

connect / as sysdba

startup

*****************************************************

监听器启动出现问题:

ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener

使用oracle用户执行dbstart启动数据库提示如下:

ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener

Usage: /oracle/11g/bin/dbstart ORACLE_HOME

Processing Database instance "orcl": log file /oracle/11g/startup.log

修改dbstart以及dbshut两个文件

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

第一步:

把ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle注释掉

然后修改/home/oracle/.bash_profile

添加export ORACLE_HOME_LISTNER=$ORACLE_HOME一句

生效变量:

[root@oracle01 ~]# source /home/oracle/.bash_profile

图为:

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

第二步:

#vi /etc/oratab

找到orcl=/u01/app/oracle:N这一行

改为:

orcl=/u01/app/oracle:Y

也就是将最后的N改为Y,意思是将不允许自动启动改为允许自动启动。即可解决问题$

*******************************************************

自动启动的脚本:

**********1******************************

首先修改/etc/oratab文件

#vi /etc/oratab

找到orcl=/u01/app/oracle:N这一行

改为:

orcl=/u01/app/oracle:Y

也就是将最后的N改为Y,意思是将不允许自动启动改为允许自动启动。

**********2************************************

启动了Linux系统之后,转到  /etc/init.d  目录下;

[root@oracle ~]# cd /etc/init.d

使用 vi 命令,新建一个以 oracle 命名的文件(并将以下代码复制至文件中)

[root@oracle init.d]# vi oracle

以下是代码:

曾经出现过一个问题:

“服务不支持 chkconfig”:——这个提示是因为oracle自启动脚本前面必须要有以下这两行

#chkconfig: 2345 00 01

#description:oracle 11g service

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

#!/bin/sh

# chkconfig: 345 61 61

# description: Oracle 11g AutoRun Services

# /etc/init.d/oracle

#

# Run-level Startup script for the Oracle Instance, Listener, and

# Web Interface

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=$ORACLE_BASE/oracle

export ORACLE_SID=zqaccp

export PATH=$PATH:$ORACLE_HOME/bin

ORA_OWNR="oracle"

# if the executables do not exist -- display error

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]

then

echo "Oracle startup: cannot start"

exit 1

fi

# depending on parameter -- startup, shutdown, restart

# of the instance and listener or usage display

case "$1" in

start)

# Oracle listener and instance startup

su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart

echo "Oracle dbserver Start Succesful!OK."

su $ORA_OWNR -lc "$ORACLE_HOME/bin/emctl start dbconsole"

echo "Oracle dbconsole Start Succesful!OK."

su $ORA_OWNR -lc "$ORACLE_HOME/bin/lsnrctl start"

echo "Oracle Listeners Start Succesful!OK."

;;

stop)

# Oracle listener and instance shutdown

su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut

echo "Oracle Stop Succesful!OK."

;;

reload|restart)

$0 stop

$0 start

;;

*)

echo $"Usage: `basename $0` {start|stop|reload|reload}"

exit 1

esac

exit 0

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

在编辑完成之后,使用 :x  命令保存此文件。

赋予执行权限

[root@oracle init.d]# chmod 750 /etc/init.d/oracle

链接:

[root@oracle init.d]# ln -s /etc/init.d/oracle /etc/rc1.d/K61oracle

[root@oracle init.d]# ln -s /etc/init.d/oracle /etc/rc3.d/S61oracle

执行以下命令:

[root@oracle init.d]# chkconfig --level 345 oracle on

[root@oracle init.d]# chkconfig --add oracle         //添加到服务里

二、去试试你安装的数据库,查看一下是否能用

[oracle@mylinux database]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Sat Nov 5 05:50:34 2011

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$version;

BANNER

——————————————————————————–

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – Production

PL/SQL Release 11.2.0.3.0 – Production

CORE    11.2.0.3.0      Production

TNS for Linux: Version 11.2.0.3.0 – Production

NLSRTL Version 11.2.0.3.0 – Production

//你也可以用账号scott 进行登录,(注意:在安装的时候要进行解锁,设置密码,和windows中安装是进行解锁操作一样)

登陆:      sql>conn scott/你设置密码

查看dept:  sql>select * from dept;

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

要让修改的ip永久生效就必须修改配置文件/etc/sysconfig/network-scrips/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

HWADDR=00:13:D3:90:95:4D

ONBOOT=yes

TYPE=Ethernet

NETMASK=255.255.255.0

IPADDR=192.168.2.102

USERCTL=no

IPV6INIT=no

PEERDNS=yes

IGATEWAY=61.144.47.225

GATEWAY=61.144.47.225

DEVICE=eth0

BOOTPROTO=none

BROADCAST=192.168.1.255

IPADDR=192.168.1.33

NETMASK=255.255.255.0

NETWORK=192.168.1.0

ONBOOT=yes

USERCTL=no

PEERDNS=no

TYPE=Ethernet