O 管理红帽安装
CentOS (x86_32)下安装 Oracle 10g
R2
一、硬件要求
1、内存&swap
Minimum:1GBofRAM
Recommended:2GBofRAMormore
检查内存情况
#grepMemTotal/proc/meminfo
#grepSwapTotal/proc/meminfo
2、硬盘
由于 CentOS安装后差不多有 4~5G,再加上 Oracle等等的安装,所以请准备至
少 10G的硬盘空间。
检查磁盘情况
#df-h
二、软件
系统平台:(x32)
Oracle版本:Oracle10gR2
三、系统安装注意
系统安装时一定要安装桌面模式,否则无法安装 oracle,另外请勿开启
SELinux,oracle官方不建议使用 SELinux,CentOS的防火墙也请暂时关闭,减
少安装时的困扰。为防止 Oracle安装过程中出现乱码,建议使用英文作为系统
语言,进行 Oracle的安装工作。
本文中所描述的系统命令,未经特殊标示,均为“#”代表 root权限,“$”代
表 oracle权限。
四、安装 Oracle前的系统准备工作
首先,请先以 root账号登入作一些前置设定作业。
1、关闭防火墙、禁用 SELinux
#setup
#vi/etc/selinux/config
修改 SELINUX=disabled,然后重启。
如果不想重启系统,使用命令 setenforce0
2、安装依赖包
Oracle官方文档要求的安装包:
查看 Oracle相关包是否已经安装:
用 yum方式安装所需的包:
#yum-yinstallbinutilscompat-libstdc++-33compat-libstdc++
ils-libelfelfutils-libelf-develgccgcc-c++-commong
-dev
++libstdc++.i686libstdc++-
develmakesysstat
最后还需要安装 libXp这个 Library,这个一定要安装,否则安装 Oracle时会
出现 javaException。
#vivi
3、创建 Oracle用户与组
在这里只讨论单主机环境,不考虑 RAC环境的配置。
执行以下指令以新增 oracle安装时所需要的使用者与群组。
(1)建立群组 oinstall
#groupaddoinstall
(2)建立群组 dba
#groupadddba
(3)新增使用者 oracle并将其加入 oinstall和 dba群组
#useradd-m-goinstall-Gdbaoracle
(4)测试 oracle账号是否建立完成
#idoracle
(5)建立 oracle的新密码
#passwdoracle
4、将 oracle使用者加入到 sudo群组中
#vi/etc/sudoers
找到 rootALL=(ALL)ALL这行,并且在底下再加入
oracleALL=(ALL)ALL
输入 wq!(由于这是一份只读文档所以需要再加上!)并且按下 Enter
5、配置系统内核参数
#vi/etc/
并输入以下内容:
=2097152//表示系统一次可以使用的共享内存总量(以页为单
位)。缺省值就是 2097152,通常不需要修改
=2147483648//定义了共享内存段的最大尺寸(以字节为单位)。
缺省为 32M,对于 oracle来说,该缺省值太低了,通常将其设置为 2G
=4096//用于设置系统范围内共享内存段的最大数量。该参数的默
认值是 4096。通常不需要更改
=25032000100128//表示设置的信号量
_local_port_range=102465000
_default=4194304//默认的接收窗口大小
_max=4194304//接收窗口的最大大小
_default=262144//默认的发送窗口大小
_max=262144//发送窗口的最大大小
会有一些与目前的参数重复的,就修改成文件上提供的。
编辑完之后,储存,然后执行:
#sysctl–p
启用刚刚所做的变更。
6、编辑/etc/security/
#vi/etc/security/
加入以下四行
vi
7、编辑/etc/
#vi/etc/
sessionrequired/lib/security/
8、修改/etc/profile
#vi/etc/profile
将以下代码新增到 profile档案中。
m
if[$USER="oracle"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
fi
9、修改 Linux发行版本信息
由于 Oracle10g发行的时候,CentOS6没有发行,所以 Oracle10g并没有对
CentOS6确认支持,需要修改文件让 Oracle10g支持 CentOS6。
我们需要手工修改 Linux的发行注记,让 Oracle10g支持 CentOS6。
编辑/etc/redhat-release文件
#vi/etc/redhat-release
将其中的内容 (Final)修改为 redhat4
10、创建 Oracle安装文件夹以及数据存放文件夹
#mkdir/opt/oracle
#mkdir/opt/oracle/102
#chown-Roracle:dba/opt/oraclevi
11、配置 Linux主机
检查/etc/hosts文件中是否有 localhost的记 re录(指向 即可),
若没有的话,在后面配置 Oracle监听的时候会出现一些问题,导致无法启动监
听,在此手工添加此记录即可。
第一阶段到此完毕,接下来,完成这些设定之后,请先注销 root账号,并且以
oracle账号再次登入系统。
12、配置 oracle用户环境变量
$cd/home/oracle
$_profile
修改并加入以下內容
so
保存后使用如下命令,使设置生效:
$source/home/oracle/.bash_profile
五、安装 Oracle,并进行相关设置
1、解压缩安装文件
将下载的 放至即将安装 oracle的文件夹
/opt/oracle
回到终端模式并且进入到 oracle文件夹:
$cd/opt/oracle
解压缩
$
接着会看到一连串的解压缩动作。
解压缩完成会在同一个文件夹中看到 database的文件夹,请进入到 database文
件夹中:
$cddatabase
准备执行数据库安装,如果你的 centos是中文环境,安装时会出现中文乱码,
请下以下指令
$exportLANG=en_US
接着执行
$./runInstaller
如果无法看到安装界面,请使用 root帐户执行如下命令后再运行安装程序:
#exportDISPLAY=:
#xhost+
$./runInstaller
开始执行安装程序。
由于相关的前置作业已经在之前做好了,在这个步骤只需要将 UNIXDBAGroup选
择为 dba以及输入 SYS,SYSTEM等账号共享的 databasePassword即可。然后选择
Next即可。
同样的,将群组选择为 dba群组,按 Next
在这个步骤中,请点选 CheckingNetworkConfigurationrequirements为
UserVerified,接着按下 Next
最后出现 InstallSummary画面,此时只要按下 Install按钮,系统即开始安装。
安装过程...
数据库设置助理,可以在这边选取 passwordmanagement作密码的修改,如不需
要修改,只需要按下 ok按钮即可。
安装完成前,出现以下的设置脚本:
开启一个新的终端,su到 root。
将要求执行的两段 script依序执行。
/opt/oracle/oraInventory/
/opt/oracle/102/
执行画面如上图。
执行完后,回到安装窗口按下 OK完成所有的 oracle安装。安装完成会出现以下
画面。
此时,您可以以上述网址,作为测试,登入账号可以为 sys或 system
http://CentOS-Oracle:5560/isqlplus
http://CentOS-Oracle:5560/isqlplus/dba
http://CentOS-Oracle:1158/em
执行查询语句测试
以上画面都成功代表 oracle已经正常安装了。
但由于在 linux环境下 oracle并不是以服务的形式安装,所以并不会在每次启
动 linux时,自动启动 server,所以还需要作一些设定才能自动启动,将在下
一份文件中提供。
Linux Oracle服务启动&停止脚本与开
机自启动
在 下安装完 Oracle10gR2,重开机之后,你会发现 Oracle没有自行
启动,这是正常的,因为在 Linux下安装 Oracle的确不会自行启动,必须要自
行设定相关参数,首先先介绍一般而言如何启动 oracle。
一、在 Linux下启动 Oracle
登录到 CentOS,切换到 oracle用户权限
#su–oracle
接着输入:
$sqlplus"/assysdba"
原本的画面会变为
SQL>
接着请输入
SQL>startup
就可以正常的启动数据库了。
另外停止数据库的指令如下:
SQL>shutdownimmediate
二、检查 OracleDB监听器是否正常
回到终端机模式,输入:
$lsnrctlstatus
检查看看监听器是否有启动
如果没有启动,可以输入:
$lsnrctlstart
启动监听器
SQL>connsys@orclassysdba
然后输入密码,sys以 sysdba身份登入数据库。
三、启动 emctl
另外也可以发现 :1158/em目前是没有反应的,
这边要另外启动,启动的指令如下:
$emctlstartdbconsole
这个指令运行时间较长,执行完的画面如下:
手动启动 Oracle数据库完毕,下面创建系统自行启动 Oracle的脚本。
四、Oracle启动&停止脚本
1.修改 Oracle系统配置文件:/etc/oratab,只有这样,Oracle自带的 dbstart
和 dbshut才能够发挥作用。
#vi/etc/oratab
orcl:/opt/oracle/102:Y
#Entriesareoftheform:
#$ORACLE_SID:$ORACLE_HOME:<N|Y>:
2.在/etc/ oracle,内容如下:
#!/bin/sh
#chkconfig:358010
#description:Oracleautostart-stopscript.
#
#SetORA_HOMEtobeequivalenttothe$ORACLE_HOME
#fromwhichyouwishtoexecutedbstartanddbshut;
#
#SetORA_OWNERtotheuseridoftheownerofthe
#OracledatabaseinORA_HOME.
ORA_HOME=/opt/oracle/102
ORA_OWNER=oracle
if[!-f$ORA_HOME/bin/dbstart]
then
echo"Oraclestartup:cannotstart"
exit
fi
case"$1"in
'start')
#StarttheOracledatabases:
echo"StartingOracleDatabases..."
echo"-------------------------------------------------">>/var/log/ora
cle
date+"%T%a%D:StartingOracleDatabasesaspartofsystemup.">>/var/log/orac
le
echo"-------------------------------------------------">>/var/log/ora
cle
su-$ORA_OWNER-c"$ORA_HOME/bin/dbstart">>/var/log/oracle
echo"Done"
#StarttheListener:
echo"StartingOracleListeners..."
echo"-------------------------------------------------">>/var/log/ora
cle
date+"%T%a%D:StartingOracleListenersaspartofsystemup.">>/var/log/orac
le
echo"-------------------------------------------------">>/var/log/ora
cle
su-$ORA_OWNER-c"$ORA_HOME/bin/lsnrctlstart">>/var/log/oracle
echo"Done."
echo"-------------------------------------------------">>/var/log/ora
cle
date+"%T%a%D:Finished.">>/var/log/oracle
echo"-------------------------------------------------">>/var/log/ora
cle
touch/var/lock/subsys/oracle
;;
'stop')
#StoptheOracleListener:
echo"StopingOracleListeners..."
echo"-------------------------------------------------">>/var/log/ora
cle
date+"%T%a%D:StopingOracleListeneraspartofsystemdown.">>/var/log/orac
le
echo"-------------------------------------------------">>/var/log/ora
cle
su-$ORA_OWNER-c"$ORA_HOME/bin/lsnrctlstop">>/var/log/oracle
echo"Done."
rm-f/var/lock/subsys/oracle
#StoptheOracleDatabase:
echo"StopingOracleDatabases..."
echo"-------------------------------------------------">>/var/log/ora
cle
date+"%T%a%D:StopingOracleDatabasesaspartofsystemdown.">>/var/log/ora
cle
echo"-------------------------------------------------">>/var/log/ora
cle
su-$ORA_OWNER-c"$ORA_HOME/bin/dbshut">>/var/log/oracle
echo"Done."
echo""
echo"-------------------------------------------------">>/var/log/ora
cle
date+"%T%a%D:Finished.">>/var/log/oracle
echo"-------------------------------------------------">>/var/log/ora
cle
;;
'restart')
$0stop
$0start
;;
esac
3.改变文件权限
#chmod755/etc/
4.添加服务
#chkconfig--level35oracleon
5.需要在关机或重启机器之前停止数据库,做一下操作
#ln-s/etc/
#ln-s/etc/
6.使用方法
#serviceoraclestart//启动 oracle
#serviceoraclestop//关闭 oracle
#serviceoraclerestart//重启 oracle
7.测试
a.开机自启动
Lastlogin:MonNov2619:57:
[root@ORS~]#su-oracle
[oracle@ORS~]$sqlplus"/assysdba"
SQL*Plus:-ProductiononMonNov2620:07:332012
Copyright(c)1982,2005,.
Connectedto:
-Production
WiththePartitioning,OLAPandDataMiningoptions
SQL>setlinesize300;
SQL>setpagesize30;
SQL>select*;
EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
---------------------------------------------------------------------
---------
7369SMITHCLERK790217-DEC-8080020
7499ALLENSALESMAN769820-FEB-81160030030
7521WARDSALESMAN769822-FEB-81125050030
7566JONESMANAGER783902-APR-81297520
7654MARTINSALESMAN769828-SEP-811250140030
7698BLAKEMANAGER783901-MAY-81285030
7782CLARKMANAGER783909-JUN-81245010
7788SCOTTANALYST756619-APR-87300020
7839KINGPRESIDENT17-NOV-81500010
7844TURNERSALESMAN769808-SEP-811500030
7876ADAMSCLERK778823-MAY-87110020
7900JAMESCLERK769803-DEC-8195030
7902FORDANALYST756603-DEC-81300020
7934MILLERCLERK778223-JAN-82130010
14rowsselected.
SQL>
SQL>
-Production
WiththePartitioning,OLAPandDataMiningoptions
[oracle@ORS~]$logout
[root@ORS~]#serviceoraclestop
StopingOracleListeners...
Done.
StopingOracleDatabases...
Done.
[root@ORS~]#su-oracle
[oracle@ORS~]$sqlplus"/assysdba"
SQL*Plus:-ProductiononMonNov2620:17:202012
Copyright(c)1982,2005,.
Connectedtoanidleinstance.
SQL>setlinesize300;
SQL>setpagesize30;
SQL>select*;
select*
*
ERRORatline1:
ORA-01034:ORACLEnotavailable
SQL>
SQL>Disconnected
[oracle@ORS~]$logout
[root@ORS~]#serviceoraclestart
StartingOracleDatabases...
Done
StartingOracleListeners...
Done.
[root@ORS~]#
[root@ORS~]#serviceoraclerestart
StopingOracleListeners...
Done.
StopingOracleDatabases...
Done.
StartingOracleDatabases...
Done
StartingOracleListeners...
Done.
[root@ORS~]#
至此,Oracle服务启动&停止脚本与开机自启动设置完毕。
ThefollowingJ2EEApplicationshavebeendeployedandareaccessibleattheURLslistedbelo
w.
iSQL*PlusURL:
http://localhost:5560/isqlplus
iSQL*PlusDBAURL:
http://localhost:5560/isqlplus/dba
EnterpriseManager10gDatabaseControlURL:
http://localhost:1158/em