Oracle单实例配置多监听

一、前言

有时候我们项目中需要使用Oracle数据库,同时要需要不同的数据源,而Oracle不像Mysql那样直接建个库即可,Oracle是以账号为单位,可以理解为一个账号就是一个库,但实际有区别,项目中数据库连接数据源往往默认是安装Oracle时生成的ORCL(目前只有一个ORCL实例,称为“单实例”),这时候有人就想,那创建一个账号不就行了,的确是需要创建账号,但是本身数据源还是ORCL这一点始终没有变,在Oracle数据库中我们创建一个账号实现了相当于创建了一个库,但对于项目来说,还是一个ORCL数据源,无非就是账号和密码变了,对于他来说这一点是不行的,所以可以使用一下方法解决他

方案一

创建一个新实例,并将它注册到监听中即可(本篇文章暂不介绍,可自行百度)

方案二(本篇)

也就是标题说的,单个实例,配置多个监听,此时,对内实际还是使用同一个实例,对外看似是不同数据源和不同账号,实际上是同一实例,不同账号(可以理解为Mysql的不同库)罢了

二、单实例配置多监听

主要修改两个配置文件即可 在ORACLE_HOME目录下的/network/admin/目录下

listener.ora和tnsnames.ora文件,却有注释,可根据自身实际情况进行修改

listener.ora

#这是名称为LISTENER的监听器静态注册的服务
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
#服务名 多个监听不能配置相同,否则连接进来不知道具体在那个服务上
(GLOBAL_DBNAME = snorcl11g)
#oracle实例名称
(SID_NAME = snorcl11g)
(ORACLE_HOME = /oracle/home)
)
) #LISTENER2监听器监听的静态实例注册
SID_LIST_LISTENER2 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl11g)
#oracle实例名称
(SID_NAME = snorcl11g)
(ORACLE_HOME = /oracle/home)
)
) #这是名称为LISTENER的监听器 默认
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.7)(PORT = 1521))
)
) #LISTENER2的监听器
LISTENER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.7)(PORT = 1522))
)
) #oracle安装目录
ADR_BASE_LISTENER = /oracle

tnsnames.ora

#SNORCL11G 随便起,建议见名知意
#snorcl11g是实例名
#表示使用TCP协议,连接IP地址为127.0.0.1,端口号为1521的数据库主机上服务名为snorcl11g的数据库
#如果有多个监听,可以手动添加
SNORCL11G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.7)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = snorcl11g)
)
) LISTENER2_SNORCL11G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.7)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = snorcl11g)
)
)

至此配置就结束啦,我们来启动试试

启动监听服务

# 默认启动listener监听
# stop 停止
# status 监听状态
lsnrctl start # 启动新监听LISTENER2
lsnrctl start listener2

可以看到默认配置的监听启动成功了,对外连接使用SNORCL11G,监听实例为SNORCL11G,监听端口1521

可以看到我们配置的第二个监听启动成功了,对外连接使用ORCL11G,监听实例为SNORCL11G,监听端口1522

# 测试实例是否被监听
tnsping snorcl11g

此处的端口号为默认的,可忽略,只要看到OK,就表示该实例已监听到了

这下可以通过远程连接根据监听的内容去尝试连接啦

Linux下Oracle单实例配置多监听的更多相关文章

  1. linux下Oracle数据库实例开机自启动设置

    linux下数据库实例开机自启动设置 1.改动/oratab [root@org54 ~]# vi/etc/oratab     --把N改为Y,例如以下提示 # This file is used ...

  2. Linux下Oracle 10g DataGuard配置(主从同步及切换)

    环境描述:主库: IP: 10.8.3.191 主机名:primaryORACLE_SID=afcORACLE_BASE=/u01/oracleORACLE_HOME=/u01/oracle/10g备 ...

  3. Linux下MongoDB单实例的安装和配置详解

    推荐网站 MongoDB官网:http://www.mongodb.org/ MongoDB学习网站:http://www.runoob.com/mongodb 一.创建MongoDB的资源目录和安装 ...

  4. Linux下如何查看哪些端口处于监听状态

    查看某一端口的占用情况: lsof -i:端口号 前提:首先你必须知道,端口不是独立存在的,它是依附于进程的.某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了.下次若某个进程再次开 ...

  5. linux下mysql无法看到3306端口监听

    这个问题搞定了,原因是我的my.cnf有话:skip-network注释掉,然后运行netstat -an|grep 3306 就可以看到了

  6. linux下oracle数据库服务和监听的启动停止

    oracle数据库是重量级的,其管理非常复杂,将其在linux平台上的启动和关闭步骤整理一下. 安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_p ...

  7. Oracle单实例情况下的library cache pin的问题模拟与问题分析

    Oracle单实例情况下的library cache pin的问题模拟与问题分析 參考自: WAITEVENT: "library cache pin" Reference Not ...

  8. Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复

    Oracle 官网有关单实例迁移到RAC的一个步骤说明: How to Convert 10g Single-Instance database to 10g RAC using Manual Con ...

  9. CentOS Linux 新建oracle数据库实例并连接

    CentOS Linux 新建oracle数据库实例 安装好oracle之后,首先想到的那就是自己建一个库来看看效果喽. 创建的过程如下文章所说,http://blog.chinaunix.net/u ...

  10. oracle 单实例DG(搭建篇一)

    一,介绍 lodding... 二,安装前环境配置 01,依赖包的安装: yum install binutils-* yum install compat-libstdc++-* yum insta ...

