我们可以直接在服务器器上访问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 details Note 249664.1 Pfile 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
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 23-SEP-2010 00:03:18
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
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
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string +ASM
小结:
通过上面实验,我们发现操作和官网的步骤有出入。 所有文档都是供参考的,具体的情况要具体对待。 只有通过做实验,才能掌握这些知识。 这也是我一直说,学Oracle 就必须多做实验。 没有其他方法。 书上那些东西,也不一定完全正确。 我们学习的过程,就是用实验去证明那些理论。
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977(满)
DBA3 群:63306533; 聊天 群:40132017
--加群需要在备注说明SGA的组成部分,否则拒绝申请