目录
一、问题:
二、官网下载(Instant Client 64位)
三、配置环境变量
三,新建tnsnames.ora文件
四,卸载方法
五,第三方工具使用(PL/SQL Developer )
六、PL/SQL Developer工具配置
意外事故:
免安装Oracle客户端使用PL/SQL连接Oracle 大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的。有没有想过不安装Oracle客户端直接连接Oracle呢?
回答:利用Oracle 提供的Instant Client Package(Oracle Instant Client(即时客户端)),这个软件不需要安装,只要解压就可以用了,很方便,就算重装了系统还是可以用的。
只需要在Oracle下载一个叫Instant Client Package的软件就可以了。
地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
这里我们选择【windows系统 64位的】
选择版本【instantclient-basic-windows.x64-11.2.0.4.0.zip】
下载后
解压后
将压缩文件instantclient-basic-windows.x64-11.2.0.4.0.zip解压到【D:\21_instantclient\instantclient_11_2】目录下。
在“环境变量”的“系统变量”中增加:
1、ORACLE_HOME = D:\21_instantclient\instantclient_11_2
2、TNS_ADMIN = D:\21_instantclient\instantclient_11_2
3、NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
修改Path变量,在后面添加 【D:\21_instantclient\instantclient_11_2】
在【D:\21_instantclient\instantclient_11_2】新建一个tnsnames.ora文件,增加自己的数据库别名配置。
示例如下:
orcl1=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.194.130.10)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.194.130.8)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = gzfin)
)
)
注意格式要排列好
主要改 = 前面的别名,Host为IP地址, SERVICE_NAME为数据库服务器的实例名。
“环境变量”中的“系统变量”中:
上面的任何一种客户端版本配置好后,都可以安装Toad 或者PL/SQL Developer 工具。
PL/SQL Developer官网下载地址:https://www.allroundautomations.com/registered-plsqldev/
我这里选择plsqldev1106x64.exe 版本 64位(保持与服务器、instantclient-basic版本一致)
下载后的文件,安装步骤直接点击【下一步】即可,50秒左右就可以安装成功。
注意:
不要直接去复制别人已经安装成功的文件,如下图文件是无须安装pl/sql工具,直接拿来用。可能会因为版本不一致导致后面出现各种问题。所以,自己重新安装pl/sql工具。
双击,进行安装,安装完之后,如果有需要就进行中文破解,没有需要直接用注册码激活。
破解完之后是不能直接连接数据库的。如图
连接数据库失败
需要对pl/sql工具进行oci配置,无须账号密码登录PL/SQL,【tools】——【preferences】
系统会自动扫描oci的文件,因为之前安装过oracle服务器,因此这里会有默认值
【OCI library】d:\19_oracleserver\database\install\oracle\product\11.2.0\dbhome_1\bin\oci.dll
下一步需要将默认值删除,自己配置【instantclient客户端】环境参数
在perference里面设置OCI Library和Oracle_home,我的设置是
OCI Library=D:\21_instantclient\instantclient_11_2\oci.dll;
Oracle_home=D:\21_instantclient\instantclient_11_2
根据自己的实际情况配置,D:\21_instantclient\instantclient_11_2其实就是刚才下载下来的那个包的路径。
点击【apply】-【ok】,到了这一步,配置工作全部完成。
退出后,重新打开PL/SQL工具进行连接数据库。
登录成功
补充说明:
常设的字符集:
set nls_lang=simplified chinese_china.zhs16cgb231280
set nls_lang=simplified chinese_china.ZHS16GBK
set nls_lang=simplified chinese_china.Utf8
instantclient-basic-win32-11.1.0.6.0.zip -这个是支持Oracle 9i 以上的版(不包括Oracle9i)
instantclient-basic-win32-10.2.0.1.zip -这个是支持Oracle8i 和Oracle9i 的。
参考:https://blog.csdn.net/mositeo/article/details/49506101
第二天开机后,启动监听程序报错:提示“本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”。如下图:
网上搜索了一大批资料,依然解决不了,监听器启动不了的结果。本打算放弃了,但想了一个赖皮的方法试试:因为监听器启动不了是因为环境变量配置的问题,为了解决这个环境变量,将目前的【ORACLE_HOME】和【TNS_ADMIN】参数值修改如下:
环境变量配置(修改前)
ORACLE_HOME = D:\21_instantclient\instantclient_11_2
TNS_ADMIN = D:\21_instantclient\instantclient_11_2
1、环境变量配置(修改后)
ORACLE_HOME:D:\19_oracleserver\database\install\oracle\product\11.2.0\dbhome_1
TNS_ADMIN:D:\19_oracleserver\database\install\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
2、注册表中(上一步没效果的话,可以试试这个)
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/OracleOraDb11g_home1TNSListener
中的ImagePath改为:
d:\19_oracleserver\database\install\oracle\product\11.2.0\dbhome_1\BIN\TNSLSNR.EXE(之前后面的.EXE没有)
操作完第一步环境变量配置,重启监听器发现可以了。
第一种:用sqldeveloper.exe工具测试一下连接:
测试成功,可以连接数据库。
第二种:用PL/SQL工具测试,发现还是连接不了数据库。报以下的错误:
重点:套路来了,再将环境变量修改之前的
环境变量配置(修改前)
ORACLE_HOME = D:\21_instantclient\instantclient_11_2
TNS_ADMIN = D:\21_instantclient\instantclient_11_2
path追加:D:\21_instantclient\instantclient_11_2;
连接数据库工具PL/SQL测试:
测试成功
先别开心的太早,我又来重启一下电脑,发现问题依然存在,监听器启动不了,报同样的错误。
再来修改环境变量试试看,按照上面的步骤重新设置。启动成功。
ORACLE_HOME:D:\19_oracleserver\database\install\oracle\product\11.2.0\dbhome_1
TNS_ADMIN:D:\19_oracleserver\database\install\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
再次通过sqldeveloper.exe工具测试一下连接:
测试报错,ORA-12505
奇怪了,步骤和前面的一样,却产生两种不同的结果。
而远程连接其他的数据库是成功的,表示工具是没有问题的。
猜测安装的数据库服务器端存在问题。
下面来排除具体问题:
步骤1:通过dos窗口连接数据库:cmd——sqlplus
报错:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
进程 ID: 0
会话 ID: 0 序列号: 0
步骤2:重启orcl实例
报错显示oracle的实例不可用。因此我们要重新启动orcl实例服务。
这里值得注意的是:过个10来分钟启动,因为sqldeveloper.exe工具连接报错时,就已经重启过orcl实例,依然没有效果。所以,
如果立刻重启还没效果的话,就等个10来分钟再启动实例orcl。
步骤3:再次连接,连接成功。
步骤4 :接下来我们用PL/SQL进行测试数据库连接
需要重新设置环境变量:
ORACLE_HOME = D:\21_instantclient\instantclient_11_2
TNS_ADMIN = D:\21_instantclient\instantclient_11_2
path追加:D:\21_instantclient\instantclient_11_2;
环境变量已经修改如图:
第一种方法:改了环境变量后,用工具连接数据库,连接成功
第二种:用PL/SQL工具连接数据库,连接成功。
总结:
利用Oracle 提供的Instant Client Package(Oracle Instant Client(即时客户端)),这个软件不需要安装,只要解压就可以用了,很方便,就算重装了系统还是可以用的。最致命的就是每次电脑启动,监听器都启动不了,反复设置环境变量,太麻烦了,还是好好的安装oracle客户端。