您的位置:首页 > 数据库 > Oracle

Linux安装Oracle 11g client 并连接到Windows Server 2003下的OracleDB详记

2012-07-12 10:52 465 查看
环境:Fedora 10;Oracle 11g client

目的:通过在Linux(Fedora 10)上装oracle客户端,连接上Windows Server 2003环境下安装的Oracle数据库服务器端。

操作步骤:

1.先检查并安装补丁包:

查看命令:rpm -q ***.rmp 或模糊查询:rpm -q ***(局部文件名+“*”)

安装命令:yum install ***

需要的补丁:

1)已有的:

make-3.81-14.fc10.i386

gcc-4.3.2-7.i386

glib-2.9-3.i386

glib-devel-2.9-3.i386

2)需要下载安装的:

compat-db45-4.5.20-5.fc10.i386

compat-gcc-34-3.4.6-9.i386

compat-gcc-34-c++-3.4.6-9.i386

compat-libstdc++-33-3.2.3-64.i386

gnome-libs-1.4.2-10.fc10.i386

libaio-devel-0.3.107-4.fc10.i386

libaio-0.3.107-4.fc10.i386

libXp-1.0.0-11.fc9.i386

2.伪装

Oracle 11g client默认不能支持Fedora系列,只能认到redhat5以下。

修改:/etc/redhat-release文件,写入:Red Hat Enterprise Linux As rebease 3(Taroon)

(安装完成后修改回)

3.创建Oracle用户:Oracle 11g client一定要在oracle用户下安装完成!!!

创建用户都是在root下完成。

su - root

#groupadd dba

#groupadd oinstall

#useradd -g oinstall -G dba -m -s /bin/bash oracle

#passwd oracle 密码 // 例如我设置的密码oraclepwd

回车之后需要再输入一次密码,继续回车。

创建oracle应用程序目录:在安装时需要安装到这里设置的目录中,环境变量也要一致!!!

#mkdir -p /opt/oracle/product/11.1.0/

#chown -R oracle.oinstall /opt/oracle

4。重新启动,用oracle用户登录

5。为oracle设置环境变量

修改oracle用户根目录下的.bash_profile文件(以下内容我放在该文件开头部分了)

# LY 2010-01-01

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/client_1

export ORACLE_SID=ORCL // 注意,在安装oracle 11g DataBase时一定要勾选上默认的

//orcl,client端没有勾选内容,但要求这里设置的要与服务器的默认

// 服务名一致,或者都认可为ORCL

export ORACLE_TERM=xterm

export PATH=$ORACLE_HOME/bin :$PATH:/usr/sbin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH;

6。解压下载的oracle 11g client文件:

文件:Linuxx86的oracle数据库11g第1版客户端.zip

我放到了 Document/Oracle11gClient/中 注意:文件夹名字中不能带有空格,否则认不到啦!!!

7.开始安装oracle client 注意:一定是新建的oracle用户哦!

进入到解压目录中,找到.runInstaller 运行.runInstaller弹出安装界面

8.安装中间需要以root用户执行提示中的.sh文件,然后再点继续!!!注意看提示!

9.进入到安装的oracle目录中,/opt/oracle/product/11.1.0/client_1/bin/中

启动sqlplus,会提示libnnz11.so错误,此时需要用root用户设置selinux不可用:

#getenforce 回车提示“Enforcing”

#setenforce 0

#getenforce 回车提示“Permissive”

然后回到oracle用户,再执行sqlplus

(我在这一步提示了错误,提示oracle_home错误,查看$echo $ORACLE_HOME发现ORACLE_HOME为空,我回到根目录下,执行.bash_profile文件生效,命令是:$source .bash_profile 然后再查看$echo $ORACLE_HOME,可看到前面环境变量中设置的路径啦,此时再用sqlplus正确了)

sqlplus /nolog // 直接到SQL>中

10.进入到/opt/oracle/product/11.1.0/client_1/bin下,启动netca来设置监听及NetConfig.

Server名:orcl IP:192.168.0.90(服务器IP) 网络名(访问名):CenterDataBase

先设监听,再设NetConfig。但是在测试NetConfig时却提示用户名密码错误,用System登录提示锁住了。网上资料说用sys做sysdba登录修改system:

alter user system identified by password;

但是我操作了一下仍然不能用system。用户在监听NetConfig配置界面中测试通过。

暂时不理它,继续:改用sqlplus方式连接

$sqlplus /nolog

SQL>conn as sysdba;

发现Connected。但用语句查看用户却没有找到我在服务器中设置的Jdqcdev普通用户

SQL>select username from dba_users;

查看到29个用户,但是没有Jdqcdev,Why?

分析:连接到了服务器,可能是连接到了默认的实例orcl而没有真正连接到我们需要的CenterDataBase数据库,应该是NetConfig配置的不对!

到/opt/oracle/product/11.1.0/client_1/network/admin/目录中,修改tnsnames.ora与Windows Oracle客户端中的tnsnames.ora对比,发现同样的网路名中的内容却不一致,于是在Linux Oracle Client中的tnsnames.ora中修改如下:

CENTERDATABASE=

(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.80)(PORT=1521))

)

(CONNECT_DATA=

(SID=CENTERDATABASE) // 新增加的

(SERVER=DEDICATED) // 修改的,原来是Service_name=orcl

)

)

然后再执行sqlplus conn,查看用户信息发现时24个用户,而且Jdqcdev用户也有了。

SQL>conn

连接通过!OK啦!

如果永远关闭selinux而不用每次开机都设置getenforce,setenforce

修改/etc/sysconfig/selinux/中的SELINUX=enforcing为:disabled
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: