天天看点

CentOS 6.3(x86_64)下安装Oracle 10g R2

目 录

一、硬件要求

二、软件

三、系统安装注意

四、安装oracle前的系统准备工作

五、安装oracle,并进行相关设置

六、升级oracle到patchset

10.2.0.4

七、使用rlwrap调用sqlplus中历史命令

1、内存 & swap

minimum: 1 gb of ram

recommended: 2 gb of ram or more

CentOS 6.3(x86_64)下安装Oracle 10g R2

检查内存情况

# grep memtotal /proc/meminfo

# grep swaptotal /proc/meminfo

2、硬盘

由于centos安装后差不多有4~5g,再加上oracle等等的安装,所以请准备至少10g的硬盘空间。

检查磁盘情况

# df -h

CentOS 6.3(x86_64)下安装Oracle 10g R2

系统平台:centos 6.3(x86_64)

centos-6.3-x86_64-bin-dvd1.iso

oracle版本:oracle 10g r2

10201_database_linux_x86_64.cpio

补丁:p6810189_10204

p6810189_10204_linux-x86-64.zip

系统安装时一定要安装桌面模式,否则无法安装oracle,另外请勿开启selinux,oracle官方不建议使用selinux,centos的防火墙也请暂时关闭,减少安装时的困扰。为防止oracle安装过程中出现乱码,建议使用英文作为系统语言,进行oracle的安装工作。

本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。

首先,请先以root账号登入作一些前置设定作业。

1、关闭防火墙、禁用selinux

# setup

CentOS 6.3(x86_64)下安装Oracle 10g R2

# vi

/etc/selinux/config

修改selinux=disabled,然后重启。

如果不想重启系统,使用命令setenforce 0

CentOS 6.3(x86_64)下安装Oracle 10g R2

2、安装依赖包

oracle官方文档要求的安装包:

CentOS 6.3(x86_64)下安装Oracle 10g R2

查看oracle相关包是否已经安装:

CentOS 6.3(x86_64)下安装Oracle 10g R2

用yum方式安装所需的包:

# yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686

elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common

glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel

libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel

make sysstat

CentOS 6.3(x86_64)下安装Oracle 10g R2

最后还需要安装libxp这个library,这个一定要安装,否则安装oracle时会出现java exception。

# yum install libxp

CentOS 6.3(x86_64)下安装Oracle 10g R2

3、创建oracle用户与组

在这里只讨论单主机环境,不考虑rac环境的配置。

执行以下指令以新增oracle安装时所需要的使用者与群组。

(1) 建立群组oinstall 

# groupadd oinstall

(2) 建立群组dba

# groupadd dba

(3) 新增使用者oracle并将其加入oinstall和dba群组

# useradd -m -g oinstall -g dba

oracle

(4) 测试oracle账号是否建立完成

# id oracle

(5) 建立oracle的新密码

# passwd oracle

CentOS 6.3(x86_64)下安装Oracle 10g R2

4、将oracle使用者加入到sudo群组中

# vi /etc/sudoers

找到

root       

all=(all)       

all 

这行,并且在底下再加入

oracle       

all

输入wq!(由于这是一份只读文档所以需要再加上!)并且按下enter

CentOS 6.3(x86_64)下安装Oracle 10g R2

5、配置系统内核参数

# vi /etc/sysctl.conf

修改和添加以下内容:

kernel.shmall = 4294967296             

 //表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改

kernel.shmmax =

68719476736                   

//定义了共享内存段的最大尺寸(以字节为单位)。缺省为32m,对于oracle来说,该缺省值太低了,通常将其设置为2g

kernel.shmmni =

4096                                   

//用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改

kernel.sem = 250 32000 100

128                   

//表示设置的信号量

net.ipv4.ip_local_port_range = 1024

65000

net.core.rmem_default=4194304                    

//默认的接收窗口大小

net.core.rmem_max=4194304                       

//接收窗口的最大大小

net.core.wmem_default=262144                     

//默认的发送窗口大小

net.core.wmem_max=262144                     

   //发送窗口的最大大小

会有一些与目前的参数重复的,就修改成文件上提供的。

