Linux+php+apache+oracle环境搭建之CentOS下安装Oracle数据库
这里推荐使用OTK脚本安装Oracle,会大大提高安装Oracle的成功系数。
Description oraToolKitistheSwissArmyKnifeforOracle.StandardsandwelldesignedtoolshelpDBA'smasteringOracle10g/11gthroughoutthewholelifecycle.OTKrunsonLinux,zLinux,Solaris,AIX,HP-UXandotherUNIXbasedsystems. 来自<http://sourceforge.net/projects/oratoolkit/?source=navbar>
一,安装Oracle约束
1、内存要求
最小内存1G,推荐2G或2G以上
2、swap大小设定
1GB跟2GB物理内存之间的,设定swap大小为物理内存的1.5倍
2GB跟16GB物理内存之间的,设置swap大小与物理内存相等
16GB物理内存以上的,设置swap大小为16GB
3、共享内存/dev/shm要求
至少比在每个oracle实例中的MEMORY_MAX_TARGET和MEMORY_TARGET要大。
4、/tmp空间大小要求
至少1GB空间
5、硬盘大小要求
存放oracle软件文件和数据文件的空间至少10GB
6、操作系统
CentOS6.564bit
-BasicServer
二,安装步骤
1.安装Oracle需要的文件:
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
oratoolkit-1.0.2.1.5-1.noarch.rpm
下载这三个文件,放在/media/oracle目录下。
2.安装OTK
root用户登录
把oratoolkit-1.0.2.1.5-1.noarch.rpm安装包移动到yum本地数据源文件夹/Media/Packages下
在Packages下执行安装命令
#yum-yinstalloratoolkit*
3.修改Oracle用户密码
OTK已经帮我们建立了oracle用户,下面需要设置oracle用户密码
#passwdoracle
4.检查环境依赖关系工具swReqCheck
OTK提供了智能检查环境依赖关系,即检查Linux系统还有什么不满足的条件,比如缺少安装包。
#/opt/oracle/otk/current/bin/installManagerswReqCheckosSetup11gR2.cfg .. .. .. 20140419_010832:Info:ActionswReqCheckofinstallManagerendedwith44WARNINGS
我的系统安装的是CentOS6.564bit-BasicServer,新系统缺少的安装包较多,检查出44个WARNINGS。
其中43个缺少的安装包,一个可忽略的WARNING:
#20140419_011022:Warning:OraclesoftwarerunsonCentOShoweverthiscombinationisNOTsupportedbyOracle
安装必须安装的安装包:用一个Shell脚本来解决问题,OTK提供了必须安装的安装包清单。
#先拼装命令 REQ_FILE_DIR="/opt/oracle/otk/current/conf/installManager/requirement" REQ_FILE_PATH="$REQ_FILE_DIR/ora11gR2-redhat-5-x86_64.pkg.lst" YUM_COMMAND=$(echo"yum-yinstall") YUM_COMMAND+=$(egrep-v"#"$REQ_FILE_PATH|grep32-bit|awk'{print""$1".i[356]86"}') YUM_COMMAND+=$(egrep-v"#"$REQ_FILE_PATH|grep64-bit|awk'{print""$1".x86_64"}') #用echo看看最终拼装的命令是什么样 echo$YUM_COMMAND #执行命令 $YUM_COMMAND #再次执行环境检查 /opt/oracle/otk/current/bin/installManagerswReqCheckosSetup11gR2.cfg
再次检查结果:
#20130521_170131:Info:ActionswReqCheckofinstallManagerwithONEWARNING
剩下一个可忽略的警告。说明环境已经满足Oracle安装了。
5.编译安装rlwrap(增强SQLPLUS功能)
rlwrapisawrapperthatusestheGNUreadlinelibrarytoallowtheeditingofkeyboardinputforanyothercommand.Inputhistoryiskeptbetweeninvocations,separatelyforeachcommand;historycompletionandsearchworkasinbashandcompletionwordlistscanbespecifiedonthecommandline. 来自<http://utopia.knoware.nl/~hlub/uck/rlwrap/>
OTK集成了rlwrap工具
rlwrap增强了SQLPLUS的执行命令历史记录和自动完成功能
编译安装rlwrap
#cd/opt/oracle/otk/current/tools/rlwrap/ #./configure #make #makeinstall #rlwrap-v
rlwrap0.30
6.使用OTK工具installManager安装osSetup
OntheonehanditdoeswhatisrequiredfromOracledocumentationandontheotherhanditsetupsalsotheenvironmentforOTK.Thenextbulletlistshowsasummary. 来自<https://www.oratoolkit.ch/tutorials/gettingStartedV.php> #/opt/oracle/otk/current/bin/installManagerosSetuposSetup11gR2.cfg
7.把Oracle安装文件移入资源目录
OTK默认读取oracle安装文件的目录是/var/opt/oracle/repository;
OTK的swInst实例安装命令会读取这个目录:
#cd/media/oracle #chownoracle:oinstall* #mvlinux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip/var/opt/oracle/repository/
8.登录Oracle用户,修改配置文件
#su-oracle ------------------------------------------------------ oraToolKitenvironmentvariables ------------------------------------------------------ Installationdirectory:/opt/oracle/otk Release:1.0.2.1.5 $RUNdirectory:/opt/oracle/otk/1.0/bin $LOG_BASEdirectory:/var/opt/oracle/otk/1.0/log ------------------------------------------------------ #vi.profile.custom.interactive
修改文件中的SITE值。
9.安装Oracle数据库
OTK是用swInst安装数据库的,swInst的工作原理:
ThemainpurposeofswInstactionistoexecuteOUIinsilentmodeinordertoinstallthesoftware.However,beforeitcanbeexecuteditisrequiredtounzipthefilecontainingthesoftware.OTKstartshereandtakescarealsoabouttheextractionbeforelaunchingrunInstallerscript. 来自<https://www.oratoolkit.ch/tutorials/gettingStartedVII.php>
用一个Shell脚本来安装数据库:
#bash #/opt/oracle/otk/1.0/conf/installManager配置文件路径 cd$INSTALL_CONF #拷贝Oracle11gR2配置文件,Step1,2,3 cpsample/swInstEeSrv11gR2-Step[123]-linux-x86_64.cfg. #swInst引导安装 installManagerswInstswInstEeSrv11gR2-Step1-linux-x86_64.cfg installManagerswInstswInstEeSrv11gR2-Step2-linux-x86_64.cfg installManagerswInstswInstEeSrv11gR2-Step3-linux-x86_64.cfg
稍等片刻,最后输出如下信息:说明安装成功。
----------------------------------------------------------------------------------------------------
20140419_132032:Info:ExecutinglibinstallManager.printInfoMsgfunction Checkinthelogsiftherearecommandstobeexecutedmanually. -Usually/opt/oracle/sesrv/11.1.0/db1/cfgtoollogs/configToolAllCommandscontainssuchcommands -Usually/opt/oracle/sesrv/11.1.0/db1/root.shwithrootprivilegeshastobeexecutedincaseappctlframeworkisnotused. -Usually/opt/oracle/sesrv/11.1.0/db1/install/changePerm.shneedstobeexecutedwhenotherOSusersrequiresOraclelibraries ---------------------------------------------------------------------------------------------------- 20140419_132032:Info:ActionswInstofinstallManagerendedsuccessfully ----------------------------------------------------------------------------------------------------
完成剩余配置,执行root.sh命令,安装最后需要手工执行剩余的脚本:
#su- #/opt/oracle/eesrv/11.2.0/db1/root.sh #exit
10.创建数据库实例
OTK采用dbSetup来创建实例
#cd$INSTALL_CONF #ls-ldbSetup*.cfg dbSetup-dev.cfg dbSetup-prod.cfg dbSetup-test.cfg
我安装的是开发模式(dev),我们还看到测试模式(test)和生产模式(prod);
修改dbSetup-dev.cfg配置文件,必须修改的配置为:
ORACLE_HOME的值:
$ORACLE_BASE/sesrv/11.1.0/db1
修改为:
$ORACLE_BASE/eesrv/11.2.0/db1
执行安装命令:
#installManagerdbSetupdbSetup-dev.cfg
接下来会看到在安装数据库实例,大约十几分钟,最后看到如下输出:
---------------------------------------------------------------------------------------------------- 20130419_013000:Info:Executinglibmiscellaneous.getFooterfunction 20130419_013000:Info:TerminatinginstallManagerexecution 20130419_013000:Info:Summarylogfile:/var/opt/oracle/otk/1.0/log-old/installManager/../installManager.log 20130419_013000:Info:Detailedlogfile:/var/opt/oracle/otk/1.0/log-old/installManager/dbsetup-20130522_012901.log 20130419_013000:Info:ActiondbSetupofinstallManagerendedsuccessfully ----------------------------------------------------------------------------------------------------
Congratulations!数据库可以使用了。
11.登录SQLPLUS
#su-oracle ------------------------------------------------------ Oracledatabaseenvironmentvariables ------------------------------------------------------ $ORACLE_HOME:/opt/oracle/eesrv/11.2.0/db1 $ORACLE_SID:dev $TNS_ADMIN:/opt/oracle/network ------------------------------------------------------ ------------------------------------------------------ oraToolKitenvironmentvariables ------------------------------------------------------ Installationdirectory:/opt/oracle/otk Release:1.0.2.1.5 $RUNdirectory:/opt/oracle/otk/1.0/bin $LOG_BASEdirectory:/var/opt/oracle/otk/1.0/log ------------------------------------------------------ #sqlplus/assysdba SQL*Plus:Release11.2.0.1.0ProductiononSatApr1911:27:472014 Copyright(c)1982,2009,Oracle.Allrightsreserved. Connectedto: OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-64bitProduction WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions SQL>
查看数据库有哪些用户
SQL>selectusernamefromdba_users; USERNAME ------------------------------ SYSTEM SYS OTK ORACLE_OCM DBSNMP DIP OUTLN EXFSYS PERFSTAT APPQOSSYS HAPROBE 11rowsselected.
说明SQLPLUS可以使用了。
12.使用CTL管理数据库
OTK提供了一个通用的Oracle数据库管理工具,它代替了Oracle的APPCTL框架。
$ctlstatusall//查看当前状态
#ctlstartall//启动数据库
$ctlstopall//停止数据库