MAR:电脑笔记 不做整理 。。

ORACLE_SID=orcl2

instance_name=sicca

静态注册文件中SID_NAME=ORACLE_SID

动态注册的时候是用的instance_name

在tnsname.ora中,动态注册的话,监听器知道实例的状态。注册的是参数文件中的instance_name 。客户端要与注册端保持一致SID就是instance_name .

静态注册,在没有实例起来的情况下也可以链接,注册用的是ORACLE_SID。客户端与注册段保持一致,就是ORACLE_SID

-------------------------------------------------------------------------------------------------------------------------------------------------------------

可以在同一个oracle home 下存在两个不相同的oracle sid ,相同的instance name ,db name 。动态注册到监听后,如果不通过服务名,默认哪个实例先注册,就连哪个实例。

SQL> alter system set service_names='eygle,julia' scope=both;

System altered.

SQL> show parameter service_names

NAME TYPE VALUE

-------------------- ------------- ----------------------------------------

service_names string eygle,Julia

tnsnames.ora

EYGLE=

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.33.11)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = eygle)

(SID = sicca) 这个sid就是数据库instance_name的值,可以跟ORACLE_SID不同。--- 补充:这个sid 跟要跟静态或者动态注册的SID_NAME保持一致。动态注册是用的参数instance_name的值,静态注册用ORACLE_SID。

)

)

ADDRESS 部分包含了服务器的地址及监听端口信息,CONNECT_DATA 部分包含了连接信息,用于定义目标服务的名称。

SERVICE_NAME 在这里用于识别访问的数据库服务;

ERVICE_NAME 在这里也经常可以用 SID 来替代,从 Oracle 9i 开始,Oracle 推荐使用SERVICE_NAME 而不是 SID

因为oracle默认的服务名就是数据库的名字或者数据库的global_name .所以这里的service_name=global_db_name=db_name.db_domain

也可以如文章开头那样,指定其他服务名。

同样在$ORACLE_HOME/network/admin 目录下可以找到 listener.ora 文件,以下是一个监听器文件的典型配置:

第一部分 LISTENER 信息,这部分包含了监听的协议、地址以及端口等信息。

第二部分 SID_LIST_LISTENER 信息,这部分信息用于提供对外的数据库服务列表。第一个 SID_DESC 部分(SID_NAME = PLSExtProc)是数据库缺省就包含的对外部存储过程提供

的本地监听,此外两个 SID_DESC 部分就是对数据库的两个 SERVICE_NAMES 所设置的监听服务,对于同一个 SID 对应的数据库,可以对外提供多个服务名供客户端访问。

设置服务名的参数为 GLOBAL_DBNAME,当处理客户端连接请求时,监听器首先尝试将 GLOBAL_DBNAME 和客户端请求中的 SERVICE_NAME 相匹配;如果客户端连接请求的是 SID 信息,则 Oracle 不检查 GLOBAL_DBNAME 设置,而是对监听器中设置的 SID_NAME进行匹配。

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.33.11)(PORT = 1521))

)

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /opt/oracle/product/9.2.0)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = eygle)

(ORACLE_HOME = /opt/oracle/product/9.2.0)

(SID_NAME = eygle)

)

(SID_DESC =

(GLOBAL_DBNAME = julia)

(ORACLE_HOME = /opt/oracle/product/9.2.0)

(SID_NAME = eygle)

)

)

RAC中有点区别

动态注册可以不要监听文件。因为rac每个服务要向多个实例注册,需要设置初始参数remote_listener。

简单来说,动态注册会根据参数文件中如下参数去进行注册:

local_listener

对于专用服务器模式,参数可以设置为:

LOCAL_LISTENER=listener_alias (别名就是在listener_alias=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=prod-server)(PORT=1522))))

对于共享服务器模式,参数可以设置为:

DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener_alias)"

remote_listener

10g rac中可以指定一个相同的名字remote_listener=LISTENERS_SMSDB

然后 tnsnames.ora 文件配置包含如下信息: 全部是虚拟IP

LISTENERS_SMSDB =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.200.13)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.200.14)(PORT = 1521))

)

11g rac中 用了scan-vip(比如我自己电脑)