CentOS 6.3(x86_64)下安装Oracle 10g R2

编辑完之后,储存,然后执行:

# sysctl -p

启用刚刚所做的变更。

CentOS 6.3(x86_64)下安装Oracle 10g R2

6、编辑/etc/security/limits.conf

# vi /etc/security/limits.conf

添加以下四行

oracle  soft       

nproc   2047

oracle 

hard        nproc  

16384

nofile  1024

oracle  hard       

nofile  65536

CentOS 6.3(x86_64)下安装Oracle 10g R2

7、编辑/etc/pam.d/login

# vi /etc/pam.d/login

添加以下两行

session required /lib64/security/pam_limits.so

session required

pam_limits.so

CentOS 6.3(x86_64)下安装Oracle 10g R2

8、修改/etc/profile

# vi /etc/profile

将以下代码新增到profile档案中。

CentOS 6.3(x86_64)下安装Oracle 10g R2

9、修改linux发行版本信息

由于oracle 10g发行的时候,centos 6没有发行,所以oracle 10g并没有对centos 6确认支持,需要修改文件让oracle

10g支持centos 6。

我们需要手工修改linux的发行注记,让oracle 10g支持centos 6。

编辑/etc/redhat-release文件

# vi /etc/redhat-release

将其中的内容centos release 6.3 (final)修改为redhat 4

CentOS 6.3(x86_64)下安装Oracle 10g R2

10、创建oracle安装文件夹以及数据存放文件夹

#mkdir /opt/oracle

#mkdir /opt/oracle/102

#chown -r oracle:dba

/opt/oracle

CentOS 6.3(x86_64)下安装Oracle 10g R2

11、配置linux主机

检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1即可),若没有的话,在后面配置oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可。

CentOS 6.3(x86_64)下安装Oracle 10g R2

第一阶段到此完毕,接下来,完成这些设定之后,请先注销root账号,并且以oracle账号再次登入系统。

12、配置oracle用户环境变量

$ cd /home/oracle

$ vi .bash_profile

修改并加入以下內容

oracle_base=/opt/oracle                     

//上面创建的oracle安装文件夹

oracle_home=$oracle_base/102

oracle_sid=orcl

ld_library_path=$oracle_home/lib

path=$path:$oracle_home/bin:$home/bin

export oracle_base oracle_home oracle_sid ld_library_path path

CentOS 6.3(x86_64)下安装Oracle 10g R2

保存后使用如下命令,使设置生效:

$ source /home/oracle/.bash_profile

1、解压缩安装文件

将下载的10201_database_linux_x86_64.cpio放至即将安装oracle的文件夹/opt/oracle

回到终端模式并且进入到oracle文件夹:

$ cd /opt/oracle

解压缩10201_database_linux_x86_64.cpio

$ cpio -idmv < 10201_database_linux_x86_64.cpio

接着会看到一连串的解压缩动作。

CentOS 6.3(x86_64)下安装Oracle 10g R2

解压缩完成会在同一个文件夹中看到database的文件夹,请进入到database文件夹中:

$ cd database

准备执行数据库安装,如果你的centos是中文环境,安装时会出现中文乱码,请下以下指令

$ export lang=en_us

接着执行

$ ./runinstaller

如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序:

# export display=:0.0 

# xhost + 

CentOS 6.3(x86_64)下安装Oracle 10g R2

遇到错误:exception in ...... /lib/i386/libawt.so:

libxp.so.6: cannot open shared object file: no such file or

directory

CentOS 6.3(x86_64)下安装Oracle 10g R2

解决:

# yum -y install libxp.i686

分析:看报错信息"/lib/i386/libawt.so: libxp.so.6:

cannot open shared object file: no such file or

directory",libxp需要安装i386的包,而不能安装x64的包。上面认为64位的linux需要安装64位的libxp包,所以导致这个问题。

再次执行 

遇到错误:exception in ...... /lib/i386/libawt.so: libxt.so.6:

cannot open shared object file: no such file or directory

CentOS 6.3(x86_64)下安装Oracle 10g R2

# yum -y install libxt.i686

