前言这次,我们将在Linux下来动手完成Oracle数据库的安装与使用。Oracle本身是可以免费下载的包括它的企业版以及被它收购的Weblogic和Sun中的几乎任何东西你都可以拿来下载和使用,不像IBM和Tibco一些其它厂商,只有“试用版”给你下载,Oracle的东西没有时间限制,你拿来做练习,搭实验环境都是没有任何的问题的。但是,如果你出了问题,需要用到Oracle的补丁或者是Oracle的技术支持,这就开始收费。Oracle就是这种“卖Service”的模式。还有就是你安装了Oracle后,你的应用是给另一家企业用的或者是带有商业用途,那对不起Oracle也会问你来收费。在linux下安装oracle是一件令人生畏的事情,其复杂程度远远超过安装linux操作系统本身。如果能够进行成功的安装oracle,那么同时也就顺便掌握了linux一些技术。本文介绍在redhatlinux下安装oracle10g的方法。在这里说明一下,Oracle10g的g是grid的缩写,意为网格,目前较为前沿的网络计算技术。一、安装Oracle前的准备这次我们将在Linux环境下安装Oracle,对Oracle支持最好的莫过于SuSeLinux,但是随着后来RedHat走向了商业化后,RedHat与Oracle公司开始形成一种密切的关系,因此如果你手上有RedHatAs5.5x及以下版本或者是Fedora14及以上版本话那是最好不过了。Oracle下载地址:进入下载确保你是用的是root帐号,执行下列步骤1.1在Linux上先安装相应的JDK下载jdk1.6forLinux,请注意32位与64位的区分,需要和你的操作系统对应上哦!打开一个Terminal窗口进入到你的jdk下载的目录下并输入:./jdk-6u19-linux-i586-rpm.bin我们默认将jdk安装于“/usr/java/jdk1.6.0_19”目录吧。接下来我们需要修改系统环境变量,在terminal窗口中键入“vi/etc/profile”在这个profile文件内加入两行:exportJAVA_HOME=/usr/java/jdk1.6.0_19exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH1.2测试我们的jdk安装是否正确打开一个terminal窗口并输入看到正确的jdk版本信息后即代表我们的jdk在linux下安装正确了1.3Oracle安装前的环境变量配置还是编辑那个profile文件并加入如下几行:[plain]viewplaincopyprint?1.exportJAVA_HOME=/usr/java/jdk1.6.0_19br/2.exportPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/binbr/3.exportORACLE_BASE=/opt/oraclebr/4.exportORACLE_HOME=$ORACLE_BASE/product/10br/5.exportORACLE_SID=ktdbbr/6.exportORACLE_TERM=xtermbr/7.exportNLS_LANG=AMERICAN_AMERICA.UTF8br/8.exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/libbr/通过上述环境变量我们可以得知,我们的oracle装安装在/opt/oracle/product/10目录下,所以我们的ORACLE_BASE为:/opt/oracle我们的ORACLE_HOME即为:/opt/oracle/product/10了。这些变量是Oracle在安装过程中需要读取的,在windows下安装oracle是不需要设这些东西的。1.4创建Oracle安装时使用的用户与组打开一个Terminal窗口输入下列命令[plain]viewplaincopyprint?1.groupaddoinstall2.groupadddba3.useradd-goinstall-Gdbaoracle4.passwdoracle1.5创建Oracle的安装路径并将此路径的读写权限赋予Oracle这个“组”我们安装Oracle时一般是不会用root用户的,因此我们需要增加一个角色(group),并在这个角色中增加一个用户(oracle)然后用这个用户登录我们的Linux并且执行安装。[plain]viewplaincopyprint?1.mkdir-p/opt/oracle/product/102.chown-Roracle.oinstall/opt/oracle/1.6在profile中设置图形显示参数打开一个terminal窗口,然后编辑/etc/profile,在其中加入[plain]viewplaincopyprint?1.xhost+[plain]viewplaincopyprint?1.DISPLAY=machine-name:0.0;exportDISPLAY它代表使得所有的用户可以使用图形化界面来运行相关的图形化应用程序,因为Linux的安全机制相当的严格,root是最高权限,除去root以外的其它用户如果需要拥有root才能执行的权限就需要授予权1.7在Linux系统中安装Oracle安装时需要的系统lib库一般来讲,Oracle主要需要下面的这些Lib库[plain]viewplaincopyprint?1.gcc-3.2.3-22.make-3.793.binutils-2.114.openmotif-2.2.2-165.setarch-1.3-16.compat-gcc-7.3-2.96.1227.compat-gcc-c++-7.3-2.96.1228.compat-libstdc++-7.3-2.96.1229.compat-libstdc++-devel-7.3-2.96.122但是。。。Linux下的Lib库也是有依赖关系的,我给初学都的建议是你可以在刚开始安装Linux时就选customerinstall,然后选中相应的lib库,除去open-jdk(这个不能装,装完后sun的jdk就不起作用了,你到时还要卸),把dev相关的lib,gcc相关的lib都选上,还有gnome相关,KDE相关的lib库,有时全选上后回过头来要去安装的package里手工check,有没有java相关的被安装了,如果安装了就一定要把安装项前的勾选项,去掉,一定不能让Linux安装自带的openjdk。二、开始在Linux下安装OracleOracle10g在Linux下有版本检查的限制,如果你的LinuxRedHat的版本低于5,那么你可以在Oracle的安装盘disk1下,直接运行如下命令调出图形化安装界面[plain]viewplaincopyprint?1../runInstaller如果你的Linux的版本是AS5.5及以上(目前最新的Linux),那么请你使用下面这条命令来安装Oracle[plain]viewplaincopyprint?1./runInstaller–ignoreSysPrereqs这条命令将跳过Oracle安装对于Linux系统内核的检查。主安装界面出现按照上述步骤一步步把Oracle装上,注意安装时字符集永远选用AL32UTF-8,这样你的Oracle才能支持多语言。三、Oracle安装后的一些设置3.1设置Oracle的服务开机自动启动编辑/etc/rc.local/文件以下是dbstart.sh文件的内容存盘后每次你重启Linux,Oracle就会随着你的Linux的开机而自动运行起来了(还有更专业的设置,将在以后的教程中传授,对于初学者想自己搭个环境的选用这个,嘿嘿)。3.2设置Oracle的processes,session,MaximumOpenCursor其们在使用sys用户连上Oracle后可以使用这条命令来显示这三个兄弟[plain]viewplaincopyprint?1.showparameterprocesses;一般安装好后,这个processes默认为150,网上有很多人说如果碰到用户的session不够就去用alter命令改这个sessionnumber,其实是不对的。session与processes是绑定的,用下面的公式:sessions=1.1*processes+5所以你只有改这个processes,session才会自动调整,我们可以使用下面这条命令去改变系统中的processes[plain]viewplaincopyprint?1.altersystemsetprocesses=500scope=spfile;这个processes不是乱设的,是要和你系统的内核设置去绑定的。四、Oracle的性能调优ClientConfigurationUserRolePrivilegeSGATableSpaceImportOracleAndOSKernelOracleUnder32bitsOSSQLPlanTableAnalyzePartitionTablePerformanceMonitor我们的Oracle性能调优主要用围绕上述几个章节来做介绍,我们不介绍太高深的莫明奇妙的理论,在这边我们对这几个方面做一个统用的解释和实际应用场景,如果是新手,你在看过这篇教程后应该知道一个oracle的性能主要从几个方面(Common)去着手,对一个熟手来说上述每个小节的具体内容都是可以在Oracle的DBA手册中找到更详细的内容。4.1客户端的配置:TNS(ClientConfiguration:TNS)配置主机名:Oracle的连接服务是基于主机名的,我们需要设置装Oracle这台主机的唯一主机名,这样客户端才能通过TNS来连上Oracle的服务请更改Oracle所在服务器上的/etc/hosts文件[plain]viewplaincopyprint?1.#Donotremovethefollowingline,orvariousprograms2.3.#thatrequirenetworkfunctionalitywillfail.4.5.6.192.168.1.3myoracleserver7.8.127.0.0.1localhost.localdomainlocalhost这边的192.168.1.3就是我们的主机ip,后面的myoracleserver就是主机名。配置客户端连接一个客户端如果需要连接Oracle必须安装OracleClient,可以去Oracle网站上下载进入下载。Oracle11g开始后不再提供图形化的Oracle客户端下载,但尽管是这样你也必须在客户机上尤其是那些支持TNS连接的第三方客户端时都是必须安装Oracle客户端的。、我们选择“管理员模式进行安装。安装完后,你会在你的”启动“菜单里找到这样的一个菜单项更改客户端的字体使其可以支持中文的正常显示编辑注册表把这个NLS_LANG改成上图中所示,这样你的Oracle的客户端上可以直接通过客户端工具或者是第三方客户端工具进行中文的正常录入了而不是乱码了。4.2在Oracle中建立帐号与分配权限使用system帐号登录创建用户之前先要创建表空间一般我们创建一个表空间和一个临时表空间然后我们就可以开始创建用户了分配角色对于一个j2ee的应用连接Oracle来说,这个连接用户的角色只需要具有上述两个权限就够用了,有些人喜欢给这个用户DBA权限是太绝对了,当然这样给角色使用起来方便,什么权限都有了,不需要我在开发时再进行细化的设置了。可是,你有没有想到过,一旦你的应用被人sqlinjection后,而你的应用上连接着oracle的用户是dba