chanet,我想知道的是能通过脚本自动添加么?freddy2003,危险性主要体现在哪方面?现在用脚本创建,主要是便于后期的现场安装。不知道有什么更好的方法?谢谢两位

解决方案 »

  1.   

    不建议用脚本建库
    建议用oracle的Net Configuration Assistant来建库
      

  2.   

    我就是直接手动在,listener.ora中添加的!
    当然也可以用net configuration assistant来配置。
      

  3.   

    用脚本,一旦出错。比较难恢复。Oracle不像SQL Server那么好搞
      

  4.   

    手式加上listener.ora内容.可以参照别的数据库的这种配置信息.
      

  5.   

    多谢大家,我想知道的是如何自动添加该数据库到监听服务中?freddy2003,一旦脚本建库出错,会影响到整个ORACLE系统么?否则的话关系不大呀,用dbca建库不是同样会遇到这类问题么?
      

  6.   

    如果你的数据库版本<8i,listener必须运行在数据库所在的主机,而且要用net manager配置listener如果你的数据库版本>=8i,分几种情况:
    1。如果listener与数据库在同一主机,并且使用1521端口,你什么也不需要配置,等待一分钟左右,数据库的pmon会自动将数据库注册到listener中。
    2。如果listener在与数据库在同一主机,但是不使用1521端口,需要配置local_listener初始化参数(该参数可以用alter system动态修改)
    3。如果listener与数据库不在同一主机,需要需要配置remote_listener初始化参数(该参数可以用alter system动态修改)
      

  7.   

    drabit,感谢你如此详细的回答.我这儿是9.2.0.1.0,listener与db在同一主机,端口1521。我刚重新用脚本再次建库,完成后等了许久还是不能从SQL*PLUS中接连,而查看listener.ora和tnsname.ora文件都没有改变。不知何故?我现在系统中只打开了TNSListener和对应的ServiceSID目录,是否还有其他服务需要打开?我用EMC手动添加该db到树中,可以连接上,并且自动修改了tnsname.ora文件,但连接数据中不像其他db的SERVICE_NAME=XXX,而是SID=XXX。listener.ora没变。
      

  8.   

    to zaq(zaq):
      
       数据库注册到listener中,并不意味着就可以连接上。这是两个事情   要判断数据库有没有自动注册到listener中,用一个简单的命令就知道了:C:\>lsnrctlLSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 14-9月 -20
    :54Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.欢迎来到LSNRCTL,请键入"help"以获得信息。LSNRCTL> services
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=lifangjun)(PORT=152
    服务摘要..
    服务 "PLSExtProc" 包含 1 个例程。
      例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
        处理程序:
          "DEDICATED" 已建立:0 已被拒绝:0
             LOCAL SERVER
    服务 "db92n1.lm.lifj" 包含 2 个例程。
      例程 "sid92n1", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
        处理程序:
          "DEDICATED" 已建立:1 已被拒绝:0
             LOCAL SERVER
      例程 "sid92n1", 状态 READY, 包含此服务的 1 个处理程序...
        处理程序:
          "DEDICATED" 已建立:0 已拒绝:0 状态:ready
             LOCAL SERVER
    服务 "hsodbc" 包含 1 个例程。
      例程 "hsodbc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
        处理程序:
          "DEDICATED" 已建立:0 已被拒绝:0
             LOCAL SERVER
    服务 "tg4msql" 包含 1 个例程。
      例程 "tg4msql", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
        处理程序:
          "DEDICATED" 已建立:1 已被拒绝:0
             LOCAL SERVER
    命令执行成功
    LSNRCTL>
            至于你要连接上,还需要配置tns服务名。    如果用SID=xxx,则pmon自动注册的服务不能被利用到,需要手工在listener。ora中添加sid_desc
      

  9.   

    谢谢drabit。我有几个概念没有弄清楚,有没有合适的文档可以指引一下。
    数据库注册到listener,和在listener。ora中添加信息,不是一回事啊?!
    SID=xxx和SERVICE_NAME=XXX又有什么区别?那如果要想使得用脚本手动建库完毕后,立即可以从客户端连接到该DB,有什么方法可以自动在listener.ora中添加信息?
    listener.ora中没有信息,只添加tns服务名也不起作用,是吧?因为用dbca建库的话,完毕后就可以直接从客户端连接,已经自动在listener。ora中添加信息了。
      

  10.   

    <我有几个概念没有弄清楚,有没有合适的文档可以指引一下>Oracle&reg; Database
    Net Services Administrator’s Guideb10755.pdf otn有得下载<数据库注册到listener,和在listener。ora中添加信息,不是一回事啊?!>
    不是一回事,前者是利用pmon的自动注册功能,后者是静态添加一个监听项目。如果你改了数据库的service_name,pmon会自动向listener注册新的service_name(不依赖于listener。ora)。<SID=xxx和SERVICE_NAME=XXX又有什么区别?>
    区别很大,具体要看文档,不是一两句话可以解释得清楚<
    那如果要想使得用脚本手动建库完毕后,立即可以从客户端连接到该DB,有什么方法可以自动在listener.ora中添加信息?
    >
    <listener.ora中没有信息,只添加tns服务名也不起作用,是吧?>
    理解错误,8i及以后版本,建库后不需要在listener。ora中增加信息,但是必须配置tns,tns中必须使用service_name=xxx<
    因为用dbca建库的话,完毕后就可以直接从客户端连接,已经自动在listener。ora中添加信息了
    >用dbca建库的话,结束时会引导你配置tns和listener,如果你取消向导,客户端一样无法连接。
      

  11.   

    呵呵,不好意思,我先去看看资料。只是我用dbca建库后,并没有引导配置tns和listener,只是显示了全局数据库名、SID,并要求输入sys和system的密码而已。listener.ora和tnsname.ora文件中却已经自动有了连接串信息。不知道这步工作可否相应的脚本来做到?而当我把listener.ora中信息删掉后,结果如你所说,照样可以连接:)
      

  12.   

    虽然还有点不明白可否在tnsname.ora文件中通过脚本添加连接串信息,但还是谢谢各位,帮我弄清了一些概念。
    散分了!