遇到错误:exception in ...... /lib/i386/libawt.so: libxtst.so.6:

CentOS 6.3(x86_64)下安装Oracle 10g R2

# yum -y install libxtst.i686

开始执行安装程序。

CentOS 6.3(x86_64)下安装Oracle 10g R2

由于相关的前置作业已经在之前做好了,在这个步骤只需要将unix dba group选择为dba以及输入sys, system等账号共享的database

password即可。然后选择next即可。

CentOS 6.3(x86_64)下安装Oracle 10g R2

同样的,将群组选择为dba群组,按next

在这个步骤中,请点选checking network configuration requirements为user

verified,接着按下next

CentOS 6.3(x86_64)下安装Oracle 10g R2

最后出现install summary画面,此时只要按下install按钮,系统即开始安装。

CentOS 6.3(x86_64)下安装Oracle 10g R2

安装过程...

CentOS 6.3(x86_64)下安装Oracle 10g R2

安装进度大约到65%时会有错误提示:

error in invoking target ‘collector‘

of makefile ‘/opt/oracle/102/sysman/lib/ins_emdb.mk‘.

CentOS 6.3(x86_64)下安装Oracle 10g R2

同时orainventory/logs/目录下的安装日志文件里面会有如下类似错误提示:

CentOS 6.3(x86_64)下安装Oracle 10g R2

这是oracle安装程序的一个bug,可以忽略此错误继续安装,对系统没什么影响。

在configuration assistants 时会出现错误提示:

oui-25031:some of the configuration assistants failed.

CentOS 6.3(x86_64)下安装Oracle 10g R2

分析:主机名映射错误

解决:修改/etc/hosts文件,增加ip地址与主机名的映射如下:

CentOS 6.3(x86_64)下安装Oracle 10g R2

接着会遇到错误提示:

ora-27125:unable to create shared memory segment

CentOS 6.3(x86_64)下安装Oracle 10g R2

1. 确定安装oracle所使用的用户组

可以看到oracle组dba id 为501。

2. 修改内核参数

echo "501" >/proc/sys/vm/hugetlb_shm_group

就可以了。

CentOS 6.3(x86_64)下安装Oracle 10g R2

安装到数据库设置助理,可以在这边选取password management作密码的修改,如不需要修改,只需要按下ok按钮即可。

CentOS 6.3(x86_64)下安装Oracle 10g R2

安装完成前,出现以下的设置脚本:

CentOS 6.3(x86_64)下安装Oracle 10g R2

开启一个新的终端,su到root。

将要求执行的两段script依序执行。

/opt/oracle/orainventory/orainstroot.sh

/opt/oracle/102/root.sh

CentOS 6.3(x86_64)下安装Oracle 10g R2

执行画面如上图。

执行完后,回到安装窗口按下ok完成所有的oracle安装。安装完成会出现以下画面。

CentOS 6.3(x86_64)下安装Oracle 10g R2

此时,您可以以上述网址,作为测试,登入账号可以为sys或system

http://centos-oracle:5560/isqlplus

http://centos-oracle:5560/isqlplus/dba

http://centos-oracle:1158/em

CentOS 6.3(x86_64)下安装Oracle 10g R2

以上画面都成功代表oracle已经正常安装了。

六、升级oracle到patchset 10.2.0.4

1、升级软件

a. 关闭需要升级的实例

停止实例

sql> shutdown immediate

停止与该实例相关的所有后台进程

$ emctl stop dbconsole

$ isqlplusctl stop

$ lsnrctl stop

CentOS 6.3(x86_64)下安装Oracle 10g R2

b. 备份oracle数据库

c. 运行升级包升级软件

将补丁包p6810189_10204_linux-x86-64.zip解压;进入解压后的目录,执行安装命令。

CentOS 6.3(x86_64)下安装Oracle 10g R2

点击“next”

CentOS 6.3(x86_64)下安装Oracle 10g R2

指定oracle home 目录详细,点击“next”

CentOS 6.3(x86_64)下安装Oracle 10g R2
CentOS 6.3(x86_64)下安装Oracle 10g R2
CentOS 6.3(x86_64)下安装Oracle 10g R2