remote_listener =scan-vip:1521

简捷的 Easy Connect 方式

从 Oracle Database 10g 开始,一种称为 Easy Connect Naming Method 被引入到数据库中来,通过在 客 户 端 和 数 据 库 服 务 器 端 的 sqlnet.ora 文 件 中 设 置 NAMES.DIRECTORY_PATH命 名 方 法 可 以 启 用 这 个 特 性 ,例如如下设置,指定数据库可以接受 EZCONNECT 方式的连接:

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

进行了这样的设定之后,可以在客户端使用如下方式进行数据库连接:

[oracle@drac1 admin]$ sqlplus eygle/eygle@172.16.3.248:1521/orcl.local.com

(留)

对应于 RAC 环境,客户端的 tnsnames.ora 文件配置也有所不同,以下是一段 RAC 环境下客户端的配置示例。与单实例的不同之处在于地址列表段包含多个实例的地址信息,同时支持

负载均衡和在多实例之间的 FailOver 切换:

SMSRAC =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.200.13)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.200.14)(PORT = 1521))

(LOAD_BALANCE = yes)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = smsrac)

(FAILOVER_MODE =

(TYPE = SELECT)

(METHOD = BASIC)

(RETRIES = 180)

(DELAY = 5)

)

)

)

oracle 11g rac 中静态监听的不同

listener.ora配置文件中的信息是Grid Infrastructure安装过程中Agent自行添加的(During the Grid Infrastructure installation, the (default) node VIP listener is always created referencing the public network),比较难以理解的可能是LISTENER仅指定了PROTOCOL=IPC的信息, 而没有指定监听的地址、端口等信息。

实际上11.2 GI的LISTENER 监听器配置默认受到11.2新引入的endpoints_listener.ora配置文件的管理:

注意:使用 endpoints_listener.ora的情况 下不应使用lsnrctl管理LISTENER,而需使用srvctl或crsctl工具管理,否则lsnrctl将不会识别 endpoints_listener.ora中的信息,造成监听没有在必要地址、端口上工作。如:

而在11.2 RAC中listener.ora仅记录LISTENER的IPC条目。这样做的目的是方便dbca配置数据库参数及tnsnames.ora配置文件。了解到以上信息后可能你对当前11.2 RAC中的listener.ora文件中的监听配置信息不再感到奇怪。我们可以使用netca图形化工具或者srvctl 命令行工具添加监听配置; 如果仅仅是手动在listener.ora中添加记录的话是无法被注册为Cluster Ready Service的服务的,将不会被CRS管理。

1 $ srvctl config listener

Name: LISTENER

Network: 1, Owner: grid

Home: <CRS home>

End points: TCP:1521

2 $ srvctl add listener -l SICCA_LISTENER -o $ORACLE_HOME -p 1588 -k 1

3 $ srvctl start listener -l SICCA_LISTENER

srvctl start listener启动新添加的监听后listener.ora和endpoints_listener.ora会出现新的记录:

