前言
我们做的项目人家点名要用Oracle数据库,在查询、修改等方面,由于有SqlServer的基础,这块没有什么问题。但是刚刚接触,不熟悉还是有的,例如创建表空间,创建用户,还需要给用户赋予权限。
我用的是PL/SQL,用了这几天,感觉Oracle的权限赋予这块,确实挺强大的。依稀记得我在弄FTP服务器时,为了控制权限而大费周折。还有强大的就是级联删除这个功能,在用SqlServer时,还需要自己写触发器来实现,而Oracle单单只需要一句话就实现了,让人感觉其强大。
但是,强大的背后,就是它那繁琐的使用步骤。
我们合作开发,数据库装到了我的电脑上,其他两个人那只装PL/SQL。Oracle的远程连接,不像SqlServer那样是在登陆界面输上IP,在往上一搜,就有人教你怎么用PL/SQL远程连接数据库。
在这里,我只是给大家一个连接,推荐别人的博客也是一种美德,嘻嘻——用PLSQL远程连接数据库(本机没有安装ORACLE数据库)
问题描述
如果事情到这里就结束了,那么这博客也就不会出了。
问题来了,不论怎样配置,就是登陆不上去,叫过来了写这篇博客的本人弄了结果还是不行,后来用这种方法远程了一下别人的点,发现是可以的,于是开始把矛头指向了服务端。
本来认为是自己安装过程中有遗漏选项,所以找了一个安装教程看了一下,几乎都是下一步的事情,就算有设置,也不是设置监听之类的东西,所以就没有重装(我用的是ORACLE 11G,如果是10G的话,可能不会有我这种问题)。
于是我开始自己做实验,找到了我的”oracleproduct11.2.0dbhome_1NETWORKADMIN“下的的tnsnames.ora。将里面的localhost改成了我自己的IP,发现居然不可以,于是就确定了,这个问题的源头在我的数据库。
解题思路
印象中,SqlServer的远程连接如果不能用的话,是可以配置的。第一,检查防火墙;第二。。。。。,于是,就在网上找了一下,结果真的发现了ORACLE远程连接配置服务端的一篇文章。
解题方法
远程服务端配置:
1、数据库配置(我犯的不是这个错误)
将数据库操作模式配置为“共享服务模式”,如果不确定数据库的操作模式,可以打开
“DatabaseConfiguration Assistant”工具的在数据库中配置数据库选项进行配置。
2、数据库服务
打开数据库服务(一般不会犯这个错)。在命令韩刚输入services.msc看看Oracle的服务是否打开。
3、监听程序(我的就是在这个环节出了问题)
确定数据库已经附加到监听程序中,并且监听程序已启用。
我的数据库监听打开了,但是数据库没有附到监听程序中,方法是:在net manager里找到你的监听,然后
在里面的数据库中加入服务器名和Oracle_home的路径。
保存,然后重启监听服务器就行。
4、网络状态
确定监听程序所使用的端口已被列入防火墙允许的行列。(这点对咱们来说,有点陌生,防火墙,我一般
都关闭。。。。)
感想
现在,服务器端就设置好了,那么别人是否可以连接你呢?难道非要等到这样的悲剧发生了之后,才知道自己反省自己么?如果能够早点测试一下,那么就不会耽误好些人的时间。
测试的方法很简单,就是打开命令行,用“tnsping 服务器IP地址”,如果能够ping通,那么就说明你的服务器别人是可以远程到的,就可以放心的让别人去远程你的数据库了。
写在结尾
初步看了Oracle数据库的教程,目前位置,对Oracle数据库的了解还属于小白,还没有完全迁移到SqlServer上,不过相信只要学一点,就往已学的上面迁移一点,学习起来鸭梨还不算大
ps:我们系统中的权限部分换人做了,不过权限那部分我依然想实现。所以得空我就会自己敲Demo,最后上传一个完整的代码示例的~~
Linux下使用Oracle Instant Client远程连接服务器