我想请教大家个问题,我在虚拟机中安装了linux,里面又装了oracle,在window下登陆到linux啥的都没问题.
我昨天安装PL/SQL developer想通过它连接到虚拟机中的oracle,可是登陆的时候有一个database选项,我看资料说要修改oracle服务端的tnsname.ora,请问这个应该怎么改呢,我想即使改服务端,那么客户端连接的时候怎么知道要连接的服务端的地址呢 ?谢谢大家
我昨天安装PL/SQL developer想通过它连接到虚拟机中的oracle,可是登陆的时候有一个database选项,我看资料说要修改oracle服务端的tnsname.ora,请问这个应该怎么改呢,我想即使改服务端,那么客户端连接的时候怎么知道要连接的服务端的地址呢 ?谢谢大家
如果没有安装oracle的客户端或者oracle instance在你的windows上,是无法链接linux的oracle的。可以从网上下载个简化的oracle客户端,就可以了。
ORCL_192.168.0.99 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.99)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcl)
(SERVER = DEDICATED)
)
)listener.ora内容如下:
SID_LIST_ORCL_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\client_4)
(PROGRAM = extproc)
)
)ORCL_LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.99)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)可是在PL/SQL中登陆的时候还是显示 TNS:无监听程序。请问该怎么办呢?是不是在Linux下的Oracle服务端也要配置什么东西?
> lsnrctl start注:
客户端只需要修改tnsnames.ora,
服务器端需要确认listener.ora的设置是否正确。类似如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/app/product/10g)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ncdb)
(ORACLE_HOME = /oracle/app/product/10g)
(SID_NAME = xxdb)
)
)LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/oracle)
(PROGRAM = extproc)
)
)LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.99)(PORT = 1521))
)
)服务端的tnsname.ora如下:ORCL_192.168.0.99 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.99)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcl)
(SERVER = DEDICATED)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
然后> lsnrctl start 可是在PL/SQL里连接的时候提示:ORA-12505:TNS:监听程序无法识别连接描述符中所给出的SID请问这是怎么回事呢,是不是我红色标注的那行错了?应该怎样设置呢,谢谢
客户端修改tnsnames.ora!!!
服务器端修改listener.ora!!!!服务器端需要启动listener: lsnrctl start你的客户端是:windows,服务器端是:linuxORA-12505:TNS:监听程序无法识别连接描述符中所给出的SID
意思是sid设置的不对。
了,可是服务端的listener和客户端的tnsnames.ora就向我上面贴出来的那样也还是不行,请问怎么回事呢,
我也知道这个SID不对,可是不知道SID正确的值应该是什么。。
直接说不知道sid不就ok了吗.linux下执行:
ps -eaf|grep ora会看到很多类似如下的进程:
oracle 25601 1 0 06:56:14 ? 0:00 oracleqfz (LOCAL=NO)上面对应的oracle的sid就是:qfz,应该能知道怎么得到的吧。看看你的吧。
http://bbs.chinaunix.net/viewthread.php?tid=927771
下载 SQLHandler.jar
或直接联系:[email protected]主要功能有:以表格的形式显示 Select SQL 语句的查询结果,可以直接对查询结果进行再操作,如修改、插入、删除、保存、多功能拷贝、导出、行列移动、列排序等;能对大型的文本字段(如 CLOB, LONG)查看、编辑等 运行命令 "desc tablename" 能清楚地显示表 Table 的所有字段 Field (包括名称、数据类型及长度、默认值、非空)、所有的索引 Index、所有的约束条件 Constraints(主键、唯一键、检查键、子表、外键、甚至外键的外键) 支持多条SQL语句的成批运行,用控制台监控每条语句的运行,在运行过程中可以中断/暂停/继续正在运行的 SQL、甚至可以更正出错误的 SQL,从而提高操作效率 支持彩色文本编辑,即关键字、注释块、引号内字符串、操作符等,用不同的彩色字体加以区别; 还有,如果光标停在括号处,高亮度显示配对的括号,增强可读性 方便高效的行块和列块操作,能对行块和列块中的文本进行拷贝、剪切、删除、左右移动等,以满足特殊需求 按钮"Format SQL" 能将语句块中的杂乱语句以缩进的格式进行重编排 运行命令 "explain plan for SQL" 或按菜单项 "Explain Plan",能快速地显示 SQL 的执行计划; "Export" 按钮或菜单项,能直接将 SELECT 语句结果转化为 INSERT 语句,方便于数据移植、拷贝等 运行命令"schema tablename"能显示表 Table 或视图 view 的生成 schema,即 Table 或 view 是如何创建的(包括索引 Index及约束条件 Constraints) 全面支持 PL/SQL(包括 Procedure、 Function、Trigger、 Package),能够显示 DBMS_OUPTPUT.PUT_LINE 的输出;能够给出错误信息,甚至光标能够精确定位错误所在的行列位置,极大地方便于调试 提供对常用数据字典(如 Tables、Views、Indexes 等)通配符查询、删除、修改等