4 在listener.ora配置文件中加入(SID_LIST_($LISTENER_NAME),并重启监听即完成静态注册:

5 $ srvctl stop listener -l SICCA_LISTENER --or-- $ crsctl stop res ora.MACLEAN_LISTENER.lsnr

6 $ srvctl start listener -l SICCA_LISTENER --or-- $ crsctl start res ora.MACLEAN_LISTENER.lsnr

7 $ lsnrctl status SICCA_LISTENER --or-- $ crsctl status res ora.MACLEAN_LISTENER.lsnr

oracle 监听文件 说明的更多相关文章

  1. 处理Oracle 监听文件listener.log

       如果连接时候变得较慢 查看Oracle日志记录,可能是因为此文件太大,超过2G, 需要定期清理,(如果多用户,记得用root,可能没权限) 查看listener.log? find / -nam ...

  2. Centos610 Oracle 监听文件配置参考

    lister.ora配置参考 # listener.ora Network Configuration File: /home/oracle/app/oracle/product//dbhome_1/ ...

  3. Win Oracle 监听文件配置参考

    Win lister.ora配置参考 # listener.ora Network Configuration File: C:\app\Administrator\product\\dbhome_1 ...

  4. 【Oracle】环境变量与监听文件

    一.环境变量的及其含义: 数据库主目录 ORACLE_HOME=D:\app\Administrator\product\11.2.0\dbhome_1 监听文件所在目录 TNS_ADMIN=D:\a ...

  5. Oracle LISTENER 主机名修改为IP地址后LISTENER无法监听到实例 oracle监听错误与hosts文件配置

    为什么listener.ora文件里面HOST后面到底应该输入IP地址还是主机名.我的经验告诉我,这边最好使用主机名.很多的时候,一个机器绑定的不只一个IP地址,如HOST后面是IP地址,那么ORAC ...

  6. Windows平台下Oracle 11g R2监听文件日志过大,造成客户端无法连接的问题处理

    近期部署在生产环境的应用突然无法访问,查看应用日志发现无法获取数据库连接. SystemErr R Caused by: oracle.net.ns.NetException: The Network ...

  7. oracle 监听启动、停止、查看命令

    1.su oracle 然后启动监听器 1.lsnrctl start  会看到启动成功的界面; 1.lsnrctl stop  停止监听器命令. 1.lsnrctl status  查看监听器命令. ...

  8. 修改Oracle监听端口

    修改oracle监听端口 修改端口号的整体步骤:1.1   查看当前监听的状态1.2   停止监听1.3   修改监听文件的端口号1.4   修改初始化参数local_listener1.5   重启 ...

  9. 【转】oracle 监听静态注册举例解析

    网上有很多关于oracle 监听静态注册的文章,但大多都是简单说说,并没有详细的例子,这里,将结合linux as3 下的oracle 10gR2.0.1 举一个具体的例子 1.在 $ORACLE_H ...

随机推荐

  1. __block的初步用法

    再block中使用 self 时,要在前面加上__block. 防止在block中用到self时把self对象retain, 造成内存泄露. __block UIViewController *saf ...

  2. go语言使用go-sciter创建桌面应用(五) 加载元素资源

    有些时候我们需要动态的给某个UI元素加载内容或数据. demo6.go代码如下: package main; import ( "github.com/sciter-sdk/go-scite ...

  3. php 通过stomp协议连接ActiveMQ

    一.安装php的stomp扩展 http://pecl.php.net/package/stomp 如:stomp-2.0.0.tgz > tar xf stomp-1.0.9.tgz > ...

  4. MVc Identity登陆锁定

    2016-08-03 [ASP.NET Identity] OAuth Server 鎖定(Lockout)登入失敗次數太多的帳號 743 6 ASP.NET Identity 檢舉文章 2016-0 ...

  5. c# 策略模式 加工厂模式-对象与行为分离

    计算器程序 策略模式是一种行为学模式.行为是同等级的算法  ,这些行为每个模式封装到一个类里 上端提供数据   ,下端提供算法 ,中间层context context  把上端的数据和算法  放到co ...

  6. HTTP.ContentType

    1. multipart/x-mixed-replace http://blog.dubbelboer.com/2012/01/08/x-mixed-replace.html

  7. 如何通过class文件来查看java的版本

    我们知道class文件是通过javac编译生成的,如果我们想知道是java的那个版本生成的,该怎么做? 很简单,Linux下只要使用od命令,如下: 前四个字节为固定的cafe babe,接下来的四个 ...

  8. 如何让网站在百度有LOGO展示

    什么叫没有了网站logo?准确来说应该是网站索引logo,这个logo确实网站很好的一个展示窗口,我以长沙seo关键词为例,我给大家举例! 我输入长沙SEO,出来的百度索引图,原本所有我标红的框子里都 ...

  9. Nowcoder OI赛制测试2 F 假的数学题 - 斯特林公式 + 二分

    Description 给定$X$, 找到最小的$N$ 使得$N! > X^X$ 数据范围:  $x <= 1e11$ Solution $X^X$ 太大, 高精也存不过, 所以取对数 : ...

  10. serde

    一.背景 1.当进程在进行远程通信时,彼此可以发送各种类型的数据,无论是什么类型的数据都会以二进制序列的形式在网络上传送. 发送方需要把对象转化为字节序列才可在网络上传输,称为对象序列化: 接收方则需 ...