最近公司起了新项目,SE指定了搭建环境的软件版本,我作为测试搭建测试环境。几年没有搭建服务器,中途遇到了不少问题,记录下来方便自己跟大家少走弯路节省时间。
本篇就先讲下oracle从搭建到启动到连接遇到的问题。安装过程安考网上的一篇文档《SUSE Linux 11 Oracle 11g的安装.doc》。基本上参考这个文档可以解决大部分问题,但我还是遇到了一些文档中没提到的问题,通过各种 途径最终将其解决。
一、环境
软件版本:
linux11 sp2
tomcat7
oracle11g r2
二、遇到的问题及解决办法
1、建立数据库开始第一步时,切换到数据库解压后的database路径,运行./runInstaller,没有弹出图形界面
这个没有弹出图形界面的问题在后面建立数据库时还会遇到,在这一步我取巧绕过了问题,但在建立数据库时绕不过去了。
这里先说下我是怎么绕过问题的。
很简单,使用xmanager连接单板主机,登录名不使用root,而使用oracle。连接成功后在桌面点击鼠标右键,选择open in terminal,在新打开的命令窗口里切换到database,输入./runInstaller,这样就弹出了安装的图形界面
2、安装快要结束的倒数第二步,会检测安装需要的环境,一堆rpm包是否安装成功。这时候我发现一堆没安装的rpm包。
网上给了几种办法,1)yast -i<包名>,2)rpm –ivh xxx.rpm --nodeps –force,但这两种方式都没有解决我的问题,全部是安装失败。后来发现是我的linux镜像包没有加载上,那就尝试将安装镜像mount一下,很遗憾,mount失败。这里我偷懒了,没有寻找为何mount失败,直接切换到root用户,使用yast2命令,选择software-software repositories,将linux安装镜像挂载成功。(这里还要注意,镜像文件需要跟安装的linux系统一致。)挂载成功后,我也没有通过钱啦ing中办法安装,而是通过操作系统自带的install/remove sotware功能,搜索需要的包名,直接图形安装,比如我需要gcc-32bit+43+4.3.3_20081022.rpm,我就直接搜索gcc,把搜索出来的全装了,因为有些包之间有依赖关系,单独安装某一个会提示我们需要先安装别的包,索性全装了。
3、安装成功后,建立数据库第一步,输入dbca,图形界面又出不来,
提示DISPLAY not set.
Set DISPLAY environment variable, then re-run.
去网上搜索,给出的建议是切换到root下,输入xhost +,我照办,出现新错误:xhost: unable to open display ""
ok,继续搜索这个新错误怎么解决,网上解释是DISPLAY变量没有设置。给出建议是设置display变量。具体步骤是先输入vncserver,确保vnc服开启。再输入export DISPLAY=主机ip:0.0或export DISPLAY=主机ip:1.1,再输入xhost +,此时如果提示”access control disabled, clients can connect from any host“,就证明问题解决了。再切换回oracle,输入dbca就应该可以看到图形界面了
4、数据库建立成功后,启动不了,报错如下:
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/app/oracle/product/11gR2/db_1/dbs/inittelecom.ora'
其中inittelecom.ora中的telecom是我的数据库实例名。
去这个目录下查了下,的确没有这个文件。需要我们切换到root,去$ORACLE_BASE/admin/telecom/pfile/init.ora.524201615731形式的文件copy到$ORACLE_HOME/dbs目录,改名为inittelecom.ora(注:inittelecom.ora中的telecom为我们的数据实例名 )
这时候切换回oracle,再去startup就没问题了
5、本地pc机不想安装oracle客户端,太大还卡。就想用navicat for oracle连接服务器数据库
安装好navicat for oracle,输入主机名、服务名、监听端口号、账号、密码,但连接报错。报错ORA-28547。原因是Navicat本地的OCI版本与Oracle服务器不符造成的。需要我们去http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html下载跟服务器oracle版本一致的OCI版本。下载好后解压,复制oci.dll、orannzsbb11.dll、oraocci11.dll、oraociei11.dll这4个文件,将这4个文件覆盖到navicat安装目录下,具体路径是\Navicat for Oracle\instantclient_10_2下,再次启动navicat,就能连接成功了。当然前提是别忘了先把服务器oracle startup,并且监听也start
注:oracle 11g 的OCI文件我传到了CSDN,需要的可以直接下载。地址:http://download.csdn.net/detail/lfxxandyx/9561461