这次经历是由于在本机建立物理备用数据库时,需要对监听程序进行配置而来的.
环境为:winxp下oracle 10.2.0.1.0
监听程序的配置文件路径为%oracle_home%/network/admin/listener.ora
我的文件内容如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\ora10g)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = wolf.<域名>)(PORT = 1521))
)
)
因为域名涉及到其他公司的名称,在此不列出来,以<域名>代替,
<域名>的值可以在系统属性->计算机名 下,点击 更改 按钮,隶属于 域 下面获得.
由于要新增物理备用库的配置,所以需要在SID_LIST下添加SID_DESC的嵌套,来对物理备库进行监听.
SID_DESC:用来指明一个特定的数据库实例服务信息或者一个没有数据库的Oracle服务
SID_DESC 中允许使用如下参数:
1 ENVS
为监听程序指明一个环境变量来优先的执行一个专用服务器程序 或者以PROGRAM参数指定的执行 程序,需要注意的是 , Windows NT环境不支持envs这个参数
2 GLOBAL_DBNAME
用这个参数来识别数据库服务。
当处理一个客户端的连接请求时,监听程序尝试着将这个参数值与 SERVICE_NAME 参数匹配
如果客户端的连接符使用的是sid参数的值,那么监听程序不会试着去进行映射该值
这个参数的值在大多情况下都是由初始化文件中的DB_NAME与DB_DOMAIN参数组合而成,
但是也可以是任何有效的能够标识服务的其他值 。
3 ORACLE_HOME
用来指定oracle的产品目录
可以在命令行下用set | find /i "oracle_home"来获得该值
4 PROGRAM
指定服务运行程序名称
5 SID_NAME
指明实例的Oracle System Identifier (SID),可以从初始化参数中的INSTANCE_NAME获得
添加后的SID_DESC如下
(SID_DESC =
(SID_NAME = phstandby)
(ORACLE_HOME = d:\ora10g)
(GLOBAL_DBNAME = phstandby)
)
然后在%oracle_home%/network/admin/tnsnames.ora中添加
phstandby =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = wolf.<域名>
(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = phstandby)
)
)
之后
lsnrctl --监听程序命令
stop --停止监听程序
start --重新启动监听
exit --退出监听
tnsping phstandby --ok,
sqlplus /@phstandby as sysdba --登录成功
抛砖引玉到此。
参考的文档是9i的,可见