我们从上面可以看出:
需要
1.oracle client客户端(这儿使用,oracle instance client ,简单)
2.odbc驱动 oracle instance client默认就有
3.linux下需要安装Linux oracle 服务器
4.两个配置文件tnsnames.ora,listener.ora
tnsnames.ora ====》客户端连接服务器配置文件
listener.ora ===》服务器侦听服务配置
linux oracle服务器 listener.ora:
[oracle@localhost admin]$ pwd /home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin
首先安装Linux 下的oracle,可以看这个https://www.cnblogs.com/bwbfight/p/9621218.html
安装好后Linux 下需要做的事
1 oracle虚拟机需要固定IP,才能被外面的客户端连接上来
Root登陆linux机器
系统/首选项/网络连接
重启系统
2 oracle用户启动oracle服务器
3 在linux环境中,用sqlplus工具访问oracle服务
在oracle用户下,用sqlplus访问oracle服务
必须用scott/aa @orcl这种形成访问成功,则后台服务器程序才能访问成功
在非oracle用户下(比如在test03),用sqlplus访问oracle服务
必须用scott/aa@orcl这种形成访问成功,则后台服务器程序才能访问成功
chmod 777 /home/oracle_11/app -R (root用户) 修改oracle家目录权限
同时配置.bash_profile
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs umask 022 ORACLE_BASE=/home/oracle_11/app ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1 ORACLE_SID=orcl PATH=$PATH:./:$HOME/bin:$ORACLE_HOME/bin LD_LIBRARY_PATH=./lib:$HOME/lib:/usr/lib:$ORACLE_HOME/lib #LANG=C export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG
根据自己环境修改
ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
4 在win环境中,用sqlplus工具访问linux环境下的oracle服务( 192.168.43.252为linux服务器ip)
1 Ping 192.168.43.252
2 telnet 192.168.43.252 1521 防火墙没有把端口给封住
//防火墙 linux服务器 1521 端口 放开
linux下: ufw disable
接着Linux开启oracle服务并监听:
1. 启动oracle服务 (启动oracle服务器 必须使用oracle用户)-
启动oracle服务 (启动oracle服务器 必须使用oracle用户)- [oracle@localhost ~]$ sqlplus /nolog SQL> connect /as sysdba Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 780824576 bytes Fixed Size 2217424 bytes Variable Size 599788080 bytes Database Buffers 176160768 bytes Redo Buffers 2658304 bytes Database mounted. Database opened.
2.启动监听服务器
[oracle@localhost ~]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 31-JAN-2016 06:12:24 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /home/oracle_11/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin/listener.ora Log messages written to /home/oracle_11/app/diag/tnslsnr/localhost/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
注意:
ok... Linux下的事情干完了,
接着windows下接着干活
1. oracle instance client 安装:https://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html(注意是32位还是64位,不然不工作了)
2.解压后放到固定目录:
我的是放到e盘:E:oracle_clientinstantclient_18_3
配置
Win机器的tnsnames.ora,新建tnsnames.ora放到E:oracle_clientinstantclient_18_3下
内容如下
# tnsnames.ora Network Configuration File: E:oracle_clientinstantclient_18_3 SECMNGADEMIN = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.32.253)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
HOST:服务器IP地址
PORT:oracle端口号
SERVICE_NAME:oracle数据库上的实例名称(安装时如果没有指定一般为orcl)
配置windows环境变量
TNS_ADMIN =E:oracle_clientinstantclient_18_3
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
说明:TNS_ADMIN,是指tnsnames.ora文件所在的目录名。
如果指定到客户端目录,则必须把tnsnames.ora文件复制过来才可以
设置ORACLE_HOME环境变量
ORACLE_HOME=E:oracle_clientinstantclient_18_3
Path后面加一个;E:oracle_clientinstantclient_18_3
在windows cmd测试
sqlplus scott/tiger@orcl (tiger为密码),如果能够执行,说明配置正确
可能会报错
oracle的12154错误排查
分别在linux 下和windows下输入:sqlplus scott/aa@orcl
1 .linux 下用test03(其他用户)不能访问oracle问题排查
2. windows下cmd访问出现如下
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
ORA-12154 11.2.0.1.0 ORA-12154
2 解决方法
[oracle@localhost admin]$ pwd
/home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin
[oracle@localhost admin]$ ls
看看
listener.ora ===》服务器侦听服务配置
shrept.lst
tnsnames.ora ====》客户端连接服务器配置文件 wbm01客户使用这个文件连接服务
要保证wbm01用户能访问这个目录:ADR_BASE = /home/oracle_11/app
3 解决步骤
====> 然后切换用户 [wbm01@localhost app]$ cd /home/oracle_11/app [wbm01@localhost app]$ pwd /home/oracle_11/app [wbm01@localhost app]$ ls admin cfgtoollogs checkpoints diag flash_recovery_area oracle oradata oradiag_oracle [wbm01@localhost app]$ cd admin/ -bash: cd: admin/: 权限不够
解决如下:
root用
chomd 775 /home/oracle_11/app (家目录)
windows下继续
然后配置plsql或者navicat
我用的navicat,工具-》选项
然后就可以连接数据库了
ok...成功
现在来配置 oracle odbc
oracle instance client 里面 安装路径E:oracle_clientinstantclient_18_3默认就有
如果没有请下载 1. oracle instance client 安装:https://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html(注意是32位还是64位,不然不工作了)
就可以了!
一定要分请你是32位还是64位,如果不行请自行换成相应位数(win7 32/64都支持)
如果你是64位系统这个数据源ODBC
需要运行C:WindowsSysWOW64文件夹下的
或者控制面板-》管理工具-》数据源odbc-》添加
Data Source Name ,descript随便写
TNS service name:需要和tnsnames.ora配置的名字一样
userid:数据库名字(如scott等)
点击 test connection ,弹出成功连接即可!
ok........
搞定,bye 了个bye.... 忒麻烦了.....