Oracle启用远程访问&开启共享模式

**注:**2016-01-22
实践证明,互联网不一定靠谱啊[emoji:笑哭]。
一直以为启用远程访问需要开启共享模式,但自己又做了多种尝试,发现他们是错的啊[大片纸],局域网内远程访问实际上只要在监听里面配置Oracle服务器主机在局域网内的IP地址就行了。
还有个要注意就是配置监听的时候可以通过NetManager和NetConfigurationAssistant。它们的区别,问了一些前辈,说是配置上没啥区别,只不过NetConfigurationAssistant会在配置步骤中帮你重启Oracle的监听服务,而NetManager不会。
换句话说,NetManager只是在修改product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora 这个文件的内容,但实际上并没有在监听中生效,需要重启监听服务。
即:NetManager+重启监听=NetConfigurationAssistant
重启监听有两种方式,oracle可以通过 lsnrctl start来启动监听(lsnrctl 就是 listener control的缩写),也可以在操作系统的【服务】中启动。

配置监听–远程访问

(分割线下面的博文是先前写的,后来发现这个步骤是“开启数据库共享模式”,跟远程访问没什么关系,所以这里补充一下启用远程访问时配置监听的步骤,其实也很简单,就是多加几个IP)
1.打开NetManager,在监听下面可以看到oracle已有默认监听LISTENER
Oracle启用远程访问&开启共享模式_第1张图片
在LISTENER中可以看到两个地址,要想允许远程访问只要在这里多加一个地址即可,这里的“主机”就是数据库所在局域网的主机IP;端口号就是本地数据库实例所在的端口号,如果是orcl则默认是1521;

在NetConfigurationAssistant中配置的时候,貌似没有找到前面说的(NetManager中)“地址”的配置,所以我多数会用NetManager,添加了服务以后,自己手动重启一下操作系统的listener服务。
——————————————————分割线—————————————–
下面是开启共享模式的步骤
Oracle安装好后默认未开启远程访问只允许本地用户进行登录,因此想要在局域网内用户能够远程访问该数据库则需要开启共享模式并配置监听。在学习过程中参见了网络上的一些教程,但是都有些遗漏,所以自己把遇到的问题记录一下。
详细步骤如下。

配置监听

监听配置错误

oracle由于监听默认配置了localhost所以默认允许本地用户登录,想要允许远程机器的用户登录需要另外配置监听或修改默认监听,否则在下个步骤“开启数据库共享”最后一步启动服务的时候会报错,如下:
Oracle启用远程访问&开启共享模式_第2张图片

配置监听

我们可以新配置监听,也可以修改默认监听。(这里我修改默认监听,如需配置新的监听,请运行 NetConfigurationAssistant)
1.打开NetManager,在监听下面可以看到oracle已有默认监听LISTENER
Oracle启用远程访问&开启共享模式_第3张图片
2.默认监听有两个“地址”选项,其中IPC协议的监听暂不介绍,这里我们需要修改的是TCP的监听,即“地址2”。
默认情况下是localhost,所以我们在cmd中使用【sqlplus / as sysdba 】 或者【 sqlplus name/pass@localhost/orcl】之类命令的时候是可以登录的,但是其它机器使用同样命令只有地址不同的时候是不能登录的(localhost改为oracle服务器ip)。
为了解决这个问题,这里我们要将localhost改为oracle的数据库服务器的IP。也就是说oracle服务器的IP需要是固定的而不能是自动获取,否则别的机器访问的时候可能因为oracle服务器的IP变动而不能正常访问。
这里我将IP改为192.168.3.104,且将这台数据库主机的IP设置为静态IP,保存配置后再进行下一步操作开启数据库共享。

开启数据库共享

打开oracle的Database Configuration Assistant

(在【开始/Oracle - OraDb11g_home1/配置和移植工具】路径下;也可以在cmd中敲命令‘dbca’)

配置数据库共享

按照提示分别点击
1.欢迎界面点击“下一步”;
Oracle启用远程访问&开启共享模式_第4张图片

2.选择“配置数据库选件”,“下一步”;
Oracle启用远程访问&开启共享模式_第5张图片

3.选择你要共享的数据库实例,如:ORCL,并输入具有dba角色的用户名和密码“下一步”;
Oracle启用远程访问&开启共享模式_第6张图片

4.管理选项默认即可,若有特殊需要可自行修改
Oracle启用远程访问&开启共享模式_第7张图片

5.数据库内容也默认即可,若有特殊需要可自行修改
Oracle启用远程访问&开启共享模式_第8张图片

6.数据库身份这里设置相应数据库组件的用户名密码,如果对安全性要求较高可以分别设置较复杂密码,我这里只是本机使用,因此设置了简单的密码。
Oracle启用远程访问&开启共享模式_第9张图片

7.选择“共享服务器模式”,可以根据实际情况设置连接的进程数。完成配置后会提示重启数据库监听,如果前面没有配置正确的监听会报错,错误参见上文。
Oracle启用远程访问&开启共享模式_第10张图片

服务名配置

关于服务的简单说明

上面讲的都是oracle数据库服务端的配置,正确完成上面步骤后其他机器便可以通过jdbc等方式连接数据库了。
为什么说JDBC等方式?因为这时候plsql这些工具还是不能连接数据库的,因为这些工具连接数据库的时候都需要通过数据库的服务名进行登录(其实也可以不用服务名登录,好像是oracle9i以后的版本,已经支持直接通过主机名或ip+服务名的方式登录了)
如果没有配置服务名可能会报如下错误“无法解析指定的连接标识符”。
所以这时候就需要配置一下监听服务名了。
如果其他用户没有安装oracle相关组件的,则需要安装一下oracle的客户端。
同样是打开NetManager(请用管理员身份运行NetManager),细心的话应该在上面监听错误那张图中发现了“服务”下面有个orcl,这个就是oracle本地访问的默认服务名。想要远程访问就需要在这配置服务端的服务名了。

配置服务名

1.点击左上角加号“+”,输入服务名,“下一步”
Oracle启用远程访问&开启共享模式_第11张图片

2.选择TCP/IP协议
Oracle启用远程访问&开启共享模式_第12张图片

3.填写oracle服务端主机IP,数据库服务器端口是多少这里就填多少,一般默认是1521
Oracle启用远程访问&开启共享模式_第13张图片

4.填写服务端的数据库服务名,这里的服务名是服务端数据库实例的名称,即服务端设置共享时(步骤2)选择的实例名称,我们上面选的是orcl,所以这里填orcl
Oracle启用远程访问&开启共享模式_第14张图片

5.点击完成即可,如果需要,可以点击测试。数据库默认有scott密码为tiger,如果该账户被禁用,则可以通过其他有权限的账户进行测试,这里我用scott进行测试。
Oracle启用远程访问&开启共享模式_第15张图片

至此,oracle客户端的服务配置完成,保存相关配置即可。如果在win7/8/10等版本中遇到不能保存的情况,请用管理员身份运行NetManager重新进行配置。

重新打开plsql,在database列表里面会出现刚刚配置的orcl_server的选项。现在就可以用plsql等工具通过服务名连接数据库了。


1. 如果还是报监听之类的错误,请尝试使用管理员身份运行PLSQL developer;
2. 检查PLsqldeveloper的安装路径是否包含空格或中文,如果路径包含中文或空格也是会出现连接不上的情况的。

其它连接不上的情况我还没遇到,所以也就也没什么特别的提醒了。

你可能感兴趣的:(数据库)