Linux下Oracle单实例配置多监听
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单实例配置多监听的更多相关文章
- linux下Oracle数据库实例开机自启动设置
linux下数据库实例开机自启动设置 1.改动/oratab [root@org54 ~]# vi/etc/oratab --把N改为Y,例如以下提示 # This file is used ...
- Linux下Oracle 10g DataGuard配置(主从同步及切换)
环境描述:主库: IP: 10.8.3.191 主机名:primaryORACLE_SID=afcORACLE_BASE=/u01/oracleORACLE_HOME=/u01/oracle/10g备 ...
- Linux下MongoDB单实例的安装和配置详解
推荐网站 MongoDB官网:http://www.mongodb.org/ MongoDB学习网站:http://www.runoob.com/mongodb 一.创建MongoDB的资源目录和安装 ...
- Linux下如何查看哪些端口处于监听状态
查看某一端口的占用情况: lsof -i:端口号 前提:首先你必须知道,端口不是独立存在的,它是依附于进程的.某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了.下次若某个进程再次开 ...
- linux下mysql无法看到3306端口监听
这个问题搞定了,原因是我的my.cnf有话:skip-network注释掉,然后运行netstat -an|grep 3306 就可以看到了
- linux下oracle数据库服务和监听的启动停止
oracle数据库是重量级的,其管理非常复杂,将其在linux平台上的启动和关闭步骤整理一下. 安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_p ...
- Oracle单实例情况下的library cache pin的问题模拟与问题分析
Oracle单实例情况下的library cache pin的问题模拟与问题分析 參考自: WAITEVENT: "library cache pin" Reference Not ...
- Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复
Oracle 官网有关单实例迁移到RAC的一个步骤说明: How to Convert 10g Single-Instance database to 10g RAC using Manual Con ...
- CentOS Linux 新建oracle数据库实例并连接
CentOS Linux 新建oracle数据库实例 安装好oracle之后,首先想到的那就是自己建一个库来看看效果喽. 创建的过程如下文章所说,http://blog.chinaunix.net/u ...
- oracle 单实例DG(搭建篇一)
一,介绍 lodding... 二,安装前环境配置 01,依赖包的安装: yum install binutils-* yum install compat-libstdc++-* yum insta ...
随机推荐
- 【LeetCode动态规划#08】完全背包问题实战与分析(零钱兑换II)
零钱兑换II 力扣题目链接(opens new window) 给定不同面额的硬币和一个总金额.写出函数来计算可以凑成总金额的硬币组合数.假设每一种面额的硬币有无限个. 示例 1: 输入: amoun ...
- 移除List的统一逻辑写法 LeetCode 203
原理:通过创建一个新的结点,放在头结点的前面,作为真正头结点的前驱结点,这样头结点就成为了意义上的非头结点,这样就可以统一操作结点的删除操作. 需要注意的是:这个新的结点是虚拟头结点,真的的头结点依然 ...
- 2023-2-22 增加产值冲减和EPC模块
应集团要求,现在已在综合信息管理系统中已增加以下信息,请大家注意,并及时转告业务人员: 1.[施工合同登记]模块增加必填字段"EPC建安费(万元)""EPC暂列费(万元) ...
- 用vue+elementui写了一个图书管理系统
用vue+elementui写了一个图书管理系统 转载自公号:java大师 目前是指一个纯前端的展示,后端还在开发中,前端接口是通过json-server模拟的 用到的技术栈 1.vue.js 2.e ...
- Pillow模块——生成随机验证码
urls.py path('get_code/',views.get_code), views.py中 from PIL import Image,ImageFont,ImageDraw " ...
- vue下载附件按钮功能
一.tools文件夹下tools文件中封装下载方法: const iframeId = 'download_file_iframe' function iframeEle (src) { let el ...
- 2020-08-13:Hadoop生态圈的了解?
福哥答案2020-08-13: 该项目包括以下模块:1.Common(公共工具)支持其他Hadoop模块的公共工具. 2.HDFS(Hadoop分布式文件系统)提供对应用程序数据的高吞吐量访问的分布式 ...
- 2020-10-29:使用redis实现分布式限流组件,要求高并发场景同一IP一分钟内只能访问100次,超过限制返回异常,写出实现思路或伪代码均可。
福哥答案2020-10-29: 简单回答:固定窗口:string.key存ip,value存次数.滑动窗口:list.key存ip,value=list,存每次访问的时间. 中级回答:固定窗口:用re ...
- 2021-04-15:给定一个由字符串组成的数组strs,必须把所有的字符串拼接起来,返回所有可能的拼接结果中,字典序最小的结果。
2021-04-15:给定一个由字符串组成的数组strs,必须把所有的字符串拼接起来,返回所有可能的拼接结果中,字典序最小的结果. 福大大 答案2021-04-15: "b"和&q ...
- vue全家桶进阶之路41:Vue3 语法糖<script setup>
<script setup> 是 Vue 3 中的一种语法糖,它可以使组件的脚本更加简洁.易读,并且减少了一些样板代码.使用 <script setup>,你可以将组件的 pr ...