解决本地不装oracle数据库,直接远程访问数据库出现的问题【特别注意斜体加粗部分】

环境本地win 10系统不装oracle数据库 ,远端:本地VM 虚拟机安装的win7 系统,网络为桥接模式【最好路由器配置固定IP给虚拟机,或者直接在虚拟机系统里面写好固定的IP】
服务端:
VM里面的oracle监听配置tnsnames.ora,注意所有改动必须都要重启oracle数据库,只重启监听是没有用的:

# tnsnames.ora Network Configuration File: C:\app\ye\product\12.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.116)(PORT = 1521))#注意一定要写为服务机的IP或者在网络可见的网络计算机名称,多个地址时 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.116)(PORT = 1521))即可,下同


ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.116)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )


本地instantclient里面instantclient里面的network\ADMIN的tnsnames.ora和上面的一样的即可,如果没有,则下载instantclient后新建两个文件夹,一个是network,并在其里面新建admin,两个文件夹忽略大小写。在admin里面直接拷贝tnsnames.ora过来,里面的IP为虚拟机里面系统获取到的IP。之后在PL SQL 的首选项里面配置instantclient相应的oci.dll ,然后关闭pl sql重新打开即可链接远端的oracle 。
如果使用PLSQL时出现出现中文乱码,则 添加本地系统的环境变量NLS_LANG ,值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK

服务端配置

如果不想自己写,可以通过 Net Manager 来配置.

以下配置文件中的 localhost 改为 ip 地址,否则,远程不能访问.

1.网络监听配置

# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)

(PROGRAM = extproc)

(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ***#这里的localhost要改为IP,否则只能本地访问,PLSQL链接时出现无监听等问题,因为是Net Manager 创建的,这里先保留默认生成的,待生成后,手动去目录里面改C:\app\用户名\product\12.2.0\dbhome_1\network\admin里面的tnsnames.ora文件修改***

)

)

ADR_BASE_LISTENER = C:\app\Administrator

多个IP时,如下:

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

(DESCRIPTION =

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

)

(DESCRIPTION =

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

)

)

2.TNS 配置

tnsnames.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora

Generated by Oracle configuration tools.

ORCL=

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

ORACLR_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

(CONNECT_DATA =

(SID = CLRExtProc)

(PRESENTATION = RO)

)

)

LISTENER_ORCL =

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

多个IP时,如下:

ORCL =

(DESCRIPTION =

(ADDRESS_LIST =

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

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

)

(SOURCE_ROUTE = yes)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

3.停止和启动服务

先停止以下服务,然后再启动.

OracleOraDb11g_homeTNSListener

OracleService*

客户端配置

1.下载 ODAC 压缩包.

2.解压下载的 ODAC 压缩包.

3.执行安装命令

示例:

install.bat all D:\Program\ODAC\12040x64 OracleHome true

4.添加环境变量

ORACLE_HOME : 是 ODAC 安装的目录.

TNS_ADMIN : 是文件 tnsnames.ora 所在的目录,一般为 ODAC 安装目录下的 network\admin 中.

注: TNS_ADMIN 可以不用添加,直接将 tnsnames.ora 文件复制到 ODAC 安装目录下即可

将 %ORACLE_HOME% 添加到 PATH 环境变量中.

5.配置 TNS

在配置文件 tnsnames.ora 中加入

DBORCL =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = )

)

)

说明:

数据库电脑的IP或者是计算机名

数据库TNS配置的名称

https://blog.csdn.net/asdfghzqlj/article/details/69666610
https://blog.csdn.net/weixin_30563917/article/details/101077851
https://blog.csdn.net/zhige_j/article/details/80832654

机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库 1、先到Oracle网站下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html 根据你的操作系统选择不同的Instant Client版本 下载会是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的目录即可.例如:D:/instantclient_11_2 2、在D:/instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容: ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58 )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL ) ) ) 第一个黄色字块:表示定义远程服务器的在本地主机名 第二个黄色字块:远程数据库的IP地址 第三个黄色子块:远程数据库实例名 3、添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径。比如我的本机为:D:/instantclient_11_2/network/admin 4、设置ORACLE的语言,添加环境变量NLS_LANG ,值为: AMERICAN_AMERICA.AL32UTF8 该值可以连接到远程数据库中,通过下面的sql语句查询得到: select userenv('language') from dual; 如果该值设置不正确,将导致PL/SQL Developer连接数据库后,查看的数据会出现乱码。 5、下载并安装PL.SQL.Developer配置应用 配置tools->preferences->connection Oracle Home D:/instantclient_11_2 OCI library D:/instantclient_11_2/oci.dll 中文的PL/SQL Developer就是 工具-->首选项-->连接 Oracle主目录 D:/instantclient_11_2 OCI库 D:/instantclient_11_2/oci.dll 6、关闭PL/SQL Developer,重起Developer. 主机名就会出现在PL/SQL Developer的列表里,输入用户名密码,就可以登录远程oracle 11g数据库了。 补充Instant Client 说明 Oracle Instant client 是oracle提供的简便客户端, 支持多种平台. 可从oracle网站下载, 下载地址为 http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html 包括如下内容: Instant client Package - Basic 运行OCI, OCCI, 和JDBC-OCI应用程序需要的所有文件. Instant client Package - Basic Lite: 只包含英语错误信息, 只支持unicode, ascii, 西欧字符集. Instant client Package - JDBC Supplement 为jdbc增加了xa, 国际化和RowSet操作. Instant Client Package - SQL *Plus 包含sqlplus和需要的库文件 Instant client Package - SDK 使用Instant Client开发Oracle 应用程序需要的头文件及示例makefile Instant client package - ODBC 使用odbc时需要的库, 不是所有平台都有. linux平台包含. Basic 和Basic Lite两个中必须选一个, 其他包都是可选的. 我下载 了 Basic, JDBC supplement, SQL *Plus, SDK, ODBC. 解压后放在一个文件夹下, 在这个文件夹下建立文件 tnsnames.ora, 设置环境变量LD_LIBRARY_PATH和TNS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值