随机推荐

  1. 测试环境治理之MYSQL索引优化篇

    作者:京东物流 李光新 1 治理背景 测试环境这个话题对于开发和测试同学一定不陌生,大家几乎每天都会接触.但是说到对测试环境的印象,却鲜有好评: •环境不稳定,测试五分钟,排查两小时 •基础建设不全, ...

  2. GitLab 配置优化

    代码库最近换了,使用了 GitLab.这两天观察了下服务器的使用情况,发现 GitLab 很吃内存.直接占用了 30 多个G的内存. 一.发现问题 使用 top 命令查看内存时,发现前几十个都是同一个 ...

  3. windows下MinGW编译ffmpeg

    windows下MinGW编译ffmpeg 1.官网下载MinGW并安装       1)下载 ,下载网址: https://sourceforge.net/projects/mingw/files/ ...

  4. 推荐两个AI神器:ChatGPT只需1个标题,2分钟全自动生成PPT!

    今天给大家分享两个工具,帮助你全自动生成PPT,接下来以自动化测试为主题,教大家如何2分钟生成好PPT. 1.第一个工具:ChatGPT 1.打开ChatGPT页面,输入prompt,告诉它,让它帮你 ...

  5. 2022-08-09:以下go语言代码输出什么?A:否,会 panic;B:是,能正确运行;C:不清楚,看投票结果。 package main import ( “fmt“ “syn

    2022-08-09:以下go语言代码输出什么?A:否,会 panic:B:是,能正确运行:C:不清楚,看投票结果. package main import ( "fmt" &qu ...

  6. 2021-04-04:给定一个非负数组arr,和一个正数m。 返回arr的所有子序列中累加和%m之后的最大值。

    2021-04-04:给定一个非负数组arr,和一个正数m. 返回arr的所有子序列中累加和%m之后的最大值. 福大大 答案2021-04-04: 自然智慧即可. 1.递归,累加和. 2.动态规划,累 ...

  7. PostgreSQL一站式插件推荐 -- pg_enterprise_views

    近日发现PG官方插件列表中新收录了一款插件 pg_enterprise_views,因为官方已经数年未添新的插件了很是新奇,找了台设备测试过后果断上了生产,得空分享给大家. 该插件提供了数十张系统表及 ...

  8. ArcGIS如何自动获得随机采样点?

      本文介绍基于ArcMap软件,实现在指定区域自动生成随机点的方法.   在GIS应用中,我们时常需要在研究区域内进行地理数据的随机采样:而采样点的位置往往需要在结合实际情况的前提下,用计算机随机生 ...

  9. ent M2M模型在pxc集群中的一个大坑

    ent M2M模型在pxc集群中的一个大坑 事故简要分析 PXC集群3个节点,在插入数据时,如果使用数据库自己生成的主键,一般顺序为1,4,7,10- 这里就是坑的源头,在ent底层代码中,在做M2M ...

  10. CST为什么要关闭 GPU 卡的 ECC 模式而开启 TCC 模式?操作使用【详解】

    在使用CST软件之前,我们一般建议大家关闭 GPU 卡的 ECC 模式而开启 TCC 模式.那么,为什么要进行这样一个操作呢?在此之前,给大家科普一下什么是"ECC"和" ...