linux下安装oracle11gR2

Linux上安装oracle11gR2

一 操作系统

机器: 192.168.5.191

查看操作系统内核版本

以root用户登录,输入# cat /proc/version,可以看到当前系统是:Red Hat 4.4.6-3


二oracle相关软件

oracle11g下载地址:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

oracle 即时客户端(instant client)下载地址:

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

oracle11gR2 官方安装向导for Linux x86-64:

http://docs.oracle.com/cd/E11882_01/install.112/e24326.pdf

三 硬件要求

1. 最小内存 1 GB of RAM

可用命令# grep MemTotal/proc/meminfo查看RAM大小


2. 虚拟内存容量

下表描述了RAM和交换空间的关系

Available RAM

Swap Space Required

Between 1 GB and 2 GB

1.5 times the size of RAM

Between 2 GB and 16 GB

Equal to the size of RAM

More than 16 GB

16 GB

可用命令# grep SwapTotal/proc/meminfo查看交换空间的大小


结合1和2可以看出,RAM约等于2GB,交换空间约等于4GB,满足条件。

ps:用# free命令可以看出RAM和交换空间的使用情况


3. 硬盘空间要求(Linux x86-64

数据库软件硬盘空间需求:

Installation Type

Requirement for Software Files (GB)

Enterprise Edition(企业版)

4.7

Standard Edition(标准版)

4.6

数据文件硬盘空间需求:

Installation Type

Requirement for Data Files (GB)

Enterprise Edition(企业版)

1.7

Standard Edition(标准版)

1.5

可用命令# df –ah查看磁盘空间使用情况(df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况,命令参数a表示全部文件系统列表,h 表示以方便阅读方式显示)

linux下安装oracle11gR2_第1张图片

四 软件要求

1. 操作系统要求

linux下安装oracle11gR2_第2张图片

可用命令# cat/proc/version查看当前已安装版本


2. 内核要求

linux下安装oracle11gR2_第3张图片

linux下安装oracle11gR2_第4张图片

可用命令# uname –r查看当前内核版本


3. 软件包支持

根据官方安装文档中说明,不同的平台需要不同的软件包,这里仅以Oracle Linux 4and Red Hat Enterprise Linux 4为例(192.168.5.191是Red Hat 4):

linux下安装oracle11gR2_第5张图片

当前操作系统是64位的,括号内备注32位的package无需安装。

可以用命令:yum install 软件包名称 进行安装

以第一个package为例,输入命令:# yum install binutils   (注:无需yum install binutils-2.15.92.0.2,检测到哪个版本就安装哪个版本即可)

linux下安装oracle11gR2_第6张图片

可以看到binutils已经安装了最新的版本,如果没有安装根据提示选择y安装即可。

五 创建oracle组、用户

以root用户登录,创建oracle安装组oinstall,数据库管理员组dba,及oracle用户

1. 创建组

# groupaddoinstall

# groupadd dba

创建组后在/etc/group文件中可以看到:


2. 创建用户

# useradd -goinstall -G dba oracle

(主组oinstall,其它组:dba 。g表示用户组,指定用户所属的用户组;G表示用户组,指定用户所属的附加组)

创建用户后在/etc/passwd中可以看到:

其中:oracle表示用户;x表示口令,Linux使用shadow技术,真正的加密后的用户口令字存放到/etc/shadow文件中,passwd中只存放一个特殊字符,x或者*;501是用户标识号;503是组标识号;/home/oracle表示用户的起始工作目录,它是用户在登录到系统之后所处的目录;/bin/bash是用户登录到系统后运行的命令解释器或某个特定的程序。


oracle用户登录后可以看到处在/home/oracle目录下。

3. 为oracle用户创建密码

使用命令# passwd oracle ,根据提示输入密码:


加密口令在/etc/shadow中可以看到:

六 配置内核参数和资源限制

1. 修改内核参数

以root用户登录,修改/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 = 1048576

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

# /sbin/sysctl –p (sysctl在/sbin目录下,执行命令时要知道命令的路径,若有配置环境变量可以不加路径直接执行。 -p表示从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载)

2. 修改用户限制

以root用户登录:修改 /etc/security/limits.conf 文件,加上如下参数:

oracle          soft    nproc   2047
oracle          hard    nproc   16384
oracle          soft    nofile  1024
oracle          hard    nofile  65536

3.修改用户验证选项

以root用户登录:修改/etc/pam.d/login文件,加上如下参数:

session   required     pam_limits.so

4.修改用户配置文件

以root用户登录:修改/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

 

七 安装目录配置

创建oracle安装目录:

# mkdir -p /u01/app/

# mkdir -p /u01/oraInventory

创建oracle数据库存放目录:

# mkdir-p /u01/oradata

创建oracle备份目录:

# mkdir -p /backup/oracle/

赋予各个目录权限:

# chown-R oracle:oinstall  /u01/oradata

# chown–R oracle:oinstall  /u01/oraInventory

# chmod-R 775 /u01/app/

# chmod-R 775 /u01/oradata

# chmod–R 775 /u01/oraInventory

# chown-R oracle:oinstall  /backup/oracle/

# chmod-R 775 /backup/oracle/

说明:chown将指定文件的拥有者改为指定的用户或组,-R表示处理指定目录以及其子目录下的所有文件。以chown -R oracle:oinstall /u01/oradata为例,表示将/u01/oradata及其目录下的所有文件改为oracle用户,oinstall组


可以看到u01目录下的三个文件夹都已改成所属oracle用户,oinstall组。

八 安装oracle11gR2

1. 安装包准备

将oracle11g两个zip文件上传至192.168.5.191  /home/oracle目录下(注意,两个zip文件要放在同一目录下,方便解压):

 

用命令# unzip ***.zip对这两个zip文件解压缩,解压缩后会自动生成database文件夹,两个zip文件都在database中。


看到官网文档上,安装前还需要配置环境变量。第一次安装对这个不太懂,需要的时候再配置环境变量。

2. 安装oracle数据库

切换至oracle用户(若已登录root用户,可使用# su – oracle命令切换至oracle用户)。

第一步:进入/home/oracle/database目录下,执行$ ./runInstaller

linux下安装oracle11gR2_第7张图片

报错,提示:无法使用命令/usr/bin/xdpyinfo自动检查显示器颜色。请检查是否设置了DISPLAY变量。

解决方案:下载Xmanager,运行下面的 ,然后输入命令$ export DISPLAY=192.168.4.122:0.0(注:192.168.4.122是我本机ip,本机防火墙一定要关闭),再执行$ ./runInstaller就可以了。(附上参考资料链接:http://blog.csdn.net/xionglang7/article/details/12716823)

linux下安装oracle11gR2_第8张图片

再次执行$ ./runInstaller可以看到,文字显示成乱码了。

解决方案:输入命令$ export LANG=en_US。原来显示的是中文,现在改成英文。

设置export DISPLAY=192.168.4.122:0.0和export LANG=en_US都是临时的,为了防止再次输入这两个,切换到root用户($ su - root)在/etc/profile中加入环境变量。(oracle用户对/etc/profile文件只有读的权限,无法修改,要切换到root用户)


添加之后用命令# source /etc/profile使其立即生效。修改之后再切换回oracle继续安装。

第二步:安装时弹出了如下错误:

linux下安装oracle11gR2_第9张图片

解决方案:出现这种错误是因为主机名和/etc/hosts 文件中不一致,只需要把主机名和其IP 写入/etc/hosts 文件,就ok了。(附上参考资料链接:

http://www.linuxidc.com/Linux/2011-09/44130.htm)

查看主机名和和ip 地址关系:


主机名是1.yqrsyn.com

查看/etc/hosts文件:


这里我们修改一下主机名,Linux 下修改/etc/sysconfig/network 里的hostname 需要重启系统才能生效。

修改network 文件后,再使用hostname 命令指定一下主机名,就不用重启OS了。

1.  修改/etc/sysconfig/network文件,hostname修改为shujuku,修改后如下:

 linux下安装oracle11gR2_第10张图片

2.  使用hostname 命令修改主机名,该修改重启会失效,但在第一步我们已经修改过。所以失效也没关系

linux下安装oracle11gR2_第11张图片

3.  修改hosts 文件


再次安装,顺利通过。

第三步:弹出安装页面

linux下安装oracle11gR2_第12张图片

email和密码无需填写,填的话会弹出输入代理服务器相关信息页面。

因为我没有填写email地址,弹出了如下信息,默认yes;

linux下安装oracle11gR2_第13张图片

选择安装方式,默认选择只安装数据库软件:

linux下安装oracle11gR2_第14张图片

安装选项,单一实例安装:

linux下安装oracle11gR2_第15张图片

安装语言选择:

linux下安装oracle11gR2_第16张图片

选择数据库安装版本:

linux下安装oracle11gR2_第17张图片

选择数据库安装路径:

linux下安装oracle11gR2_第18张图片

选择inventory 目录(oraInventory存放的是Oracle软件安装的目录信息,Oralce的安装升级都需要用到这个目录):

linux下安装oracle11gR2_第19张图片

 linux下安装oracle11gR2_第20张图片

linux下安装oracle11gR2_第21张图片

linux下安装oracle11gR2_第22张图片

由图可见缺少的都是32位的(i386),在前面安装软件包时只安装了64位的。

忽略(勾选Ignore ALL),点击Next:(这是64位的系统,缺少的32位安装包可忽略)

linux下安装oracle11gR2_第23张图片

linux下安装oracle11gR2_第24张图片

linux下安装oracle11gR2_第25张图片

安装过程中提示需要运行脚本:

linux下安装oracle11gR2_第26张图片

用root用户登录,运行/u01/app/product/11.2.0/dbhome_1/root.sh脚本,然后再返回这个窗口点击“OK”按钮。过程不再附图。

linux下安装oracle11gR2_第27张图片

至此,安装完成。

九 安装监听器

使用oracle用户登录系统或在命令行窗口切换到oracle用户,执行

netca


又出错了。报错的原因是找不到这个命令,解决方案:要么配置环境变量,要么把命令的路径带上(或者切换到命令所在目录执行)。

第一步:设置环境变量(放在这里只是根据我的需要,有多教程中是放在第八项之前设置环境变量的)

输入命令$ vi .bash_profile,在文件中加上如下内容:


配置后输入命令$ source .bash_profile使其生效。再执行$ netca就会自动去/u01/app/product/11.2.0/dbhome_1/bin/目录下找这个命令了。

第二步:图形化安装

输入$ netca命令后弹出如下界面:

 linux下安装oracle11gR2_第28张图片

linux下安装oracle11gR2_第29张图片

linux下安装oracle11gR2_第30张图片

linux下安装oracle11gR2_第31张图片

linux下安装oracle11gR2_第32张图片

linux下安装oracle11gR2_第33张图片

linux下安装oracle11gR2_第34张图片

linux下安装oracle11gR2_第35张图片

 点击“Finish”完成配置。可以用lsnrctl start启动监听,lsnrctl status查看监听状态,lsnrctl stop停止监听

十 安装数据库程序

前面已经配置了oracle环境变量,可直接执行命令$ dbca(同样是以oracle用户登录执行),弹出了如下界面:

linux下安装oracle11gR2_第36张图片

 linux下安装oracle11gR2_第37张图片linux下安装oracle11gR2_第38张图片

可以看到,通过dbca即可以创建数据库也可以删除数据库。

 linux下安装oracle11gR2_第39张图片

数据库名和SID输入:oracle191

linux下安装oracle11gR2_第40张图片

linux下安装oracle11gR2_第41张图片

配置四个内置超级管理员密码,建议统一密码,便于记忆用:

linux下安装oracle11gR2_第42张图片

linux下安装oracle11gR2_第43张图片

linux下安装oracle11gR2_第44张图片

linux下安装oracle11gR2_第45张图片

linux下安装oracle11gR2_第46张图片

linux下安装oracle11gR2_第47张图片

linux下安装oracle11gR2_第48张图片

linux下安装oracle11gR2_第49张图片

可以点击Save as an HTML file将概要保存起来(也可以不保存直接点击OK按钮)

linux下安装oracle11gR2_第50张图片

输入地址,点击Save保存,然后返回摘要页面点击OK按钮

 linux下安装oracle11gR2_第51张图片

linux下安装oracle11gR2_第52张图片

linux下安装oracle11gR2_第53张图片

linux下安装oracle11gR2_第54张图片

至此数据库实例创建完成。

在环境变量中加上ORACLE_SID。输入命令$ vi.bash_profile,在文件中加上下面一行:


$ source .bash_profile使其生效。

(ps:若需要启用EM,还需要配置ORACLE_UNQNAME=$ORACLE_SID,在.bash_profile文件中加上一行exportORACLE_UNQNAME=$ORACLE_SID)

贴出完整的环境变量附图,如下:

linux下安装oracle11gR2_第55张图片

十一 启动数据库

1. Linux启动oracle顺序

01. su – oracle

02. sqlplus / as sysdba

03. SQL>startup

04. lsnrctl start

2. Linux关闭oracle顺序

01. su – oracle

02. lsnrctl stop

03. sqlplus / as sysdba

04. SQL>shutdownimmediate

05. SQL>quit

第一步:启动数据库(自检:下面截图中as前面少了空格,命令的原意是sqlplus  username/password as sysdba)

linux下安装oracle11gR2_第56张图片

错误原因:在oracle 11g中采用AMM内存管理,当MEMORY_TARGET的值大于/dev/shm时,就会报ORA-00845: MEMORY_TARGET not supported on this system错误。

解决方案:增加/dev/shm大小

01. 修改/dev/shm大小(由于mount命令只有root用户有权限执行,先切换到root用户)

linux下安装oracle11gR2_第57张图片

(注:参考资料链接:http://www.2cto.com/database/201310/253667.html)

02. 调整之后再试一次:

linux下安装oracle11gR2_第58张图片

出现了新的错误:ORA-01102。

错误原因:lk文件没释放造成的。

解决方案:用fuser命令kill掉。

lkORACLE191文件位于/u01/app/product/11.2.0/dbhome_1/dbs目录下。

对该文件说明一下:数据库启动时,会生成lk文件,用于锁定数据库,如果企图再次启动进程或者同样的实例时会报错,因为该文件已经被之前启动的进程锁了,说明这个数据库已经被实例独占排他的访问了。这个文件是为了防止数据库被多个实例同时并发访问。数据库关闭时会释放该文件。

linux下安装oracle11gR2_第59张图片

(注:附上参考资料链接:

http://blog.163.com/mcse_mcsa/blog/static/1652747232007330590517)

解决之后再试一次:

linux下安装oracle11gR2_第60张图片

ok,已成功连接。

第二步:启动监听

输入命令$ lsnrctl start

linux下安装oracle11gR2_第61张图片

可以看到监听已成功启动。

至此,可以用工具连接数据库了。

 

参考资料:

http://blog.csdn.net/yincg/article/details/8726690

http://www.cnblogs.com/gaojun/archive/2012/11/22/2783257.html

http://docs.oracle.com/cd/E11882_01/install.112/e24326.pdf

http://my.oschina.net/bxxfighting/blog/382618?p=1

http://www.blogjava.net/icewee/archive/2013/01/30/394943.html

 
附:
Q1:groupadd命令前为什么要加/usr/sbin?
A1:加/usr/sbin/不是必需的。加上的话,shell会直接执行给定路径的可执行程序。不加的话,shell会在PATH变量里面记录的路径找一遍,找到这个命令的话就直接运行,找不到的话就提示你没有这个命令。
通过cat /usr/sbin可以看到sbin文件里有groupadd命令。
Q2 : 为什么要切换到oracle用户安装oracle服务器等?
A2 : 我们可以尝试一下以root用户安装
 
  
可以看到用root用户执行安装命令时报错。
这主要是出于linux的安全机制,root的权限太大了,新建一个oracle用户去操作比较安全。
Q3:为什么有的命令前是#,有的命令前是$?
A3:以root用户登录,提示符是#;以其他用户登录,提示符是$。文中在$后面显示的命令都是以oracle用户登录执行的。
Q4 : .bash_profile和profile的区别?
A4  :  01.位置:.bash_profile位于/home下的用户文件夹下,是隐藏文件。本文档中所涉及的环境下该文件位于/home/oracle目录下,通过ls –a可以查看到;profile在/etc目录下
02.权限:/etc/profile文件只对root及root属组用户可读可写,其他用户只有读权限;.bash_profile:适配于当前登录用户的权限。
03.作用:.bash_profile:每个用户都可使用该文件输入专供自己使用的shell信息;/etc/profile对所有用户生效,.bash_profile只对当前用户生效。
Q5 : 怎么查看实例名及其状态?
A5 : select instance_name,status from v$instance;(分号要输入的~)
 
  
 

你可能感兴趣的:(数据库)