远程客户端 访问 ASM 实例

我们可以直接在服务器器上访问ASM实例,只需要指定ASM实例名,在用sqlplus连接就可以了。如果我们想从远程的客户端访问ASM实例,可以参考如下的配置方法。

一.官网的配置说明

This solution cannot be accomplished using Network Manager (GUI)

The solution is to
* Edit the listener.ora on ASM server
* Edit the tnsnames.ora on the client
* Setup your remote login password for your ASM instance on the ASM server
* Set your SYS password using ORAPWD for the ASM instance
* Use the properly formatted connect string to connect with your tool

1) Edit the listener.ora on ASM server
a) Logon to the ASM/Database server
b) Locate your listener.ora (typically located in the $ORACLE_HOME/network/admin)
c) Add a SID_LIST_LISTENER entry for your ASM instance (see example below)

EXAMPLE

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = +ASM)
(ORACLE_HOME = c:/oracle/app/product/11.1.0/db_1)
)
)


d) Stop the listener

lsnrctl stop


e) restart the listener

lsnrctl start



2) Edit the tnsnames.ora on the client

a) Logon to the client machine that will be used to connect to the ASM instance
NOTE: the client machine can also be the ASM/Database server (ie for DBCONTROL)
b) Locate your tnsnames.ora (typically in the $ORACLE_HOME/network/admin)

c) Add an entry (tnsalias) for your ASM instance (see example)

EXAMPLE

ASM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = kbcook-1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID_NAME = +ASM)
(UR=A)
)
)


3) Setup your remote login password for your ASM instance on the ASM server

a)Logon to the ASM/Database server
b)Locate the parameter file for your ASM instance (typically $ORACLE_HOME/dbs/init+ASM.ora [unix] or $ORACLE_HOME/dbs/init+ASM.ora [windows] )
c)Edit the parameter file and add
remote_login_passwordfile = exclusive ... for stand alone ASM setups
remote_login_passwordfile = shared ... for ASM setups that also use Real Application Cluster (RAC)

d)Save the file

NOTE: It may be required that an PFILE be created from an SPFILE in order to be able to edit the file properly ... once the line have been added ... the process can be reversed

For more detailsNote 249664.1Pfile vs SPfile ... may be used

4) Set your SYS password using ORAPWD for the ASM instance
a)Logon to the ASM/Database server
b)Locate your orapw<sid> file for your ASM instance (typically $ORACLE_HOME/dbs/orapw+ASM)
c)Rename the file to orapw<sid>.old
d)Run orapwd to reset the password (see example below)

EXAMPLE

mv "orapw+ASM" "orapw+ASM.old"
orapwd file=orapw+ASM password=kbcook


5) Use the properly formatted connect string for your tool

Connnect to the ASM instance using the password (#4 above) and the tnsalias (#2 above)

EXAMPLES

C:/oracle/app/product/11.1.0/db_1/BIN/SQLPLUS.EXE "sys/kbcook@asm as sysdba"

<OR>
sqlplus "sys/kbcook@asm as sysdba"

<OR>
sqlplus "sys@asm as sysdba" ... then supply the password when prompted

二.测试

这里我们已连接ASM实例1为例,所以只修改这个节点上的ASM相关配置参数。如果要配置2个节点,就修改2个节点的LISTENER.ORA文件。内容一样。然后在客户端监听tnsnames.ora文件里修改IP地址就可以了。

2.1服务器配置

在目录$ORACLE_HOME/network/admin下,修改ASM实例的LISTENER.ORA文件,添加红色部分,然后重启监听。

SID_LIST_LISTENER_RAC1 =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = +ASM) -- ASM实例名是+ASM1和+ASM2。但这里与ASM实例的service_names参数一致

(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)

)

)

重启监听:

[oracle@rac1 admin]$ lsnrctl stop

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 23-SEP-2010 00:03:08

Copyright (c) 1991, 2005, Oracle.All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

The command completed successfully

[oracle@rac1 admin]$ lsnrctl start

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 23-SEP-2010 00:03:18

Copyright (c) 1991, 2005, Oracle.All rights reserved.

Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production

System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac1)(PORT=1521)))

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

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

AliasLISTENER

VersionTNSLSNR for Linux: Version 10.2.0.1.0 - Production

Start Date23-SEP-2010 00:03:18

Uptime0 days 0 hr. 0 min. 0 sec

Trace Leveloff

SecurityON: Local OS Authentication

SNMPOFF

Listener Parameter File/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

Listener Log File/u01/app/oracle/product/10.2.0/db_1/network/log/listener.log

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac1)(PORT=1521)))

The listener supports no services

The command completed successfully

[oracle@rac1 admin]$

2.2修改客户端的$ORACLE_HOME/network/admin/tnsname.ora文件

ASM1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.10.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = +ASM)--注意这里写的是ASM,而不是ASM1
(UR=A)--这个必须加,不然连不上
)
)

2.3测试一下:

C:/Users/Administrator.DavidDai>tnsping ASM

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 23-9月-2010 11:28:48

Copyright (c) 1997, 2010, Oracle.All rights reserved.

已使用的参数文件:

D:/app/Administrator/product/11.2.0/dbhome_1/network/admin/sqlnet.ora

已使用TNSNAMES适配器来解析别名

尝试连接(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.10.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = +ASM) (UR=A)))

OK (0毫秒)

2.4客户端用sqlplus连接

SQL> conn sys/oracle@ASM as sysdba;

已连接。

SQL> select Instance_name from v$instance;

INSTANCE_NAME

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

+ASM1

SQL> show parameter service_name

NAMETYPEVALUE

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

service_namesstring+ASM

小结:

通过上面实验,我们发现操作和官网的步骤有出入。所有文档都是供参考的,具体的情况要具体对待。只有通过做实验,才能掌握这些知识。这也是我一直说,学Oracle就必须多做实验。没有其他方法。书上那些东西,也不一定完全正确。我们学习的过程,就是用实验去证明那些理论。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值