OracleDBA系列之--(三)配置和实现监听

前两节文章传送门安装Oracle创建数据库
在数据库创建成功后已经可以使用SQL*PLUS进行连接登录,但是一般数据库是需要使用远程客户端进行连接的,这个时候就需要配置服务端的监听功能。配置监听的方法也有两种,手动设置和使用netca(OracleNetConfigurationAssistant),使用netca是我们常用的图形化界面设置方法,不再过多介绍,着重介绍手动设置方法。
一、手动配置监听
二、通过网络连接数据库
三、使用连接标识符连接数据库

一、手动配置监听

1、主要就是配置listener.ora监听文件,然后启动监听。
2、默认情况下listener.ora位于$ORACLE_HOME/network/admin目录下,需要使OS环境变量TNS_ADMIN也指向这个目录
如果使单一数据库环境可以不配置TNS_ADMIN环境变量,oracle安装过后示例listener.ora文件会在$ORACLE_HOME/network/admin/samples目录下,可以拷贝一份到$ORACLE_HOME/network/admin目录下进行修改,添加如下内容即可完成配置:

LISTENER =
  (ADDRESS_LIST=
       (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.72.163)(PORT=1521))
       (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

不需要配置什么DESCREPTION之类的,那些是可有可无的。如果配置中HOST地址不固定或有多个ip地址存在则可以配置为当前主机名称就能够映射到全部ip地址,查看当前主机名称可使用hostname命令进行查看或cat /etc/hostname进行查看。
3、配置完成就能够启动监听

lsnrctl start

启动后会显示如下信息:
在这里插入图片描述
由于我们没有在listener.ora文件中静态注册数据库实例,因此才会提示The listener supports no services,数据库会扫描正在运行的实例进行动态注册,大概1分钟左右就会自动进行注册。如果没有动态注册需要检查/etc/hosts文件中IP地址是否指向当前主机,如果没有则需要配置vi /etc/hosts添加一行ip与主机名称的映射(马赛克中就是自己的主机名)
在这里插入图片描述
修改完成重启一下网络服务即可/etc/init.d/networking restart
还有一种方式就是将listener.ora文件中HOST直接修改为主机名称,再重启监听过一分钟便可注册完成。
在这里插入图片描述
使用lsnrctl status或lsnrctl services查看监听状态

二、通过网络连接数据库

通过第一步的配置其实已经可以进行远程连接数据库,不过要注意一点对于oracle12c来说必须使用12c客户端进行连接,无论是sqlplus还是其他如plsql等数据库工具。否则会报错
在这里插入图片描述
如果想使用11g连接12c则需要对sqlnet.ora进行配置,在12c服务端$ORACLE_HOME/network/admin目录下创建sqlnet.ora文件编辑,添加如下配置

SQLNET.ALLOWED_LOGON_VERSION_SERVER= 11
SQLNET.ALLOWED_LOGON_VERSION_CLIENT= 11

然后在服务端修改用户密码(重新修改成一摸一样的也可以,但必须修改一次才行),此时使用远程就可以进行连接
写给自己:可以查看dba_users中password_versions字段,重新修改密码后会多出一个10G版本,这个时候才说明上边修改的sqlnet配置生效了
在这里插入图片描述
在这里插入图片描述
最后说一点,sqlnet配置文件是控制客户端访问数据库的配置文件,在windows版本中较为常见的参数有以下两个

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

SQLNET.AUTHENTICATION_SERVICES指定一个或多个认证服务,选项有NONE\ALL\NTS,NONE表示不能使用OS认证,必须输入用户名密码才能登陆,ALL表示允许所有登陆方式,NTS表示在windows系统下允许本地系统用户认证(注意是windows系统),在linux服务器中该参数一般是ALL或直接就不进行配置
NAMES.DIRECTORY_PATH指定clinet name解析方式,其中TNSNAMES很好理解,就是优先检索tnsnames.ora配置文件中定义的连接标识符,EZCONNECT表示简单连接即不使用连接标识符方式直接以url方式登录,因此该参数其实也没必要配置。

三、使用连接标识符连接数据库

在第二步也提到了tnsnames.ora配置文件的作用,就是定义一个本地的连接标识符,这样做的好处就是简化连接操作,不需要再使用用户名、密码、端口、服务名称这种url方式去连接数据库,在连接时直接使用连接标识符就可以进行连接,因为具体的连接信息已经配置在tnsnames.ora文件中了,在打开sqlplus时会先检索TNS_ADMIN目录中是否存在tnsnames.ora,如果不存在就会去$ORACLE_HOME/network/admin目录下检索tnsnames.ora并加载其中的连接标识符。tnsnames.ora示例如下:

O163ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = amarsoft.ora)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

注意,如果想要以该方式连接远程服务端,则需要在本地客户端$ORACLE_HOME/network/admin目录(目录也需要创建)下创建tnsnames.ora文件并添加对应信息才可以以标识符方式连接远程数据库。

** 总结一下:**关于网络连接的三个配置文件listener.ora、sqlnet.ora、tnsnames.ora这三个文件作用已经很明显。
listener.ora配置oracle监听,所有远程连接的基础,没有监听就不存在远程连接。最基础的配置就是配置一个监听器,包含协议、地址及端口即可。同时在该文件中也可以对数据库实例进行绑定(静态注册),同时oracle支持动态支持,所以这种绑定不是必须的。
sqlnet.ora配置客户端连接服务端的权限常见的认证方式以及client name解析方式等。这些配置都是有默认值的,因此该文件也是非必须的。
tnsnames.ora配置连接标识符,目的是为了简化oracle的连接过程,因此同样是非必须存在的。
只有最通俗的语言,才能最透彻的理解。
到这里整个Oracle数据库的安装配置过程全部完结,此时的数据库就如同我们平常使用时的那样具有了全部的完整功能。接下来就是数据库的使用,创建表空间、管理账户、创建数据库对象等,这个就过段时间再说吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值