配置客户端连接到ASM实例

   对于Oracle 网络配置,我们通常通过negmgr或者netca来完成客户端连接到数据库实例。而对于连接到ASM实例,同样可以实现从客户端来进行连接。不过Oracle并未为我们提供工具来完成配置,我们可以通过手动配置监听以及客户端tnsnames来实现。本文对此给出描述与示例。

1、服务器端、客户端的环境  
  #服务器端环境,host信息  
  oracle@bo2dbp:~> cat /etc/hosts |grep vip  
  192.168.7.61   bo2dbp-vip.2gotrade.com    bo2dbp-vip  
  192.168.7.62   bo2dbs-vip.2gotrade.com    bo2dbs-vip 
  
  #操作系统及Oracle版本 
  oracle@bo2dbp:~> cat /etc/issue

 Welcome to SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel \r (\l).
 
 oracle@bo2dbp:~> sqlplus -v 
 
 SQL*Plus: Release 10.2.0.3.0 - Production
   
  #服务器端环境,集群信息  
  oracle@bo2dbp:~> ./crs_stat.sh   
   Resource name                                Target     State               
  --------------                                ------     -----                
  ora.GOBO4.GOBO4A.inst                         ONLINE     ONLINE on bo2dbp    
  ora.GOBO4.GOBO4B.inst                         ONLINE     ONLINE on bo2dbs    
  ora.GOBO4.db                                  ONLINE     ONLINE on bo2dbp    
  ora.bo2dbp.ASM1.asm                           ONLINE     ONLINE on bo2dbp    
  ora.bo2dbp.LISTENER_BO2DBP.lsnr               ONLINE     ONLINE on bo2dbp    
  ora.bo2dbp.gsd                                ONLINE     ONLINE on bo2dbp    
  ora.bo2dbp.ons                                ONLINE     ONLINE on bo2dbp    
  ora.bo2dbp.vip                                ONLINE     ONLINE on bo2dbp    
  ora.bo2dbs.ASM2.asm                           ONLINE     ONLINE on bo2dbs    
  ora.bo2dbs.LISTENER_BO2DBS.lsnr               ONLINE     ONLINE on bo2dbs    
  ora.bo2dbs.gsd                                ONLINE     ONLINE on bo2dbs    
  ora.bo2dbs.ons                                ONLINE     ONLINE on bo2dbs    
  ora.bo2dbs.vip                                ONLINE     ONLINE on bo2dbs    
  
 #客户端信息  
 C:\Users\robinson.cheng>systeminfo
 
 Host Name:                 PC39
 OS Name:                   Microsoft Windows 7 Professional
 OS Version:                6.1.7600 N/A Build 7600
 OS Manufacturer:           Microsoft Corporation
 System Type:               x64-based PC
 
 C:\Users\robinson.cheng>sqlplus -v
 
 SQL*Plus: Release 10.2.0.3.0 - Production

2、监听器的状态   
 oracle@bo2dbs:~> lsnrctl status LISTENER_BO2DBS | grep ASM
 Service "+ASM" has 1 instance(s).     #可以看到ASM实例处于BLOCKED状态
   Instance "+ASM2", status BLOCKED, has 1 handler(s) for this service...
 Service "+ASM_XPT" has 1 instance(s).
   Instance "+ASM2", status BLOCKED, has 1 handler(s) for this service...

3、分配ASM SID
  #使用下面的ASM配置信息来修改监听器配置文件
 Item                                          Node1            Node2
 ------                                        --------         -----------
 hostname                                      bo2dbp           bo2dbs 
 Oracle SID                                    GOBO4A           GOBO4B
 ASM SID                                       +ASM1            +ASM2
 ASM Global DB Name (service name)             +ASM             +ASM

4、修改监听配置文件listener.ora
 #对于监听器的配置,仅仅是增加子项SID_DESC
 #下面是增加之后所看到的内容
 oracle@bo2dbp:~> more $ORACLE_HOME/network/admin/listener.ora
 # listener.ora.bo2dbp Network Configuration File: /u01/oracle/db/network/admin/listener.ora.bo2dbp
 # Generated by Oracle configuration tools.
 LISTENER_BO2DBP =
   (DESCRIPTION_LIST =
     (DESCRIPTION =
       (ADDRESS = (PROTOCOL = TCP)(HOST = bo2dbp-vip.2gotrade.com)(PORT = 1521)(IP = FIRST))
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.51)(PORT = 1521)(IP = FIRST))
     )
   )
 
 SID_LIST_LISTENER_BO2DBP =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = /u01/oracle/db)
       (PROGRAM = extproc)
     (SID_DESC =          #这整个SID_DESC项即为ASM1实例新增的条目
       (SID_NAME = +ASM1)
       (GLOBAL_DBNAME  = +ASM)
       (ORACLE_HOME = /u01/oracle/db)
     )
   )
  
 oracle@bo2dbs:~> more $ORACLE_HOME/network/admin/listener.ora
 # listener.ora.bo2dbs Network Configuration File: /u01/oracle/db/network/admin/listener.ora.bo2dbs
 # Generated by Oracle configuration tools.
 LISTENER_BO2DBS =
   (DESCRIPTION_LIST =
     (DESCRIPTION =
       (ADDRESS = (PROTOCOL = TCP)(HOST = bo2dbs-vip.2gotrade.com)(PORT = 1521)(IP = FIRST))
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.52)(PORT = 1521)(IP = FIRST))
     )
   )
 
 SID_LIST_LISTENER_BO2DBS =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = /u01/oracle/db)
       (PROGRAM = extproc)
     )
     (SID_DESC =                   #这整个SID_DESC项即为ASM2实例新增的条目
       (SID_NAME = +ASM2)
       (GLOBAL_DBNAME  = +ASM)
       (ORACLE_HOME = /u01/oracle/db)
     )
   )

