RAC SCAN

在介绍SCAN之前, 先简单的回顾一下ORACLE 关于IP 地址的命名用, 在9I RAC时, ORACLE没有自己的CLUSTERWARE, 主要依靠第三方的集群软件(如HACMP等), 客户端主要是通过PUBLIC IP来访问数据库, 当某一个节点已经出现故障无法对外提供服务时, 如果客户端继续请求连接这个节点的PUBLIC IP, 那么连接请求会长时间没有返回, 最后要等到TCP-IP TIMEOUT才会返回一个超时信息, 这对于实时性要求较高的应用来说是致命问题, 很多DBA都经历过这样的问题, 从技术层面上来说, 这是一个网络层的问题, 任何应用都要等待网络层返回超时信息。 为了解决这个问题, 从ORACLE 10G RAC开始, 引入了一个新的功能叫VIP, 这个功能类似于第三方集群软件的浮动IP, 简单的说就是当PUBLIC 网卡或者节点出现问题, VIP可以快速的FAILOVER到另外的节点, 如果客户端的连接请求被分配到这个VIP时, 客户端连接请求马上就会遇到错误, 因此会快速的跳过这个有问题的VIP, 而重新分配另一个VIP, 最终连接到数据库, 这些对于应用来说是透明的, 基本感觉不到连接的延时。
 
二。 SCAN
       从11GR2 GRID INFRASTRUCTURE开始, 引入了一个新功能叫SCAN(SINGLE CLIENT ACCESS NAME), SCAN是一个域名, 可以解析到少一个IP, 最多解析三个SCAN IP, 客户端可以通过这个SCAN名字来访问数据库,SCAN的好处就是当集群中新增加或者删除节点, 不需要额外维护客户端, 在11GR2上, 客户端仍然可以继续使用原有的VIP, 但是ORCLE 推荐使用SCAN。
       SCAN IP 必须与PUBLIC IP和VIP在一个子网, 同时ORACLE 推荐使用DNS或者GNS来解析SCAN, 如果没有使用DNS或者GNS的放在, 可以使用HOSTS文件, 但是这个办法不是ORACLE 推荐的, 因为这个方法只能定义一个SCAN IP。
       GRID集群中有2类资源是与SCAN有关的, 一类是SCAN IP, 另一类是SCAN LISTENER, SCAN IP和SCAN LISTENER是成对出现的, 也就是说如果有3个SCAN IP, 就会同时有3个SCAN LISTENER。 SCAN IP 就是DNS解析的IP 地址, SCAN LISTENER的作用是接受客户端的连接请求。
        数据库的初始化参数REMOTE_LISTENER默认被设置为SCAN LISTENER, 目的是为了让SCAN LISTENER可以监听所有的关例, 记录所有实例的压力, 以便于按照负载均衡的方式来转发客户端的请求。

SQL> show parameter remote

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_dependencies_mode             string      TIMESTAMP
remote_listener                      string      racscan:1521
remote_login_passwordfile            string      EXCLUSIVE
remote_os_authent                    boolean     FALSE
remote_os_roles                      boolean     FALSE
result_cache_remote_expiration       integer     0


三, 客户端访问方式
       客户端发出连接数据库的请求, DNS将SCAN解析出对应的3个SCAN IP并返回给客户端, 客户端随机的选择其中一个SCAN IP 地址, 然后客户端通过这个SCAN IP访问对应的节点, 当对应节点的SCAN LISTENER接受到请求后, SCAN LISTENER会选择压力最小的数据库实例, 然后压力最小的数据库实例对应的LOCAL LISTENER的地址将返回给客户端, 最终这个LOCAL LISTENER为客户端的请求建立与数据库的连接。

四, 客户端连接配置

ORA11G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = racscan)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora11g)
    )
  )


五, SCAN的常用命令
1. 查看SCAN配置信息

[grid@rac1 ~]$ srvctl config scan
SCAN name: racscan, Network: 1/192.168.3.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /racscan/192.168.3.198


2. 查看SCAN LISTENER配置信息

[grid@rac1 ~]$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521


3. 查看SCAN的状态

[grid@rac1 ~]$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node rac1