点击“install”,进行安装。

CentOS 6.3(x86_64)下安装Oracle 10g R2

升级过程...

CentOS 6.3(x86_64)下安装Oracle 10g R2

需要执行脚本/opt/oracle/102/root.sh

CentOS 6.3(x86_64)下安装Oracle 10g R2

开一个新窗口,在root账户下执行脚本。

CentOS 6.3(x86_64)下安装Oracle 10g R2

执行完后,回到安装窗口按下“ok”完成所有的oracle安装。安装完成会出现以下画面。

CentOS 6.3(x86_64)下安装Oracle 10g R2

点击“exit”,退出oracle的升级。

如果此前并没有创建数据库,那么升级到10.2.0.4到此就结束了。然后可以去创建新的数据库。

如果此前已经创建了数据库,那么按以下步骤升级数据库到10.2.0.4版本。

2、升级数据库

a. 更新数据字典

$ sqlplus / as sysdba;

sql> startup upgrade

sql> spool patch.log

sql> @?/rdbms/admin/catupgrd.sql

CentOS 6.3(x86_64)下安装Oracle 10g R2

升级过程比较长,请耐心等待。

CentOS 6.3(x86_64)下安装Oracle 10g R2

升级完毕,总耗时38分钟26秒。

sql> spool off

CentOS 6.3(x86_64)下安装Oracle 10g R2

b. 关闭并重启数据库

sql> startup

c. 编译无效pl/sql包

sql> @?/rdbms/admin/utlrp.sql

CentOS 6.3(x86_64)下安装Oracle 10g R2

编译成功。

CentOS 6.3(x86_64)下安装Oracle 10g R2

d. 检查升级是否成功,如果所有组件的status都是valid表示升级成功。

sql> select comp_name, version, status from

sys.dba_registry;

CentOS 6.3(x86_64)下安装Oracle 10g R2

e. 检查是否有升级错误

sql> select * from utl_recomp_errors;

CentOS 6.3(x86_64)下安装Oracle 10g R2

f. 修改系统兼容性参数

sql> alter system set compatible=‘10.2.0.4.0‘ scope=spfile;

sql> shutdown

CentOS 6.3(x86_64)下安装Oracle 10g R2

升级完成。

  在linux中运行sql*plus,不能调用历史命令;输错字符后也不能按backspace键或del键删除,虽然可以通过ctrl+backspace组合键实现删除功能,但是严重影响使用效率。使用第三方软件rlwrap可以实现以上功能。

  rlwrap提供了readline的封装(bash下命令的输入都是通过readline这个库来处理的。也就是说,上下箭头查看历史命令,ctrl+r反向查找匹配历史输入,以及ctrl+w,

ctrl+a等等操作都是由readline提供的),也就是说rlwrap提供一个输入环境,在这个输入环境下可以使用readline的各种功能。如果一个程序在命令行下接受输入,那么用rlwrap直接就可以得到像在bash下输入那样的效果。

7.1 安装rlwrap

rlwrap封装了readline,所以安装rlwrap之前需要安装readline库。可以通过yum方式安装,也可以下载源码包进行安装。官方网站:

i. yum方式安装

centos系统默认的yum软件仓库中没有rlwrap这个包,需要通过第三方yum源安装。

a. 安装第三方yum源

# rpm -ivh

http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# rpm --import

/etc/pki/rpm-gpg/rpm-gpg-key-epel-6                         

//导入key

默认会在/etc/yum.repos.d/下创建epel.repo和epel-testing.repo两个配置文件。

b. 安装rlwrap和readline

# yum install rlwrap readline readline-devel

ii. 源码包安装

其他linux发行版如果源里没有rlwrap和readline的(如suse企业版默认没有这两个包),要分别下载这两个源码包编译安装一下。

a. 安装readline

b. 安装rlwrap

7.2 设置sqlplus的系统别名

# vim /home/oracle/.bash_profile

在尾部添加:

退出oracle用户再重新登录就ok了。现在linux下的sqlplus用起来就像cmd中一样了。

centos 6.3(x86_32)下安装oracle 10g r2

linux oracle服务启动&停止脚本与开机自启动