5、重启监听器
 oracle@bo2dbp:~> srvctl stop listener -n bo2dbp
 oracle@bo2dbp:~> srvctl start listener -n bo2dbp
 oracle@bo2dbp:~> srvctl stop listener -n bo2dbs
 oracle@bo2dbp:~> srvctl start listener -n bo2dbs
  
  #查看监听器的状态 
 oracle@bo2dbp:~> lsnrctl status LISTENER_BO2DBP | grep ASM
 Service "+ASM" has 2 instance(s).  #可以看到多处了一个为UNKNOWN状态,表明使用了静态方式注册
   Instance "+ASM1", status UNKNOWN, has 1 handler(s) for this service...
   Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...
 Service "+ASM_XPT" has 1 instance(s).
   Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...
 
 oracle@bo2dbs:~> lsnrctl status LISTENER_BO2DBS | grep ASM
 Service "+ASM" has 2 instance(s).  #示例2上监听器状态也多出了一个为UNKNOWN状态的+ASM2实例
   Instance "+ASM2", status UNKNOWN, has 1 handler(s) for this service...
   Instance "+ASM2", status BLOCKED, has 1 handler(s) for this service...
 Service "+ASM_XPT" has 1 instance(s).
   Instance "+ASM2", status BLOCKED, has 1 handler(s) for this service... 
   
 #Author : Robinson
 #Blog   : http://blog.csdn.net/robinson_0612  
   
6、配置客户端tnsnames
 #Windons 客户端tnsnames.ora添加如下配置条目
 GOBO4_ASM1 =
   (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.61)(PORT = 1521))
     )
     (CONNECT_DATA =
       (SERVICE_NAME = +ASM)
     )
   )
 
 GOBO4_ASM2 =
   (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.62)(PORT = 1521))
     )
     (CONNECT_DATA =
       (SERVICE_NAME = +ASM)
     )
   )    

7、测试连接到ASM实例   

 C:\Users\robinson.cheng>sqlplus -S sys/oracle@GOBO4_ASM1 as sysdba @inst
 
 INSTANCE_NAME    HOST_NAME                      STATUS
 ---------------- ------------------------------ ------------
 +ASM1            bo2dbp                         STARTED
 
 
 C:\Users\robinson.cheng>sqlplus -S sys/oracle@GOBO4_ASM2 as sysdba @inst
 
 INSTANCE_NAME    HOST_NAME                      STATUS
 ---------------- ------------------------------ ------------
 +ASM2            bo2dbs                         STARTED  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

ASM无法启动的问题分析(二)(r7笔记第88天)

第一篇的内容可以参考。ASM无法启动的问题分析(一),有不少的朋友给了一些建议,我也糅合了进来。一并感谢。 当然重启服务发现CSSD服务是Online,但是AS...

411100
来自专栏轻量级微服务

Kubernetes Dynamic Volume Provisioning - NFS Provisioner

场景:在 非 Master 节点 添加了 1T 的磁盘,挂载到 /mnt 路径,然后实现在此存储上动态创建 PVC。

13100
来自专栏xingoo, 一个梦想做发明家的程序员

Oracle 监听器无法启动(TNS-12537,TNS-12560,TNS-00507)

Oracle启动监听报错,提示 连接中断 [oracle@localhost ~]$ lsnrctl start LSNRCTL for Linux: Ver...

316100
来自专栏乐沙弥的世界

Oracle RAC failover 测试(Server TAF方式)

    Oracle RAC中,除了基于客户端的TAF方式之外,还有基于服务器端的TAF方式,可以把服务端的TAF方式看作是客户端TAF方式的一个升级版吧。服务...

12130
来自专栏杨建荣的学习笔记

三封报警邮件的分析(r6笔记第95天)

今天收到3封报警邮件,从邮件内容中的报警情况来看,还是比较反常的。需要引起关注,找到原因处理。 这个库是一个历史库,库中的数据非常庞大,几十亿数据的表还是有好几...

29040
来自专栏乐沙弥的世界

crs_register/crs_unregister 注册与移除RAC服务

    crs_register命令主要是将资源注册到CRS。该方法通常结合crs_stat -p 或者crs_profile先创建配置文件。同时crs_reg...

8620
来自专栏杨建荣的学习笔记

ASM无法启动的问题分析(一)(r7笔记第87天)

最近碰到了一个关于ASM无法启动的案例,当然这个案例比较长,准备分两篇来写。 问题的背景如下: 目前存在一套standalone的环境,采用了ASM作为存储管理...

449160
来自专栏乐沙弥的世界

配置Oracle Gateway 12连接到SQL server 2014

最近的工作中需要基于Oracle连接到SQLserver2014,我们可以通过配置Gateway的方式来实现这个功能。这个Gateway的实质是透过dblink...

17520
来自专栏乐沙弥的世界

记一次离奇的TNS-12545 TNS-12560 TNS-00515

      最近reportDB监听无法随系统自启动,现象比较怪异。因为该服务器上的另一个实例的监听可以正常启动,这个不能自启动实例的监听手动启动又是正常的。因...

14420
来自专栏乐沙弥的世界

跨NAT,防火墙(firewall)的RAC监听配置(ORA-12545)

    对于存在NAT或防火墙的RAC数据库,在启用了服务器端的load balance后,经常会碰到ORA-12545连接错误,这是因为服务器端转发客户端连接...

9530

扫码关注云+社区

领取腾讯云代金券