4. 查看SCAN LISTENER的状态

[grid@rac1 ~]$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node rac1



 

<think>根据用户问题,用户明确询问的是"Oracle 19c RAC Scan Listener日志"的相关信息。结合引用的内容,特别是引用[1]中提到了监听器日志,但未明确区分普通监听器和SCAN监听器。在Oracle RAC中,SCAN监听器是一个特殊组件,需要特别说明。 在Oracle RAC中,SCAN监听器是用于处理客户端连接的全局资源,其日志文件与普通监听器日志不同。因此,需要明确SCAN监听器日志的位置和内容。 根据Oracle官方文档和常见实践: 1. SCAP监听器的日志默认位于Grid Infrastructure主目录下的`log/diag/tnslsnr/<节点名>/scan<编号>`目录中。 2. 日志文件名为`listener_scan<编号>.log`。 在引用[1]中提到的监听器日志位置(`$ORACLE_HOME/network/log/`)可能是指普通监听器,而SCAN监听器日志通常位于Grid Infrastructure的诊断目录下。 因此,回答应重点强调: - SCAN监听器的日志路径 - 日志文件的命名规则 - 如何查看日志 同时,引用[3]中提到了静态监听的配置,虽然与SCAN监听器不同,但可以侧面印证监听器配置的位置(`$ORACLE_HOME/network/admin/listener.ora`),但注意SCAN监听器的配置通常由集群自动管理。 参考引用[1]的日志概述部分,可以类比给出SCAN监听器日志的细节。 因此,回答结构如下: 1. 明确SCAN监听器日志的位置(使用Grid Infrastructure的路径) 2. 说明日志文件的命名规则 3. 简要说明日志内容 4. 提供查看日志的命令示例 最后,按照要求生成相关问题。 </think> ### Oracle 19c RAC SCAN Listener 日志详解 在 Oracle 19c RAC 环境中,SCAN Listener(Single Client Access Name Listener)是客户端连接的关键组件,其日志文件记录了所有通过 SCAN 虚拟 IP 的连接请求和监听活动。以下是核心信息: #### 1. 日志位置与结构 - **默认路径**: `$GRID_HOME/log/diag/tnslsnr/<节点主机名>/scan<SCAN编号>/alert/log.xml` 例如:`/u01/app/19.0.0/grid/log/diag/tnslsnr/racnode1/scan1/alert/log.xml` - **日志文件命名**: 每个 SCAN 监听器实例生成独立日志,命名格式为: `listener_scan<编号>_<端口>.log`(如 `listener_scan1_1521.log`) #### 2. 日志内容说明 日志包含以下关键信息: - **连接事件**:客户端连接/断开记录(含源 IP、目标 VIP- **负载均衡信息**:请求如何分配到各节点实例 - **错误诊断**:连接超时、拒绝、协议错误等(如 `TNS-12535` 超时错误) - **配置变更**:监听器启动/停止、参数动态修改 - **健康检查**:与后端节点实例的通信状态 #### 3. 查看日志的方法 ```bash # 进入日志目录(以节点 racnode1 的 scan1 为例) cd $GRID_HOME/log/diag/tnslsnr/racnode1/scan1/trace # 实时查看最新日志 tail -f listener_scan1_1521.log # 使用 ADRCI 工具(Oracle 统一诊断工具) adrci ADRCI> set homepath diag/tnslsnr/racnode1/scan1 ADRCI> show alert -tail 50 # 查看最后50行 ``` #### 4. 关键配置关联 - SCAN 监听器的配置位于 `$GRID_HOME/network/admin/listener.ora`,但**通常由集群自动管理**,手动修改需谨慎[^1][^3]。 - 日志级别可通过 `LOG_DIRECTORY` 和 `LOG_STATUS` 参数调整(需重启监听器生效)。 > **典型日志片段示例**: > ``` > 22-AUG-2023 14:05:12 * (CONNECT_DATA=(SERVICE_NAME=db_svc)...) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)) * establish * db_svc * 0 > 22-AUG-2023 14:05:13 * service_register * db_svc * 0 > ``` > 表明客户端从 IP `192.168.1.100` 通过服务名 `db_svc` 成功建立连接[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值